Ein BG ist ja eine große Sache, die viel Zeit und Wissen in Anspruch nimmt. Was kann man aber so zum Anfang programmieren das weniger Zeit und Wissen braucht?
Erstmal klein Anfangen, aber mit was?
hallo,
das kommt meiner Meinung nach auf deinen Wissensstand in Sachen Programmierung an.
Ich habe damals mit einer Seite angefangen, in der ich PHP nutze und mit Templates arbeite.
Ich habe ein Gästebuch, eine Anmeldung und ein Kontaktformular programmiert.
Danach kamen verschiedene Dinge, wie z.B. ein kleiner Taschenrechner oder ein Fleetcalculator für OGame (hab ich damals gespielt).
Und auf diese Dinge baue ich nun in meinem BG drauf auf.
Das wichtigste ist bei mir neben der Sicherheit die Trennung von Design und Code.
LG
Marcel
Wenn du noch Anfänger bist empfehle ich http://tut.php-quake.net/de/
Schreibe Anwendungen wie z.B. ein Gästebuch oder kleines Blog-System (auch wenn du es danach nie praktisch verwenden solltest ^^)
Danach kannst du kleine Prototypen schreiben für Teile deines BG.
Spätestens ab hier solltest du dann auch mal MVC anschauen. (Welches du nicht nutzen musst, aber nie verkehrt ist darüber Bescheid zu wissen).
Wichtige Themen sind auch ACL, Auth, Db. (Also programmiere mal nen Login und verwalte Benutzerrechte)
Dann kannst du entscheiden ob du ein Framework benutzen möchtest, andere Hilfsbibliotheken verwenden willst oder lieber alles selbst machst (nicht zu empfehlen, gerade für Anfänger).
Achja: Welche Programmiersprache(n) willst du eigentlich einsetzen? Das ist ja schonmal der erste wichtige Punkt. Ich bin jetzt einfach mal von PHP, HTML, Javascript, CSS ausgegangen..
Original von tector
Achja: Welche Programmiersprache(n) willst du eigentlich einsetzen? Das ist ja schonmal der erste wichtige Punkt. Ich bin jetzt einfach mal von PHP, HTML, Javascript, CSS ausgegangen..
Ich gehe auch erstmal davon aus das ich damit anfange.^^
Zu meinem Wissensstand: Programmieren könnte ich nichts, aber ich weiß was Schleifen sind und was mit Klassen gemeint ist (so ungefähr).
Ok, dann solltest du mit dem Quakenet PHP Tutorial (s.o.) anfangen und dir Prinzipien der Objektorientierung beibringen (Bücher könnten hilfreich sein.)
Dann solltest du mindestens 1 Jahr, besser 2 Jahre erstmal Erfahrung sammeln mit PHP und Programmierung allgemein bevor du auch nur einen Gedanken an die Programmierung eines BGs verschwendest.
Original von MikeDee
Ein BG ist ja eine große Sache, die viel Zeit und Wissen in Anspruch nimmt. Was kann man aber so zum Anfang programmieren das weniger Zeit und Wissen braucht?
Such Dir ein altes und einfaches OS-Browsergame und versuche die Strukturen nachzuvollziehen und mit kleinen Tests Änderungen zu machen. Wenn Du einigermaßen das System begriffen hast, füge kleine Ergänzungen und Erweiterungen bei.
Später kannst Du Dir dann was Eigenes anlachen
Die meisten werden mir nun widersprechen, aber ich bin der Meinung, dass du einfach mit dem Browsergame anfangen solltest. Wenn du ein Konzept hast, dann überlege dir, wie du es umsetzen kannst.
In einem BG braucht man umfangreiches Wissen und im Laufe der Programmierung wirst du auf alle möglichen Probleme stoßen - vor allem weil das Spiel aus vielen einzelnen Komponenten (Rangliste, Ressourcentick etc.) besteht, aber gleichzeitig Teil eines großen zusammenhängenden Systems ist.
Learning by doing - das ist meine Meinung.
Und wenn man eben das Ziel hat ein BG zu entwickeln, dann braucht man auch nicht mit Gästebüchern anfangen, sondern kann z.B. schon ein News-System entwickeln (dahinter steckt das gleiche Prinzip).
Auf jeden Fall wirst du im Laufe der Entwicklung sowieso mehrere Neuanfänge machen müssen, weil du einfach ab einem bestimmten Punkt merkst, dass du so viel Neues gelernt hast und deine alten Skripte eigentlich ziemlich schlecht sind.
MfG
Original von leitstelle
Such Dir ein altes und einfaches OS-Browsergame und versuche die Strukturen nachzuvollziehen und mit kleinen Tests Änderungen zu machen. Wenn Du einigermaßen das System begriffen hast, füge kleine Ergänzungen und Erweiterungen bei.
Später kannst Du Dir dann was Eigenes anlachen
Wer nur Schrott als Vorbild nimmt wird am Ende... naja ihr wisst schon. :D Also ich würde in meinem Leben nicht ein OS Browsergame nehmen, weder zum Verständnis noch zum einsetzen. Oder kennt jemand eines was zumindest einen kleinen Hauch an guten Softwaredesign und Qualität besitzt?
Original von D4rk5in
Die meisten werden mir nun widersprechen, aber ich bin der Meinung, dass du einfach mit dem Browsergame anfangen solltest. Wenn du ein Konzept hast, dann überlege dir, wie du es umsetzen kannst.
Genau so habe ich es gemacht. Habe mir 2-3 Bücher gekauft und einfach mit einem Freund angefangen ein Browsergame zu entwickeln. Und selbst wenn das Browsergame wie bei uns nicht fertig wird, du wirst wesentlich mehr lernen als durch kleine Beispiele oder einem Gästebuch.
Ich würde allerdings zu guten Büchern raten, alles was ich aus dem Netz kenne ist nicht sehr empfehlenswert. Ein Buch zu PHP 5.3 und MySQL 5.1 Grundlagen (das oder das würde ich empfehlen), PHP Sicherheit und Entwurfsmuster. Dazu natürlich die Funktionsreferenz und Dokumentation von php.net. Das ist in meinen Augen ein guter Einstieg mit dem ich zumindest gut zurecht gekommen bin.
Auf jeden Fall wirst du im Laufe der Entwicklung sowieso mehrere Neuanfänge machen müssen, weil du einfach ab einem bestimmten Punkt merkst, dass du so viel Neues gelernt hast und deine alten Skripte eigentlich ziemlich schlecht sind.
Und das nicht nur einmal vermutlich. Und selbst Heute könnte ich heulen wenn ich sehe was ich damals in 6 Monate Arbeit (soviel solltest du auf jeden Fall einplanen) gemacht habe... :D
Mein Rat:
Nimm etwas das dir gefällt und woran du Spaß hast. Am besten etwas, das du auch selbst gebrauchen kannst. Wenn du schon immer ein CMS mit einer bestimmten Funktionalität oder Bedienweise gesucht hast, dann entwickel das. Wenn du schon immer einen Bot für ein anderes Browsergame schreiben wolltest, tu das. Wenn du nur Spaß an der Entwicklung von Browsergames hast, dann entwickel eben eins. Wegschmeißen und neu anfangen kannst du immer noch.
Ich halte nicht viel von rein theoretischen Projekten, die nie genutzt werden und nur zum "Lernen" da sind. Wozu braucht man den hunderttausendsten Kalendar/Taschenrechner/whatever? So etwas kann Sinn machen, wenn du eine bestimmte Funktionalität erproben möchtest, aber wieso nicht an einem Beispiel das danach nicht sofort weggeworfen wird?
Ein gutes Projekt lebt davon, dass du motiviert bist und dran bleibst. Das klappt nur, wenn du auch User hast (oder dein eigener User bist). Wenn ein Grund da ist, es weiter zu entwickeln und eine hohe Qualität anzubieten, dann ist auch ein Grund da es gut (und später noch besser) zu machen. Und durch die Reiterationen lernst du am besten etwas richtig zu machen.
Kann dir ja mal erläutern, wie das bei mir so abgelaufen ist.
buhrmi, 0 plan von nichts. kauft sich ein PHP/mysql und HTML Buch.
buhrmi nimmt sich vor, das erste deutschsprachige browser rpg/gladiatoren/kampf-game zu schreiben.
buhrmi liest das buch und versucht ein paar beispiele daraus zu machen.
buhrmi baut ein registrierungsformular, welche die benutzer in einer txt datei speichert. funktioniert! buhrmi fühlt sich wie ein champion.
buhrmi erkennt dass das schrott ist, und lernt mysql kennen und speichert das lieber alles in der datenbank. sogar mit md5 gehashten passwörtern. alter! krass!
[paar wochen später]
buhrmi holt sich webspace mit PHP-Unterstützung und lädt das alles da hoch.
buhrmi ist jetzt admin über sein eigenes game und fühlt sich wie gott :D
(das war 2001)
Und je nachdem wie viel du liest und herumspielst, und motivation dafür entwickeln kannst, läuft das alles wie von selbst.
Jaja... ;)
ich dich auch :)
Wenn man es nicht anders lernen kann/will, dann muss man sich die Kommunikation mit anderen suchen. Ein (kompetentes) Forum, eine Mailingliste, o.ä. Und natürlich auf der Höhe der Zeit bleiben, das ist eigentlich eine Schlüsselqualifikation für IT-Berufe.
Es hilft durchaus, wenn man sich nach einem Selbststudium gewisse kritische Themen nochmal anliest, bspw. Performance oder Sortieralgorithmen, Thread/Nebenläufigkeit, und es was es halt alles so gibt.
"Gut" ist ein relativer Code: Wenn du weder TD noch auf viele Tests wert legst, kann ein Code gut genug sein. Es kann Codeabschnitte geben, die ohne eine Dokumentation auskommen. Man muss sich nur immer wieder die Definition von "gut" überlegen. Wie das "gute Leben". War das jetzt zuviel für den Samstag? :)
@tector: Exakt. Jedoch ging es um "wie anfangen?", und weniger um "wie und warum aufhören?"
Original von tector
.. und wann hat buhrmi festgestellt, dass das Spiel aus schlechtem Quellcode besteht, unsicher ist und kaum/keine Spieler hat? Wann hat buhrmi festgestellt, dass die Quellcodestruktur total mies ist und nicht mehr ohne weiteres verbessert werden kann? Wann hat buhrmi festgestellt, dass der Code so schlecht dokumentiert ist, dass er nicht mehr wartbar ist? Wann hat buhrmi beschlossen das Projekt in die Tonne zu kloppen und lieber ein neues Projekt komplett von vorne zu beginnen? Versteh mich nicht falsch: Vielleicht ist das ja nicht so gelaufen und du bist ein Naturtalent, aber ich denke in über 90% der Fälle läuft das so ab...
Diese Erfahrungen muss man aber so oder so machen, egal mit was. Und daher darf das auch ruhig ein Spiel sein. Das wichtige ist nur, dass man sich nicht total verrennt und übernimmt, sondern auf das Wesentliche konzentriert und Schritt für Schritt voran geht. Dass man dabei auch immer wieder einen Schritt zurück macht und etwas abermals erledigt, ist doch völlig normal. Nur tut man das eigentlich nur, wenn das Projekt so interessant ist, dass man motiviert ist, es fortzuführen und Spaß daran hat. Bei den meisten exemplarischen Projekten ist das eben nicht der Fall.
Die Frage ist doch "mit was anfangen?" und nicht "was kann ich sofort perfekt?".
hmm, weiß jetzt nicht ob ich die Aussage richtig verstanden habe, aber ich glaube auch das man irgendwann von selbst erkennen sollte das der Code schlecht ist. Sei es weil, am Code immer wieder was nicht ganz rund läuft oder er einfach nur sch**** aussieht. Und interresse sollte man eh an sein Hobby haben^^
Wie gesagt, warscheinlich verstehe ich das ganze gespräch gerade eh verkehrt o.0
Also meine Aussage ist, dass es nicht wichtig ist womit (Umfang, Inhalt) man startet, weil man in allen Fällen erst einmal Grütze produziert und lernen muss, es ordentlich zu machen bzw. mehrere Anläufe braucht, bis es gut ist.
Ein Browsergame ist gar kein so schlechtes Beispiel, weil man es auch problemlos in viele kleine Teilbereiche herunterbrechen kann. Du solltest eben nur weder versuchen von Anfang an alles zu implementieren, noch groß in Foren herumtönen, dass du das Spiel des Jahrtausends geschrieben hast.
Aber wenn du ein Projekt findest, an dem dein Herz hängt, dann ist die Chance, dass dieses Spiel die 3te Iteration der Codebase noch miterlebt nun einmal weit größer, als wenn du nun zum Erlernen von Datenbankeninteraktion das millionste Gästebuch programmierst, was aber nie über Version 0.1 oder 1.0 hinaus kommt.
Fazit: Motivation, Kontinuität, Wille und Fähigkeit zu Lernen und seinen Horizont zu erweitern sind die Dinge die zählen. WAS genau du da nun machst und wie du es machst, ist erst einmal völlig egal und hängt nur von dir selbst ab. Es sollte nur etwas sein, an dem du viel Spaß hast und lang dran bleibst.
Zitat: "Es dauert 10.000 Stunden bis man irgendetwas wirklich gut kann". Daher ist das wichtigste, dass man dabei bleibt. Das gilt für Instrumente, wie Handwerk, wie Technik. ;-)
Original von MikeDee
hmm, weiß jetzt nicht ob ich die Aussage richtig verstanden habe, aber ich glaube auch das man irgendwann von selbst erkennen sollte das der Code schlecht ist. Sei es weil, am Code immer wieder was nicht ganz rund läuft oder er einfach nur sch**** aussieht. Und interresse sollte man eh an sein Hobby haben^^
Wie ich sagte, "gut" ist ein relativer Begriff.
Kleine Beispiele? Da versteht jeder etwas anderes darunter. Vor allem Anfänger verstehen nicht, warum man sich so mit Kleinigkeiten wie Klammersetzung, Leerzeichen, Absätzen oder Einrückungen im Code rumärgern soll ("funktioniert doch"). Andere verstehen nicht denn Sinn von Interfaces und denken, das Code in "Klassen" das Non-Plus-Ultra ist. Wiederum andere glauben, das Klassenverberbung das einzige Pattern ist, was man beherrschen muss. Und dann gibt es noch die, die meinen, mit [hier: sinnlosen] Inline- oder API-Dokumentationen würde man Code verbessern.
Wie gesagt, warscheinlich verstehe ich das ganze gespräch gerade eh verkehrt o.0
Ach was, wir diskutieren halt nur gern. :)
Wie man bereits - zusammengefasst . gesagt hat:
- kleine Probleme nehmen und anpacken
- diese Lösungen wieder angucken, vllt kann man etwas verbessern
- in beiden Schritten kann es sinnvoll sein, sich vorab zu informieren - mein Gott, fast jedes Problem hat schon mal irgendjemand gemacht; die richtigen Suchbegriffe, und man landet wahrscheinlich auf StackOverFlow ;)
- Kommunikation mit Freunden, Foren, Tutorials, Dokumentationen
- und ganz wichtig: wissen, wie man selber am Besten arbeitet. Manche denken (malen) sich lieber etwas vorher zurecht, andere können die große Struktur auch direkt erstellen. "In Mustern denken" kann von Vorteil sein, aber man sollte auch diese durchaus kritisch in Frage stellen. Soll ja vorkommen, das Ideen zu Innovationen wurden.
Tatsache ist, das Blog (das Gästebuch der 90er) so das Standardbeispiel für die ersten Gehversuche ist. Das kann man auch selber aufbohren (siehe Tutorials, Links sind oben in den ersten Posts) mit Benutzerverwaltung, Kommentaren und und und..
Und was das BG angeht: Du musst ja nicht direkt ein komplettes Spiel entwickeln, kannst ja auch mit einer einfachen Tätigkeit (Spieler + 1 Fähigkeit + Trainieren) anfangen.. und selbst das als Webanwendung mit DB-Backend ist für einen Anfänger erstmal eine Aufgabe. Über das Ziel hinauszuschießen ist eigentlich immer eine schlechte Idee, dafür muss man nicht Programmieren wollen.
hmm also zum lernen würd ich das empfehlen: (ich gehe von kompletter Unkenntnis aus - sollte dem nicht so sein, überspringe die entsprechenden Teile einfach)
fang mit einer kleinen webseite an... die ja zb die startseite deines Projektes sein könnte. Da bist du mit Html und CSS erstmal gut ausgelastet, und siehst direkt die Veränderungen. Gerade anfangs denke ich motiviert sowas eher als nerviges rumgefrickel mit php / java / actionScript ( was auch immer )code.
Wenn das funktioniert, bau den php teil ein, also zb einen Footer und Header ODER den umgekehrten Fall den $content - fall, der in die main dann hast du schonmal grob sowas wie Templates.
Wenn du dann die Grundlagen beherschst, dann beschäftige dich mit Datenbanken um zb. die News auf deiner Startseite darin zu Speichern.
(hmm klingt doch irgendwie nach sowas wie einem Blog *g*)
Wenn dir irgendwann langweilig ist, kannst du auch javascript schreiben, was deinen DomTree verändert... aber das erst wenn der Rest klappt.
Grüße
Original von D4rk5in
Die meisten werden mir nun widersprechen, aber ich bin der Meinung, dass du einfach mit dem Browsergame anfangen solltest. Wenn du ein Konzept hast, dann überlege dir, wie du es umsetzen kannst.
Hat noch keiner widersprochen oder? Ich auch nicht... würde sogar mehr oder weniger genauso vorgehen, wenn ich nochmal ganz von vorne anfangen würde.
Hab damals mir auch ein PHP Buch aus der Intention heraus gekauft, mein eigenes Game basteln zu wollen. Habe aber shcnell gemerkt, das sich ohne JavaScript und HTML nicht sehr weit komme und habe mich dann zwei bis drei Jahre mit "Standart" Webdesign beschäftigt. Webseiten für Freunde und Familie mit eigenem Gästebuch und Newsscript. Dann ging es weiter mit Downloaddatenbank und einen Webshop für einen bekannten, der mit seinem laden gerne auch Produkte im Net verkaufen wollte.
Habe mich dann wieder an meinen ursprünglichen Traum, ein Browsergame gesetzt. Das Studium hat mir nun auch genug Zeit dazu gelassen. Und Ruck-Zuck (naja, eher nen halbes Jahr später) steht mein erstes Browsergame mit 100 (wider allen Erwartens begeisterten) Mitspielern. Ein Blick in den Code zeigt, dass sich meine Fähigkeiten im Laufe des Spiels enorm verbessert haben, vorallem im Vergleich mit alten Skripten. Natürlich ist der Code trotzdem noch ein Chaos und wie viele es schon sagen: Es geht immer noch besser.
Werde Zwecks Weiterbildungsmaßnahmen wohl das Konzept nochmal ganz von vorne Entwickeln und diesesmal direkt au Sachen achten, die ich erst im Laufe des letzten Entwicklungsprozesses gelernt habe. Am Ende werde ich vermutlich eh noch bessere Möglichekeiten zur Umsetztung kennen und mit Version 3.0 loslegen.... tja, man lernt halt sein Leben lang^^
Fazit: Fang mit einem Browsergame an, wenn du es möchtest. Wenn du nicht weiter weißt, Lese ein bisschen rum, oder beschäftige dich mit einiger Zeit mit anderen Anwendungen.