Vom Hobby-Gamer zum Hobby-Programmierer, Teil 1

Vom Hobby-Gamer zum Hobby-Programmierer, Teil 1 User-Artikel

Python und PyGame

LRod / 7. April 2017 - 17:27 — vor 3 Jahren aktualisiert

Teaser

Möglicherweise als Ausdruck der einsetzenden Midlife-Crisis hat LRod begonnen, sich selbst das Programmieren beizubringen. Teil 1 beschreibt seinen Einstieg ins Programmieren mit Python und PyGame.
Dieser Inhalt wäre ohne die Premium-User nicht finanzierbar. Doch wir brauchen dringend mehr Unterstützer: Hilf auch du mit!
Obwohl ich schon seit jungen Jahren, beginnend mit dem 8086er mit Frogger und den Türmen von Hanoi in Bernstein-Monochrom-Grafik, den PC eher als Spieleplattform denn als Arbeitsgerät betrachte und mich generell auch als technikaffin bezeichnen würde, hat es mir mein Informatiklehrer leider erfolgreich ausgetrieben, irgendetwas in dieser Richtung zu studieren. Möglicherweise als Ausdruck der einsetzenden Midlife-Crisis habe ich dann im Frühjahr 2016 aber doch damit begonnen, mir im Selbststudium das Programmieren beizubringen. Dementsprechend mögen die Informatiker unter den Lesern vielleicht die Hände über dem Kopf zusammenschlagen. Aber als Erfahrungsbericht eines langfristigen Hobby-Projekts mag es vielleicht den einen oder anderen Leser inspirieren, auch mehr aus seinem PC zu machen. Ein solcher ist denn auch die einzige Voraussetzung, um mit diesem Projekt zu starten.

Der Einstieg im ASCII-Look
 
Es fing alles ganz harmlos an: Aus beruflichen Gründen hatte ich im letzten Frühjahr mit den Robotics-Kästen von Fischertechnik zu tun. Das sind Bausätze, bei denen Lampen und Motoren per PC mit einer grafischen Oberfläche programmiert werden. Interessant, aber Zielgruppe ist eher die Mittelstufe in der Schule, die bei mir doch schon zwei Jahrzehnte zurückliegt. Da es aber schon Spaß gemacht hat, habe ich mir für eine Bahnfahrt eine Raspberry-Pi-Zeitschrift gekauft, um mal zu schauen, was man damit anstellen kann. Besonderes ein Artikel über das Programmieren einfacher Spiele mit der Programmiersprache Python war sehr spannend. Da dieser aber schon ein paar Grundkenntnisse voraussetzte, habe ich im Internet nach Gratis-Tutorials gesucht und bin auf die gute, inzwischen aber leider kostenpflichtige Seite learnpythonthehardway.org gestoßen. Dort habe ich erfreut festgestellt, dass ich nicht einmal einen Raspberry Pi brauchte, sondern direkt auf dem PC loslegen konnte.
 
So bin ich eher zufällig zu Python gekommen. Dass diese Sprache generell als einsteigerfreundlich beschrieben und einfache Spiele mit einfacher Grafik umsetzbar waren (also schon einmal ein Fortschritt zum schon damals veralteten Schul-Turbo Pascal) hat mir gereicht und so habe ich jeden Tag drei bis vier Lektionen abgeschlossen. Plötzlich konnte ich erste simple Programme schreiben (ok, damit konnte man nur Textzeilen im Terminal ausgeben und einfache Rechenaufgaben lösen, aber stolz war ich trotzdem) und wunderte mich erneut, wie mein Informatiklehrer es in der Schule geschafft hatte, mich trotz schon damals bestehendem Interesse so von dieser beruflichen Richtung abzubringen. Ein ganzer Schwung neuer Fachbegriffe und Konzepte hat sich mir dabei zwar nicht sofort erschlossen, etwa die Vorteile objektorientierter Programmierung, die hier noch öfter vorkommen wird. Aber egal, denn insgesamt kam ich überraschend gut klar mit den verschiedenen Typen von Variablen, den Funktionen und Schleifen, die durch den Tutorial-Kurs weitgehend verständlich eingeführt wurden.
 
Python: Das erste Projekt: X-Com ultralight in FullHD-ASCII-Optik
Nur spielerisch oder grafisch ging das Tutorial nicht über das Niveau eines Zork von 1980 hinaus und das Spiel war selbst zu meinen Schulzeiten jedenfalls optisch schon hoffnungslos veraltet. Also nichts, womit man irgendeinen Bekannten hätte begeistern können. Zum Glück wusste ich schon, wie es weitergehen sollte, nämlich mit den kostenlos oder über Amazon verfügbaren Büchern Invent Your Own Computer Games with Python undMaking Games with Python & Pygame von Al Sweigart (inventwithpython.com). Beide sind sehr gut geschrieben, es wird wirklich jede Zeile und jeder Gedanke erklärt und immer wieder gibt es kurze Exkurse zu notwenigen theoretischen Grundlagen. Das erste Buch beginnt noch mit einfachen Puzzle- und Brettspielen, ebenfalls im Textlook. Aber es wird dabei viel Wissen um die grundlegenden Abläufe vermittelt. Mit diesem habe ich parallel immer wieder an eigenen Ideen gearbeitet und irgendwann hatte ich es tatsächlich geschafft, eine Art X-Com ultralight zu bauen. Dieses beschränkte sich zwar darauf, dass ich ein paar eigene Figuren pro Fraktion abwechselnd über ein ASCII-Spielfeld bewegen konnte, aber immerhin bewegten sie sich so wie ich es mir vorgestellt hatte und konnten sich sogar bekämpfen und beschießen!
 
Mein persönliches Highlight war aber das Ende des ersten Buchs. Während es bis dahin nur um einfache Puzzle-Spiele für einen Spieler ging, kam bei Reversi erstmals ein Computer-Gegner vor. Mit dem dort vermittelten Wissen gelang es mir plötzlich, mein X-Com ultralight um feindliche Spielfiguren zu ergänzen, die in einem zweiten Schritt sogar in zwei Klassen daherkamen: Nahkämpfer, die immer auf meine Figuren zuliefen und diese verfolgten, wenn ich mich wegbewegt habe, und Fernkämpfer, die immer auf höchstmöglicher Waffenreichweite blieben! Und auch wenn dieses kleine Spiel natürlich extrem simpel war, war es doch ein großartiges Erfolgserlebnis, als der PC erstmals selbstständig seine Figuren übers Windows-Terminal schob und sich dabei nicht schlechter anstellte als bei Civilization 6.

Es geht voran: Endlich Sprites!
 
PyGame: Erste Sprites bewegen sich über den Bildschirm!
Im zweiten der beiden Bücher kam dann die Python-Ergänzung PyGame hinzu, die es erstmals erlaubte, das Terminal-Fenster zu verlassen, 2D-Grafiken darzustellen und so mehr oder weniger schicke Sprites über den Bildschirm zu bewegen. Erneut möchte ich an dieser Stelle Al Sweigart loben, der auch dieses für Einsteiger etwas anspruchsvollere Thema gut vermittelt. Und so dauerte es nicht lange und mein X-Com ultralight wurde zu einer Art HeroQuest light – dem Brettspielklassiker aus meiner Kindheit. Mein zuvor leeres Spielfeld bekam Gänge, Räume und Türen und statt ASCII-Zeichen schob der PC nun minimal schickere Sprites über das Feld. In einem Anfall von überbordendem Enthusiasmus wuchs das Spiel auf über 5.000 Zeilen an, mit denen ich immer mehr und mehr Features wie Fallen, verschiedene Gegner und Zauber umgesetzt habe. Sogar einen kleinen Leveleditor zum Erstellen weiterer Dungeons habe ich dafür geschrieben.

Vieles in diesen 5.000 Zeilen hätte man im Nachhinein auch deutlich kürzer und einfacher machen können. Dass etwa Copy & Paste beim Programmieren keine gute Idee ist, wurde zwar schon im Tutorial mehrfach erwähnt, aber so habe ich halt auf die harte Tour gelernt, wie leicht man damit Fehler einbaut. Und auch hier sind wir wieder beim Stichwort „objektorientierte Programmierung“. Diese kam in den beiden Büchern von Al Sweigart nicht vor und während des Online-Tutorials hatte ich den Sinn dahinter noch nicht verstanden. Hier hat dann aber mein drittes Buch, Beginning Game Development with Python and Pygame von Will McGugan, weitergeholfen, das dieses Konzept anhand eines einfachen Beispiels anschaulich erklärt hat – leider zu spät für meine eigenen Spielfiguren, aber immerhin rechtzeitig für die der Computergegner.
 
Anzeige
PyOpenGL: Echtes 3D, aber leider sehr abstrakt und unkomfortabel
Ein anderer Grund für die 5.000 Zeilen war aber, dass Python auch mit PyGame nicht wirklich gut für das Programmieren von Spielen geeignet ist. So muss jede Grafik „von Hand“, also per Codezeile, geladen und anhand von zwei Koordinaten auf dem Bildschirm dargestellt werden, was ab einer gewissen Größe doch sehr anstrengend wird. Besonders die Gestaltung von Benutzeroberfläche und Menüs ist eine ziemlich mühsame Fleißarbeit, und das trotz Verzichts auf eine zusätzliche Maussteuerung. Sehr ernüchternd war dann das Kapitel über 3D-Darstellung mit PyOpenGL im Buch von McGugan - ich kann mir nicht vorstellen, wie man damit etwas auch nur ansatzweise Spielbares erstellen soll. Und als das Kompilieren von PyGame-Inhalten mit aktuellem Windows wegen Problemen mit geänderten dll-Dateien komplizierte, nicht offiziell dokumentierte Anpassungen erforderte, war für mich der Punkt erreicht, an dem ich mich schweren Herzens - immerhin steckten inzwischen mehrere hundert Stunden in meinen Versuchen, Python zu erlernen und in dem halbfertigen Spiele-Projekt - nach Alternativen umsah. Leider war PyGame tatsächlich schon die Spitze der Spieleentwicklung mit Python. Aufgrund des Tipps eines Bekannten habe ich mir aber schließlich die auf C# basierende Unity-Engine angeschaut.

Sollte ich mich tatsächlich ein halbes Jahr nach meinem Einstieg ins Programmieren schon mit einer weiteren Sprache beschäftigen? Dazu mehr in Teil 2.
LRod 7. April 2017 - 17:27 — vor 3 Jahren aktualisiert
ChrisL 30 Pro-Gamer - P - 199512 - 7. April 2017 - 17:22 #

Gratulation zum ersten User-Artikel! Freue mich auf die kommenden Beiträge der Reihe.

Mantarus 18 Doppel-Voter - 10404 - 7. April 2017 - 17:30 #

Super geschrieben, freue mich auf Teil 2.

Mitte der 90er Jahre haben wir in der Schule Turbo Pascal und Delphi gelernt. Unser Lehrer holte sich beim Unterrichten immer Hilfe von anderen Schülern. Soviel zu seinen Fähigkeiten. :-) Aber wir haben Snake mit 4 Spielermodus und Leveleditor programmiert. Das war cool!

Toxe (unregistriert) 7. April 2017 - 17:41 #

Python ist eine hervorragende Sprache für Einsteiger! Wobei, nicht nur für Einsteiger. Von daher: Gute Wahl! :-)

LRod 19 Megatalent - - 18637 - 7. April 2017 - 18:38 #

Wie geschildert war es ja eher Zufall, aber ich muss dir Recht geben, der Einstieg fiel mir erstaunlich leicht. Ich frage mich immer wieder, was da in der Schule schief gegangen ist...

Toxe (unregistriert) 7. April 2017 - 18:49 #

Welche Sprache hattet Ihr denn damals? Java?

LRod 19 Megatalent - - 18637 - 7. April 2017 - 19:18 #

Nein, das war Ende der 90er - wir hatten Turbo Pascal und ein klein wenig HTML.

Toxe (unregistriert) 7. April 2017 - 19:47 #

Nice, Borland Turbo Pascal war meine erste "echte" Programmiersprache nach C64 und Amiga BASIC bzw. QBASIC unter MS DOS.

Olphas 26 Spiele-Kenner - - 66897 - 8. April 2017 - 18:05 #

Wir hatten ja damals nix anderes! :D

tintifaxl 13 Koop-Gamer - 1222 - 8. April 2017 - 21:49 #

Tut mir leid für euch - ich hab am C64 in Assembler programmiert und meinen Amiga in C.

Olphas 26 Spiele-Kenner - - 66897 - 8. April 2017 - 21:57 #

Das war auch nicht ernst gemeint ... ich hab auf dem Spektrum ZX81 mit Basic angefangen und später auf dem C64 auch ein bisschen mit Assembler rumgemacht.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:42 #

Vielleicht lag das Problem auch nicht an Turbo Pascal (das damals ja eigentlich schon offiziell eingemottet war), sondern daran, dass wir meiner verschwommenen Erinnerung nach vor allem mathematische Probleme bearbeitet haben. Hätten wir uns dem Thema spielerisch genähert, dann wäre bei mir vielleicht vieles in eine andere Richtung gegangen.

Also, wenn hier Informatiklehrer und den Usern sind: Lasst die Schüler auch einmal ein paar Symbole über den Bildschirm bewegen, wenn ihr motivierte Mitarbeit wollt :-)

Jürgen -ZG- (unregistriert) 7. April 2017 - 17:51 #

Super Artikel! Danke.

Sgt. Nukem 17 Shapeshifter - - 6293 - 7. April 2017 - 17:52 #

Ja cool, das schau' ich mir heut' abend mal konkreter an!

In mir schwebt auch seit mindestens 2 Jahren der Gedanke, mal ein kleines "Lass uns ein kleines Spiel programmieren!"-Tutorial als User-Artikel auf GG zu bringen. Sowas gab's in den alten PC-Games-Magazinen etc. halt immer mal wieder. War nur bislang zu faul, das alles in Worte zu giessen und aufzubereiten. xD

Schön, daß es jemand mal gemacht hat. *daumenhoch*

Toxe (unregistriert) 7. April 2017 - 17:54 #

Hihi ja ich will sowas auch schon seit Ewigkeiten mal machen. :-D

Aber Faulheit und so... ;-)

LRod 19 Megatalent - - 18637 - 7. April 2017 - 18:24 #

Das Thema habe ich dir auch freigehalten ;-) Ich schildere ja eher den Einstieg ins Programmieren an sich. Tutorials zu konkreten Projekten überlasse ich den Profis :-)

firstdeathmaker 18 Doppel-Voter - 9333 - 7. April 2017 - 18:03 #

Na da bin ich ja mal gespannt. Hab früher selber mal recht viele kleine Spiele programmiert, dann Informatik studiert und habe jetzt vor ein paar Jahren erst mit Python angefangen. Allerdings mehr im Bereich Maschinelles Lernen.

Ist dein scheitern an einem bestimmten Punkt vielleicht auf fehlendes Wissen über das herunterbrechen und strukturieren von komplexeren Problemen zurück zu führen? Denn grundsätzlich sollten auch mit Python größere Sachen zu schaffen sein (auch wenn ich zugebe, dass die Klassen schon sehr viel Disziplin erfordern, um erfolgreich genutzt zu werden).

Was das einzelne einlesen von Dateien angeht: Überleg dir doch mal, ob du das nicht automatisieren kannst. Allerdings ist da wieder objektorientierte Programmierung von großem Vorteil. Um das Konzept kommt man ab einer gewissen Größe eh nicht mehr herum.

Ich muss sagen, mich würde es schon reizen, mal wieder nen kleines Spiel zu bauen. Allerdings hätte ich dann natürlich lust, da mal eine echte KI ein zu bauen...

C# und Unity ist natürlich etwas "besser" geeignet um Hobby und Professionell los zu legen. Bin schon gespannt auf die Fortsetzung und viel Erfolg!

LRod 19 Megatalent - - 18637 - 7. April 2017 - 18:37 #

Naja, da kamen letztlich ein paar Punkte zusammen. Im 2D-Bereich hätte ich sicher noch viel Interessantes machen können, aber es juckte mir schon in den Fingern, in den 3D-Bereich reinzuschauen. PyOpenGL ist da aber derart abstrakt, dass ich da - jedenfalls als Einsteiger ohne Studium in dem Bereich - nicht weiterkam. Man sieht es ja an Quelltext und Bild im Screenshot, das ist wirklich mehr als abstrakt und dabei passiert da noch nicht einmal wirklich etwas.

Hinzu kam - für mich im Selbststudium natürlich fatal -, dass ich mit den drei Büchern das Thema PyGame und PyOpenGL auch schon abschließend behandelt hatte. Mehr war dazu bei Amazon einfach nicht zu finden. Dabei hätte ich an dem Punkt ein Buch mit etwas fortgeschritteneren Inhalten gebraucht. Ich habe zwar ein paar interessante Tutorials im Netz gefunden, aber die ersetzen ein gutes Buch aus meiner Sicht nicht.

Auf der anderen Seite stand dann Unity, das schon allein im Punkt Komfort einfach ein paar Jahre weiter ist, aber eben auch Bücher zu nahezu jedem Thema bietet.

Python war aber auf keinen Fall verschwendet, da komme ich in Teil 2 und in Teil 3 noch mehrfach drauf zu sprechen.

firstdeathmaker 18 Doppel-Voter - 9333 - 7. April 2017 - 18:44 #

Naja, das OpenGL Zeugs sieht doch ok aus. Normalerweise baut man sich damit dann eine kleine Engine. Man schreibt sich z.B. loader, mit denen man dann die 3D-Objekte laden kann (und sie nicht im Quelltext definieren muss) sowie Render-Funktionen, die dann einfach alle Objekte in einer Liste etc. abarbeiten. Kommt halt viel zusammen, aber der Trick ist immer, das quasi auf zu splitten in einzelne, übersichtliche Teile und diese dann schön in Funktionen oder Objekten weg zu kapseln.

Der Vorteil, wenn man seine eigene Engine schreibt ist der, dass die Komplexität genau auf das eigene Spiel zugeschnitten ist und man sehr frei ist. Aber Unity ist auch ne gute Wahl, vor allem wenn man schnell vorran kommen möchte.

LRod 19 Megatalent - - 18637 - 7. April 2017 - 19:26 #

Das klingt interessant, aber leider wurde keines dieser Themen in dem Buch aufgegriffen. Das, was ich im Text und dem Bild dargestellt habe, war praktisch der Abschluss des Buchs. Es wurde also nicht einmal ein kleines Spiel in PyOpenGL umgesetzt, sondern es blieb bei dem 3D-Objekt, um das man die Kamera bewegen konnte.

Wenn du ein gutes Buch - vielleicht auch ein Fachbuch - empfehlen kannst, das diese Schritte von Anfang bis Ende gut erklärt, dann würde ich mir das gerne einmal anschauen. Bis dahin bin ich erst einmal dankbar, dass Unity mir diese Schritte abnimmt und ich mich auf die Spielmechanik konzentrieren kann.

firstdeathmaker 18 Doppel-Voter - 9333 - 7. April 2017 - 19:56 #

Ich hab eigentlich noch nie nen Buch über Spieleprogrammieren gelesen, immer nur lerning by doing und internet recherche. Und so arbeiten auch die meisten Programmierer, die ich so kenne.

Ein paar gute Quellen für Spieleprogrammierung wären so auf die schnelle z.B.:

Für Gameengine:

http://www.gamasutra.com/blogs/MichaelKissner/20151027/257369/Writing_a_Game_Engine_from_Scratch__Part_1_Messaging.php

Und www.gamedev.net ist auch immer recht gut.

Wie du siehst, sind die Artikel nicht auf eine bestimmte Sprache festgelegt, es geht mehr um die dahinter stehende Konzepte.

Ein wichtiges Konzept der Informatik ist: Sei Faul. Automatisier alles, was nicht niet und nagelfest ist, bevor du es eventuell zwei Mal machen musst.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 9:59 #

Danke für den Link, ich habe den mal gespeichert und auch den ersten Teil schon gelesen. Ob ich in der Lage bin, das selbst zu machen bezweifle ich, aber lesen werde ich auch den Rest auf jeden Fall, schon einfach weil es mich technisch interessiert.

blobblond 20 Gold-Gamer - P - 24478 - 7. April 2017 - 18:31 #

BTW, das Buch "Invent Your Own Computer Games with Python" gibt es zur Zeit beim Humble Book Bundle mit ein paar anderen Pythonbücher für gerade mal 15$
https://www.humblebundle.com/books/python-book-bundle

firstdeathmaker 18 Doppel-Voter - 9333 - 7. April 2017 - 18:48 #

Und hier umsonst:

https://inventwithpython.com/chapters/

Allerdings nutzt das Buch Python 2.x

Ich würde eher raten, Anaconda mit Python 3 zu installieren (https://www.continuum.io/downloads). Da kann man bequem verschiedene Python Pakete nachinstallieren und auch verschiedene Umgebungen nebeneinander pflegen.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:03 #

Dass verschiedene Bücher verschiedene Versionen von Python nutzen und ihre Version als die bessere darstellen ist mir auch aufgefallen.

Ein Grund, auf ein anderes Buch ausweichen wäre es für mich allerdings nicht, da sich die Unterschiede zwischen den Versionen - wenn man im wesentlichen PyGame beschäftigt - minimal sind.

Markus 14 Komm-Experte - 1878 - 7. April 2017 - 18:50 #

Toller Artikel! Macht Lust, das selbst mal auszuprobieren. Bin schon gespannt auf deine Erfahrungen mit Unity!

Noodles 26 Spiele-Kenner - P - 75314 - 7. April 2017 - 18:51 #

Schöner Artikel. Die Freude, wenn dann selbst simpelste Dinge, die man aber selber programmiert hat, funktionieren, kenn ich. :)

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:04 #

Ja, das war wirklich etwas, was mich bei den anspruchsvolleren oder nicht so aufregenden Abschnitten immer bei der Stange gehalten hat. Und wenn es nur ein PC-gesteuertes ASCII-Symbol war ;-)

Q-Bert 25 Platin-Gamer - P - 56354 - 7. April 2017 - 18:54 #

Es gibt ein HERVORRAGENDES Tutorial für C# von RB Whitaker:

http://rbwhitaker.wikidot.com/c-sharp-tutorials

Der C# Crashkurs ist eingebettet in ein umfassendes Tutorial zur Spieleprogrammierung mit MonoGame, einem Framework mit dem u.a. Stardew Valley, FEZ, Inside und diverse Indietitel geproggt sind:

http://rbwhitaker.wikidot.com/monogame-tutorials

Aber auch wer mit Unity arbeiten will (ich find Unity total unbequem), lernt mit dem C# Crashkurs viel Basiswissen. Daher klare Empfehlung für jeden, der in das Thema Spielprogrammierung reinschnuppern will!

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:08 #

Danke, sehr schönes Tutorial. Ich werde das gerne als Empfehlung in Teil 2 aufnehmen!

immerwütend 22 Motivator - 31893 - 7. April 2017 - 19:05 #

Sehr gut geschrieben - auch wenn ich im Grunde nicht mehr davon kapiert habe als von einem Buch über Autoreparaturen ;-)

Bastro 17 Shapeshifter - 6337 - 7. April 2017 - 19:32 #

Danke für den interessanten Einblick. Vielleicht der Motivationsschub, endlich mal meinen Raspberry Pi für mehr zu nutzen als zum Recalboxen. Das Ansinnen, mal ins Amateur-Programmieren mit etwa Python reinzuschnuppern, habe ich seit der Pi im Hause ist^^.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:14 #

Ja, mach das doch mal. Python ist bei Raspbian sogar vorinstalliert. Wenn du das noch auf einer SD-Karte hast, kannst du da im Terminal ganz bequem heute loslegen ;-)

Ich habe mir auch einen gekauft, allerdings bisher nur ein Projekt auf Python-Basis gemacht, darum bin ich nicht sicher, ob ich da vielleicht mal ein paar Sätze zu schreibe. Für einen ganzen Artikel reicht es nämlich eher nicht.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:37 #

Ach, eine Ergänzung noch: Wenn du erste kleine Projekte umsetzen willst, bei denen mit Python tatsächlich auch externe Komponenten angesteuert werden, dann kann ich dir dieses kleine Starterset wärmstens empfehlen:

https://www.alternate.de/html/product/1297064

Das bietet einen kleines Python-Tutorial (ein "normales" würde ich davor oder parallel trotzdem empfehlen) und beinhaltet gleichzeitig eine Reihe Hardware-Komponenten, die darin direkt eingebunden sind und das Ansteuern und Verkabeln erklären. Besser kann man hier kaum einsteigen.

Limper 18 Doppel-Voter - P - 10310 - 7. April 2017 - 19:43 #

Schöner Artikel!

Sh4p3r 16 Übertalent - 4994 - 7. April 2017 - 19:57 #

Schöner Artikel. Darin erkenne ich mich ein wenig wieder ^^ Bin in den letzten Jahren auch vom Spieler zum Programmierer übergegangen.

Allerdings hat es mich mehr in Richtung Amtel AVR's und ESP6288 MCU's getrieben. Programmiert wird in C/C++. Die Möglichkeiten sind da so vielfältig und das allgemeine Potential einfach nur unglaublich. Grenzen setzen da im Prinzip nur der eigene Horizont (der sich stetig erweitert) und der teils begrenzte Speicher.

Ich bin schon auf deinen zweiten Teil gespannt :)

malkovic (unregistriert) 7. April 2017 - 21:59 #

Sehr interessanter Artikel, vielen Dank dafür! Ich hab gaaanz früher mal auf einem 14-Zoll-20Hz-Amiga-Monitor bei Permanentgenickstarre versucht zu programmieren und es ziemlich schnell wieder gelassen. Bin gespannt auf die nächsten Teile!

Labrador Nelson 31 Gamer-Veteran - P - 266417 - 7. April 2017 - 23:50 #

Schöner Beitrag. Ich finde sowas immer spannend und wünschte ich hätte mich früher auch mehr damit beschäftigt. Hab damals nur erste Versuche mit Basic, TP und Assembler veranstaltet. Heute fehlt mir schlicht die Zeit.

knusperzwieback 13 Koop-Gamer - 1215 - 8. April 2017 - 0:13 #

Hat mir gut gefallen der Artikel. Bin schon auf die weiteren Teile gespannt. :-)

SPrachschulLehrer 15 Kenner - P - 3235 - 8. April 2017 - 0:15 #

Toller Artikel. Ich habe null Ahnung von der Marterie, daher bin ich sehr gespannt auf die Fortsetzung.

Slaytanic 25 Platin-Gamer - - 62062 - 8. April 2017 - 1:16 #

Schön geschriebener User-Artikel, und mit Borlands Turbo Pascal (unter Klassenkameraden damals auch gerne Hasscal genannt) habe ich auch meine ersten Erfahrungen in dem Bereich gemacht. ;)

Aladan 25 Platin-Gamer - P - 57121 - 8. April 2017 - 9:38 #

Schöner Artikel, vieles davon hab ich auch sehr ähnlich erlebt. :-D

TSH-Lightning 26 Spiele-Kenner - - 65103 - 8. April 2017 - 10:26 #

Super, weiter so! Ich hatte auch zuerst Kontakt mit Turbo Pascal in Informatik auf der Schule. Ich hatte nie die Absicht mein Hobby PC, Hardware usw. beruflich zu nutzen und lernte einen kfm. Beruf und kam auch im berufsbegleitendem Studium nicht mehr mit Programmierung in Berührung.

Nun ja was soll ich sagen. Ich bin jetzt in der Firma doch in der IT gelandet und nutze im SAP, SQVI usw. und besitze Minimalkenntnisse in ABAP...

Aladan 25 Platin-Gamer - P - 57121 - 10. April 2017 - 8:48 #

Sehr ähnlicher Verlauf bei mir und jetzt sitze ich im Bereich Automatisierungen und Web ;-)

amenon 17 Shapeshifter - 7271 - 8. April 2017 - 11:12 #

Ganz toller Artikel. Ich bin Informatiker und meine Hände sind brav auf Tischhöhe geblieben.

Bin schon sehr gespannt, wie der Sprung von Python auf Unity gelingt.

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:18 #

Danke, das freut mich. Etwas im Selbststudium zu lernen birgt ja immer die Gefahr, Fehler nicht zu erkennen und immer durchzuschleifen. Die erwähnte Objektorientierung war da nur ein Beipsiel, allerdings für das spätere arbeiten mit Unity wohl das wichtigste.

annonyme 10 Kommunikator - 397 - 8. April 2017 - 12:38 #

Meine Versuche bei der Entwicklung von Spielen. habe ich mit JavaScript und dem HTML5 Canvas bestritten.
Das war auch erstaunlich einfach und man brauchte keine Runtime-Umgebungen oder große IDEs installieren. Ein Web-Browser und ein Text-Editor reichen. Man muss nicht auch einen Compiler oder ein Build-Script warten, was die Entwicklung sehr schnell macht.

Und man kann es direkt auf allen Geräten verwenden, PC, Smartphone, Tablet, WiiU Controller,...

Ein kleiner Versuch von damals http://bouncydolphin.annonyme.de/ (klicken zum Springen, Wale können als Trampolin verwendet werden) oder
http://wormy.annonyme.de/ (steuern mit der Maus und ausweichen)

Leider habe ich für so etwas kaum noch Zeit und habe eher "ernsthafte" Projekte.

Passatuner 14 Komm-Experte - 2458 - 8. April 2017 - 13:28 #

Ach ja, programmieren. Ist jetzt knapp 30 Jahre her. Das letze mal auf einem Amiga 1000 in 68k Assembler, der Kompiler hieß, glaube ich, Aztek, oder war es Secam? Schon so lange her.. aber mehr als Starfield, Music und ein paar drehende Objekte habe ich nie gemacht, waren kleine Intros für, öhm, ja, 80er halt...hust...
Danke für den Bericht.

Drapondur 30 Pro-Gamer - - 161739 - 8. April 2017 - 16:19 #

Schöner Artikel. Ich habe meine Prüfung noch auf einem IBM-Großrechner mit Cobol gemacht. :)

Der Marian 21 AAA-Gamer - P - 29632 - 8. April 2017 - 17:45 #

Super Artikel! Als Hobby-Spieleprogrammierer habe ich zuletzt auch meistens mit Python und Pygame gearbeitet. Für schnelle Prototypen (hab ein paar mal Ludum Dare mitgemacht) super. Aber für Python an sich muss man schon sehr objektorientiert denken und einige Fehlerquellen kennen. Viel Erfolg weiterhin. Schönes Hobby.

rofen 16 Übertalent - P - 4182 - 8. April 2017 - 19:29 #

Schoen! Vielen Dank fuer den Artikel! Als .NET und C# Fan empfehle ich natuerlich eher C#, aber die Sprache ich ja Geschmackssache. Naja, auf jeden Fall kann man in vielen aktuellen Sprachen Spiele schreiben.
Aber vielleicht sollte ich doch mal auf Visual Studio hinweisen, die Community Edition ist kostenlos. Und VS 2017 soll auch schneller sein als aeltere Versionen (habs aber noch nicht getestet). Wer aber trotzdem etwas kleineres will kann ja mal Visual Studio Code ansehen. Da hat man auf jeden Fall mehr und besseren Intellisense als in Notepad++. (Nichts gegen Notepad++! Super Programm, aber ich benutze es eher fuer alles was nicht Programmierung ist ... ;-)).

Toxe (unregistriert) 9. April 2017 - 16:50 #

Ich persönlich bin eher ein Fan von simpleren Programmen und wenn man die etwas esoterischeren Editoren wie vim oder EMACS mal aussen vor lässt ist in meinen Augen Sublime Text 3 der aktuell beste Texteditor, sowohl allgemein als auch zum Programmieren. Kostet zwar was, dafür bekommt man ihn für drei Plattformen gleichzeitig (Mac, Linux, Windows).

Mantarus 18 Doppel-Voter - 10404 - 8. April 2017 - 22:04 #

@LRod Zur Zeit gibt's auf www.humblebundle.com/books/python-book-bundle ein paar Python Bücher. Sind die empfehlenswert?

RoT 21 AAA-Gamer - P - 26095 - 9. April 2017 - 6:52 #

vielleicht helfen dir die beiden comments weiter...

http://www.gamersglobal.de/user-artikel/vom-hobby-gamer-zum-hobby-programmierer-teil-1#comment-1973466

LRod 19 Megatalent - - 18637 - 9. April 2017 - 10:29 #

Der obige Kommentar (das eine Buch davon habe ich genutzt und fand es sehr gut, das gibt es aber auch kostenlos) trifft es eigentlich gut.

Ansonsten ist es eine etwas wild zusammengestellte Sammlung von Einsteiger-Büchern und Spezialthemen. Wenn du nicht Hacker werden willst, dann fallen da zwei Bücher raus. Bist du nicht Mathematiker ein weiteres. In das andere Al Sweigart-Buch (gibt es auch kostenlos) habe ich auch kurz reingeschaut, das geht aber wenn ich es richtig in Erinnerung habe auch eher um PC-interne Automatisierungsprozesse, also etwas Dateinamen massenhaft abändern.

Ich könnte mir aber vorstellen, dass man "Python for Kids: A Playful Introduction to Programming" (kenne ich nicht, aber die Beschreibung geht in die Richtung des Tutorials, das ich genutzt habe), gefolgt von dem ersten Al Sweigart-Buch, gut als Einstieg nutzen kann.

TheRaffer 23 Langzeituser - P - 40287 - 8. April 2017 - 22:42 #

Schön geschrieben, richtig zum miterleben. Und bei dem Gedanken mit Civ 6 habe ich herzlich gelacht. :)

RoT 21 AAA-Gamer - P - 26095 - 9. April 2017 - 7:01 #

danke für den artikel.
auch der commentbereich, der durch den artikel eröffnet wurde bietet spannende info...
bin schon auf die weiteren artikel gespannt :D

Ein aktueller Kickstarter zu einem How to make games in Pico 8 (mit Programmiersprache LUA) ist noch einige stunden live:

https://www.kickstarter.com/projects/bumblebee/how-to-make-games-with-pico-8-english-and-german/description

Für Pic8 8 spricht scheinbar, dass man seine projekte auch relativ leicht online veröffentlichen kann und dass lizenzen für schulen kostenlos sind. vielleicht etwas um den lehrern der kinder einen stups in diese richtung zu geben.

http://www.lexaloffle.com/pico-8.php

blobblond 20 Gold-Gamer - P - 24478 - 10. April 2017 - 21:39 #

Danke für den Tip!

Durch das Humble GameDev Software Bundle habe ich PICO-8 und Voxatron bekommen.

_XoXo_ (unregistriert) 9. April 2017 - 9:10 #

Glückwunsch zum ersten Artikel.

Ganon 27 Spiele-Experte - - 83891 - 10. April 2017 - 12:32 #

Sehr schöner Artikel. Python hatte ich zwar nur mal ein Semester lang, aber die Sprache hat mir auch sehr gut gefallen. Bin mal gespannt, was du mit C# zusammenzauberst. Will ich auch mal lernen, bin bisher aber hauptsächlich bei Java hängengeblieben (beruflich, nicht privat - und keine Spiele ;-) ).

blobblond 20 Gold-Gamer - P - 24478 - 10. April 2017 - 21:40 #

Aus dem Humble GameDev Software Bundle habe ich noch Clickteam Fusion 2.5 Standard und den Clickteam Fusion HTML5 Exporter übrig, wobei ich nicht weiß ob die 2 Keys noch gehen, wer es haben will, kann ja mal per PM anfragen.

stylopath 17 Shapeshifter - 6257 - 25. Juli 2017 - 10:29 #

Toller Artikel, freue mich auf die Vortsetzung!