Spieleprogrammierung

ali7566

Lieutenant
Registriert
Feb. 2007
Beiträge
980
Hallo Leute,

seit schon mehreren monaten habe ich große an der Entwicklung von Spielen. Ich habe spaß am Programmieren und habe auch schon mit einigen sprachen gearbeitet weshalb ich das als eine neue Hürde ansehen möchte.

Ich hab mich schon etwas über das Thema beschäftigt, und weiß das viel Mathe gebraucht wird etc. und das das ganze nicht einfach ist. Trotzdem möchte ich mich damit beschäftigen.

Ich studiere technische Informatik und bin im durchschnitt gesehen nicht gerade der hellste in Mathe (schlecht aber auch nicht).

In den Semesterferien würde ich gerne mal etwas in die Materie reinkommen.

Daher meine Frage, wie fange ich damit am besten an ? XNA ? oder direkt C++ ?

Welche Literatur ist zu empfehlen und gibt es evtl. sogar video tutorials etc.

Vielleicht gibt es hier ja Leute die damit schon erfahrung haben und mal etwas darüber erzählen wollen.

Gruß Ali.
 
Wenn du schnell zu einem Erfolg kommen willst nimm Java und eine 3D-Engine für Java deiner Wahl, z.B. JMonkeyEngine. In Java wäre zwar atm ein Crysis 2-like Shoother nicht drin, aber für kleinere 3D-Spiele reicht das, für 2D erst recht, außerdem läufts auch im Browser ;)
http://www.javavideokurs.com geht zwar nicht über Spiele-Programmierung, sondern Java Allgemein aber irgendwie muss man ja anfangen, 5€ für insgesamt 20 Stunden Video-Tutorial ;)
 
Bei XNA wirst du recht schnell zu schönen Ergebnissen kommen und nette Video Tutorials findet man dazu auch. Bei C++ fällt mehr boilerplate code and sofern du nicht irgendeine existierende Engine benutzt, was natürlich auch eine Möglichkeit wäre.
 
C, Java und C# behersche ich schon mehr oder minder , jedoch ist ja Spieleprogrammierung in der Sicht ja eine ganz andere Herausforderung, mir gings halt mehr um das Mathematische und das Hintergrundwissen um das Thema.
 
Ich persönlich würde C# mit XNA für den Einstieg nutzen. Es ist einfacher zu programmieren als mit C++ und man findet Tutorials und Hilfe im Internet (außerdem st es kostenlos).

MfG
lizard99
 
Besuch mal deine Unibib und leih dir die passenden Bücher aus. Empfehlen würde ich XNA (4.0), da hat man sehr schnell und einfach sehr beeindruckende Resultate. Man sollte sich jedoch mit den Grundlagen auseinandersetzen, was Kamera und Beleuchtung angeht, da helfen die passenden Bücher am besten.
 
Wenn du möglichst schnell zu anfassbaren Ergebnissen kommen willst, kann ich dir den "Game Maker" empfehlen: http://www.yoyogames.com/make
Hört sich zwar wie ein Klickibunti-Programm an, aber es ist durchaus mächtig. Neben einem Pong, dass man wirklich mit paar Mausklicks zusammenklicken kann, sind einem im 2D-Bereich keinerlei Grenzen gesetzt, vorausgesetzt man sätzt sich mit der integrierten Scriptsprache (GML) außeinander, welche sowohl Pascal/Delphi, als auch C/Java-Syntax unterstützt und jede Menge für Spiele nützliche Funktionsaufraufe parat hällt.
Im gegensatz zu anderen Makern, musst du die Spieleengine wirklich von Grund auf selbst programmieren, hast dafür aber auch keinerlei Einschränkungen.
Ne Menge Indi-Spiele die man in Spielezeitschriften findet sind mit dem Game Maker gemacht worden.
 
Also ich denke XNA ist als Einstieg sehr empfehlenswert. Die Frage ist eher was du genau machen möchtest innerhalb der Spieleentwicklung. Leute welche Spiele ganz alleine komplett durchprogrammieren sind sehr selten. Im professionellen Bereich werden alle Themenbereiche auf mehrere Personen aufgeteilt. Dazu gehören nicht nur Engineentwicklung, sondern auch Storytelling, Mapentwicklung, Musik usw.

In einem Team zu arbeiten ist übrigens auch deutlich motivierender und wenn man sich gut ergänzt sollten schnell gute Ergebnisse folgen. Alleine das Erstellen individueller 3D Objekte nimmt sehr viel Zeit in Anspruch und ist garantiert nicht so motivierend, wie später alles auf die Maps zu setzen, deswegen ist es wichtig die Arbeit so einzuteilen das jeder Spaß daran hat.

Du könntest dir auch mal die neue Cryengine ansehen. Bin mir jetzt nicht sicher ob sie bereits von Crytek freigegeben wurde, oder noch nicht, dürfte allerdings sehr spannend sein, da du dir dann zumindest um die Engine keinen Kopf mehr machen musst. (Und das Programmieren einer solchen kann teilweise schwerer als das Programmieren so mancher Assembly sein)

Ich habe vor einigen Jahren an so manchen Projekten mitgearbeitet, wobei mein Themenbereich vordergründig 2D war, was natürlich nochmal ein Stück leichter ist als mit 3D Objekten zu arbeiten. (Spreche also aus Erfahrung ;))
 
@Bunshichi
UDK ist weit entfernt für Starters zu sein.

Ich entwickle seit paar Jahren beruflich Spiele und aus Erfahrung kann ich dir sagen, benutze gleich C++ zum programmieren. Es ist nicht immer leicht und bietet nicht so viel Komfort wie C#, aber im Endeffekt hast du mehr Kontrolle über dass was in Laufzeit geschieht und du übst mit einer Sprache zu arbeiten die in Spielentwicklung immer noch nicht zu ersetzen ist.

XNA bietet zwar "leichteren" Einstieg, aber mehr als Prototypen eignet sich das Framework kaum. Auch wenn viele hier aufschreien würden, aber XNA ist eine gute, aber nicht zu Ende gedachte Idee von Microsoft.

Ich empfehle dir zur Anfang mit SDL oder Allegro oder SFML (je nach dem was einem mehr gefällt) ein kleines 2D Spiel zu machen. Ein Klon von einem altem Spiel zum Beispiel. Während der Entwicklung wirst du dir wissen bezüglich Algorithmen und Hintergrundwissen besser eineignen, als mit einem Buch.
Dennoch kann ich dir für Mathematik in Spielen das Buch "Mathematics for 3D Game Programming & Computer Graphics" von Eric Lengyel ans Herz legen. Top Nachschlagewerk.

Hast du das Gefühl die Materie verstehen zu können, kannst du Ogre3D anschauen. Es ist zwar keine Game Engine, aber hervorragende Renderingengine. Mit vielen Tutorials und guter Community.

Blackbox Engines wie UDK, Unity 3D, Shiva3D oder gar Game Maker würde ich nur dann empfehlen, wenn man was schnelles erstellen möchte ohne sich mit der Materie zu sehr auseinandersetzen zu wollen. Wobei UDK sehr komplex ist und nicht für Anfänger zu empfehlen, außer man will einen Shooter zusammenklicken.

@Omega4
Weißt du welche Hardwareanforderungen Cryengine hat? Das würde ich sicher keinem Empfehlen. Vor allem lernt man da am wenigsten, da vielen schon für einen erledigt wurde. Und da der TE eher die Hintergründe verstehen möchte (so habe ich es zumindest aufgefasst) ist eine fertige Engine mit übertriebenem Hardwarehunger nicht wirklich zu empfehlen.
 
Zuletzt bearbeitet:
Falls dir 2D reicht kannst du mal die SDL Bibliothek in C++ probieren. Eine C# Version gibts glaub ich auch schon.
Hier ist ein Tutorial für SDL das ich mal ausprobiert habe, es ist ziemlich gut:
http://lazyfoo.net/SDL_tutorials/index.php

Später kann man SDL Programme noch mit Hilfe von OpenGL erweitern um 3D zu machen, aber so weit bin ich noch nicht.
 
Zuletzt bearbeitet:
Ich würde dir XNA empfehlen. Ist für kleinere Projekte genau richtig und man kann auch was dabei lernen.

XNA hat auch den Vorteil, dass es mit ein paar kleineren Änderungen auf drei Plattformen läuft(PC, XBOX und WindowsPhone7). Wenn du ein gutes Spiel fertig hast, kannste dir so im xBox und WP7 Marketplace noch ein paar Euro verdienen.;)
 
@Keldrik
Das mit der XBox und XNA Geldverdienen ist aber ein ganz großer Traum. Da musst du schon geniales Gameplay und Top Umsetzung vorweisen.
 
@CrazyIwan: Was mich mehr interessieren würde, muss man von der Intelligenz her ein Brain sein um überhaupt richtig mit der Spieleentwicklung zurecht zu kommen.

Die Frage wäre zudem noch, wie lange würde ich dafür brauchen um mit C++ richtig fuß zu fassen um später dan erste 2D spiele usw. zu bekommen. Ich habe wie gesagt bis jetzt nur C, Java und C# gemacht. Daher kann ich noch nicht genau abschätzen wie sich z.B. C von C++ unterscheidet. Und was für ein C++ wird denn hauptsächlich genommen, Ansi ? .Net ?
 
@CrazyIwan
So groß ist der Traum nicht..

Ich würd mich selbst einen Programmier Noob nennen, hab aber trotzdem mein Projekt bis zum Ende durchgezogen. Denn bei Handy Spielen ist die Idee wichtiger als Engine und irgendwelcher Technik Schnick Schnack.^^

Mein Spiel wurde mittlerweile über 30000 mal runtergeladen, das Geld für die Anmeldung im Marketplace und für das Handy hab ich jetzt schon doppelt wieder drin. Nur reich wird man nicht damit.. ;)

Das Spiel hab ich aber nicht mit XNA sondern mit Silverlight umgesetzt.
 
In der c´t 9/2011 auf Seite 184 war ein interessanter Artikel zur Spieleprogrammierung per XNA. Beispielprogramm inklusive.


ibm9001
_______________
Daddelmaschine: Q9650@3,6Ghz @ Thermalright SI-120 // MSI P43T C51 / Bios V2.5 // 8 GB DDR2 RAM (A-DATA VIESTA) // Sapphire Radeon 6950@1536_Shader@880MHz@1.160V // DELL P2210 // SB Audigy 2 // Samsung SSD 470 Series 64GB // OS: Vista/Home-x64 & XP/Home-x86
_______________
Internet-Kiste: AMD Athlon II X3 435 @1.160V (default 1.325V) + SCYTHE Big Shuriken // ASROCK A785GMH/128M // 6 GByte Ram // Dell UltraSharp 2007FP // Super Talent Ultradrive GX MLC SSD //OS: XP/Pro-x86
 
Es ist allerdings eine Seltenheit, dass ein Spiel bei Xbox Indie oft gekauft wird. Auch wenn Microsoft endlich mal in die Gänge kommt die Spiele im Markt zu promoten, es trotzdem schwer damit was zu verdienen. Viele schaffen es auch nicht ihre 100€ Gebühr einzuspielen :)

@TE
Ein Brain? Hmm, nee glaube ich nicht. Ich bin eigentlich 3D Grafiker der die Schnauze voll hatte und bin umgestiegen. War in Algebra nicht so gut, nur in der Geometrie, dennoch lernt man mit der Mathematik viel besser umzugehen. Man hat im Vergleich zu Schule/Studium praktische, und vor allem interessantere Beispiele, und nicht irgendeine trockene Funktion von der man nicht weiß wozu die da ist und was man damit anfangen soll.

Zu C++. Kennst du ein C kommst du mit anderem C besser zurecht :D Klingt komisch, ist aber so. Ich bin ursprünglich auch aus C# Ecke. Programmiere noch täglich damit, weil wir Unity im Moment nutzen. Die Unterschiede gibt es natürlich schon, aber in Syntax kommt man sehr schnell rein.

Zu deiner Frage wie lange es dauern wird, kann ich dir nichts sagen. Es obliegt nur an dir und in wie weit du bereit bist an den Problemen, die beim programmieren auftauchen werden, zu arbeiten. Ich habe Mädel im Studium gehabt, die als Grafikerin nach zwei Wochen super cooles Spiel mit SDL programmiert. Klein und einfach, aber dennoch beeindruckend.

Und sonst nimm Visual C++ Express, wenn du das Studio nicht hast.
Als Einstieg in C++ und Spielentwicklung kann ich dir das Buch von Heiko Kalista "C++ für Spieleprogrammieren" sehr empfehlen.
 
Würde dir zu XNA raten, leichter Einstieg, aber sehr umfangreich, kannst ja auch später noch auf C++ mit direktem DirectX umsteigen, da du aber wahrscheinlich keine super Games wie Crysis entwickeln willst, sollte XNA lange reichen.

Achtung Eigenwerbung:
Kannst ja mal auf http://maxgb.bplaced.net/Shooter schauen, das ist ein Spiel das ich mit XNA entwickele, habe mit einem Tutorial(http://create.msdn.com/en-US/education/tutorial/2dgame/getting_started) angefangen und dies dann stetig erweitert. Ist vielleicht nicht das beste Spiel, aber es ist mein erstes Spiel.
 
Zuletzt bearbeitet:
Man kann auch bei BASIC bleiben, je nach dem welche Ziele man erreichen möchte.

Will man jedoch sich richtig ernsthaft mit der Materie befassen, reicht C# alleine nicht aus. Zumindest nicht auf Dauer. Will man die ganzen Hintergrundabläufe kennen lernen und auch verstehen ist ein Weg über C++ unumgänglich.
 
Zurück
Oben