In die Spieleprogrammierung einsteigen

1337hAx'

Lt. Junior Grade
Registriert
Juli 2012
Beiträge
338
Tach Leutz, mich kennt man vielleicht schon ein bisschen hier :D
Nach meinem Praktikum habe ich C++ einigermaßen drauf, für Windows Forms o.ä. benutze ich aber lieber C#.
Wie programmieren funktioniert habe ich mittlerweile eigentlich ganz gut verstanden, deshalb sollte es auch kein Problem sein, auf eine andere Sprache umzusteigen, wenn nötig. C++ ist ja nicht gerade leichte Kost ^^

Mein Ziel:
Ich möchte anfangen, kleine 2D-Shootermäßige mit ein paar RPG-Elementen zu entwickeln. Sowas kennt man auch von genug Indie Entwicklern. Später, wenn ich auch in der Spieleprogrammierung durchgeblickt habe, möchte ich dann richtige 3D-Shooter entwickeln.

Aber erstmal beim Greifbaren bleiben:
Langsam habe ich die Nase voll von Büchern ^^ bisschen interaktiver wäre echt nicht schlecht, aber wenn kein Weg drum rum führt, meinetwegen auch Bücher. Vorher habe ich "C++ für Spieleprogrammierer" angefangen, nach dem Praktikum war's dann aber ziemlich unnötig. Spieleprogrammierung wirklich war da nicht drinne, eher C++, worauf ich ja auch abgezielt habe.
Kennt jemand also etwas gutes?

Vielleicht ein etwas einfacheres Framework (auch Android-Spiele) mit einer Art grafischem Editor, nur Text ist schon echt extrem.

MfG
 
guck dich mal bei microsoft virtual academy um. da wird einem unter anderem gezeigt wie man spiele mit directx programmiert. anmeldung ist kostenlos
 
EDIT: Habs gefunden.
Danke, werd mich erstmal damit beschäftigen.
 
Zuletzt bearbeitet:
@harrysun
Ein bisschen JS kann ich auch....
 
Zuletzt bearbeitet:
Du solltest dir eventuell überlegen was genau du an der Spieleprogrammierung machen willst oder interessant findest und dann dementsprechend handeln. Denn die Spieleprogrammierung ist so ein umfangreiches Thema, dass man gar nicht alles (gut) machen kann. Je nach Interessensgebiet gebe es da primär Folgendes:
-Design: Irgendwie Level zusammenstöpseln, texturieren und skripten oder 3D-Meshes designen. Dann nimm irgendeine vorgefertigte 3D-Engine. Mit reinem Programmieren hat der Teil aber weniger zu tun.
-2D/3D-Graphik: Hauptsächlich auf der GPU programmieren wie die Objekte genau gerendert werden und die Ansteuerung der GPU. Das ganze ist extrem Mathematik und Physik lastig und benötigt viel Einarbeitungszeit in die entsprechenden Techniken. Da wäre es am sinnvollsten wenn du dir entsprechende Lektüre schnappst.
-Sound, KI, Physik, Skriptsprachen, der Netzwerkteil, die gesamte Programmarchitektur: Hier gilt mehr oder weniger das analoge wie bei der Graphik.
-Einfach "nur" die allgemeine Spiellogik für ein einfaches Minispiel zusammenprogrammieren: Dann nimm möglichst viele vorprogrammierte Teile welche dir Programmierarbeit abnehmen, weil der Aufwand sonst selbst bei relativ moderatem Featureset deines Spiels explodiert.
 
Eigentlich dachte ich eher daran, ein paar kleine "fancy" Minispiele zu programmieren, bevor es ans Eingemachte - deshalb möchte ich mich auch vorher nicht an ein spezifisches Gebiet binden. Mal grob geschätzt:
Vorgefertigt, da hab ich absolut keine Lust drauf. vll. mal just for the lolz im editor bisschen wat machen, aber ich will schon meine eigenen Sachen schreiben. Generell will ich sehr viel Kontrolle darüber, was ich schreibe, ohne den Überblick zu verlieren. Ich hasse es, wenn es mir nicht möglich ist, bspw. Fenster-Farbe/Größe zu ändern, Objekte nach meinen Vorstellungen zu positionieren etc... (btw habe ich auch mal in nächster Zeit vor, Assembler zu lernen)

Also das sind alles interessante Sachen, meine Favoriten wären Grafik (Besonders AE-mäßige Effekte o.ä.), ein bisschen Sound und auf jeden Fall das wirkliche Programmieren des Spiels. Grafik, da mathe-lastig, und da habe ich absolut kein Problem mit ^^
Sound vielleicht wegen der Musik und ein paar Effekten...

Ich denke aber, dass das alles später eher Spezialisierungen sind, als dass ich das jetzt nicht bereits im Groben lernen müsste.


Meine jetzige Vorstellung ist ein simpler 2D-Shooter. Natürlich schon irgendwo durchdacht und mit einem gewissen Schwierigkeitsgrad. Bis ich das erstmal souverän drauf habe, dauert es schon ein Weilchen. Dann würde ich das ganze mit ein paar grafischen Effekten aufmotzen, ehe ich mich dann fast komplett darauf spezialisieren würde.

Ich liebe es, wenn ich nach 20h Arbeit sagen kann:
Diesen Teil kann ich immer wieder mal verwenden, als wenn ich mich 2 Tage lang durchgeacktert hab, nur um eine 30 sekündige Spielszene daraus zu machen...
 
Zuletzt bearbeitet:
http://www.libsdl.org/ empfehle ich ganz gern. Damit habe ich mein erstes Spiel in C++ geschrieben zu einem Zeitpunkt, wo ich gerade auf dem Level war in Java ein leidliches Konsolen-Tic-Tac-Toe hinzufrickeln. Daher kann es nicht sonderlich schwer sein, sich da einzuarbeiten.

Umso früher du dich von Tutorials und tutorialartigen Büchern löst, umso schneller wirst du Fortschritte machen, denn abtippen bzw. copy-pasten bringt gar nichts. Nachdem du ja nun Grundlagen hast, ist Transferleistung gefragt, d.h. Doku lesen und selbst Probleme lösen.
 
Die Antwort wird dir wohl am besten ein Augenarzt geben können :X
 
Ziemlich leicht. Der kniffeligste Punkt dürfte das zufällige Generieren der Welt sein, aber das kann man zuletzt angehen.
 
Dann könnte ja mein erstes Ziel sein, so etwas ähnliches zu bauen... mit paint die umrisse zeichnen und so'n billiges quadrat. dann kann ich mir vorstellen, dass man da die physik der sprungbewegung irgendwie einbauen muss, auf die umrisse dann noch kollision?
 
Allgemein eigentlich alles simple Sachen. Die Kollisionserkennung bekommt man durch Generierung des Levels quasi geschenkt und die Physik des Sprungs ist einfach eine konstante Beschleunigung nach unten der man bei Knopfdruck eine Kraft nach oben entgegensetzt. Mittelstufenphysik allerhöchstens.
 
Wie verpack' ich aber das ganze in einem Programm? Grafiken importieren - das ganze lauffähig bekommen...
Ist das wirklich einfacherer als ich mir es gerade vorstelle, oder vergesse ich irgendetwas?
 
- Beherrsche deine Sprache und sei sicher im umgang mit objektorientierten programmiertechniken
- Such dir eine 2D-Api aus (SDL, SFML oder Allegro)
- Programmiere ein Spiel in dem man nichts weiter macht als ein Viereck mit den Pfeiltasten bewegen zu können.

Und dann geht das immer so weiter, dass du dir mit Hilfe der Dokumentationen und Tutorials immer mehr Dinge beibringst. Grafiken einbauen, Grafiken animieren, Kollisionsabfrage, etc.

Die Erfahrung wie man eine sinnvolle Klassenhierarchie aufbaut kommt einfach erst mit der Zeit, würde ich sagen.
 
the_plague schrieb:
- Programmiere ein Spiel in dem man nichts weiter macht als ein Viereck mit den Pfeiltasten bewegen zu können.

Genau so habe ich auch den Weg zum 1. eigenen Spiel bestritten! Kann es auch nur empfehlen.

Ob man als Anfänger direkt Spiele Bibliotheken braucht oder nutzen sollte? Ich habe zwar selbst noch nie eine benutzt (hab jetzt aber auch keine großen Spiele programmiert), aber ich denke das ganze mal von Grund auf zu 100% eigenständig umzusetzen fände ich intressanter und vielleicht auch sinnvoller, weil man dann versteht wie z.B. ein Platformer überhaupt realisiert wird.
 
Zuletzt bearbeitet:
Halte die Idee, es 100% selber zu basteln für scheiße. Das sorgt für Frust und baldiges Aufgeben. Für die ersten Schritte in was immer man tun will, sind schnelle Erfolge das allerallerwichtigste. Einen Monat mit der Win32-API kämpfen, damit endlich mal ein Fenster aufgeht (davon, da dann auch etwas grafisches hineinmalen zu können mal ganz zu schweigen)? Wem nützt das? Kann man irgendwann mal als Kuriosität machen und dann versuchen zu vergessen, wie grauenhaft die Erfahrung war. Ohne psychiatrische Unterstützung wird sie einen wohl noch jahrelang in Alpträumen heimsuchen.
 
Zuletzt bearbeitet:
asdfman schrieb:

Wenn man mit der Spieleprogrammierung anfangen will, dann sollte man bereits auf jedenfall schon programmieren können und wissen wie man z.B. ein Fenster erstellt.
Das "einzig" neue was man zu lernen hat, wäre vielleicht wie man Bilder/Grafiken ins Fenster zeichnet + Kollisionen derer überprüft. Wenn man dies kann, kann man eigentlich schon Spiele programmieren.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben