Spiel programmieren



  • Hallo Leute,

    ich habe mir ein paar Freunde(ich und 2 andere) gesucht die mit mir programmieren wollen.
    Wir wollen ein 3D-Spiel schreiben und bringen auch ordentlich zeit mit. Das Spiel soll eine Kampagne
    und einen Multiplayermodus haben. Ich habe gehört das viele gute Spiele mit C programmiert worden(ich
    habe ein paar Vorkenntnisse auch schon gesammelt). Nun die Frage: Kennt ihr ein Buch oder eine Webseite
    wo man soetwas lernen kann.

    Hoffentlich kann mir dabei jemand weiterhelfen.



  • Also bei einem 3D Spiel mit Multiplayer Unterstützung und Kampagne werdet ihr einiges zu tun haben zeitlich und als erstes Projekt erscheint das nicht gerade leicht. Vor allem da ihr nur ein paar Vorkenntnisse in C habt wird das schwer zu bewerkstelligen sein. Um die 3D Animationen müsst ihr euch ja auch noch kümmern.

    Ich empfehle:

    - Macht für den Anfang etwas Leichteres und lernt erst einmal die elementaren Dinge.
    - Nutzt ein Tool wie GameMaker wenn es euch nur um die Erstellung des Spiels, nicht um die Programmierung an sich geht.



  • @karono
    Für Leute die allesamt erst programmieren lernen, ist dein Ziel wohl etwas zu hoch gesteckt. Vielleicht erstmal irgend ein einfaches Spiel. Ohne Netzwerk und ohne 3D und das alles.

    Und C bzw. C++ als Sprachen sind auch beide sehr wenig Einsteigerfreundlich.

    Nehmt lieber C#, oder vielleicht gleich eine fertige Engine ala Unity 3D.

    Nun die Frage: Kennt ihr ein Buch oder eine Webseite
    wo man soetwas lernen kann.

    Es gibt gute Bücher, mit denen man gut C++ lernen kann. Das dauert dann gleich mal 1-2 Jahre, nur C++, noch nix mit Spiel.
    Und es gibt schlechte Bücher, mit denen man schlecht C++ lernen kann, dafür in viel weniger als 1-2 Jahren und mit Spiel.

    Oder eben wie schon gesagt eine andere Sprache und idealerweise eine fertige Game-Engine verwenden.

    Und/oder wie auch schon gesagt das Ziel weniger hoch ansetzen.

    Dann wird das vielleicht was.

    Ansonsten wird es statistisch gesehen darauf hinauslaufen dass du ein paar Monate deiner Zeit verschwendest, und dann frustriert aufgibst.



  • Naja C++ lernen kann man auch in unter 12 Monaten, auch mit guten Büchern 😉
    Klar hat man dann noch nicht viel Erfahrung und Sachen wie die komplette Standardbibliothek und Boost sind dann auch noch nicht drinnen, aber die Grundlagen schon.
    Wenn man aber dann noch 3D Spiele entwickeln will, dauert das schon etwas, weil für das 3D brauchst du ja auch noch "eine Bibliothek" wie OpenGL oder Direct3D.
    Ich denke das man dafür (c++ & OpenGL/Direct3D) schon mindestens 1 Jahr braucht.

    Ich glaube auch nicht, das der Einstieg in C++ soviel schwerer ist als in C#, da hat man halt andere Vokabeln und andere Grammatik, aber trotzdem ist es nicht so viel anders (Wobei C# noch den Nachteil hat, das es nur unter Windows geht).

    Naja ich würde euch ja empfehlen erst mal mit 2D einzusteigen mit z.B. SFML (ist relativ einfach und die Bibliothek in Version 2.0 sehr leistungsstark).

    Aber sonst, wenn es "schnell" gehen muss, würde ich mich doch meinen Vorrednern anschließen und sagen, dass ihr am besten eine fertige Engine nehmt:
    * Unity3D: 1 2
    * Irrlicht: 1 2
    * OGRE: 1 2

    MfG,
    fer


  • Mod

    es ist unsinnig zu glauben, dass wenn man kein c/c++ kann, man mit c# lernen anfangen sollte, es wird euch nicht weniger zeit kosten ein 3d spiel damit zu erstellen, die lernzeit wird schon ueber ein jahr sein.

    wenn ihr einfach ein spiel machen wollt, wuerde ich euch sowas wie
    http://www.thegamecreators.com
    empfehlen.

    wenn ihr ein wenig mehr wollt, dann
    http://www.garagegames.com/products/torque-3d
    (schaut euch die demo an). soweit ich weiss kommt das mit einem ziemlich dicken handbuch (in digitaler form, aber es ist wohl detailiert, wurde mir gesagt).

    daneben gibt es noch das UDK, das eine visuelle scripting sprache hat die auch nicht-programmierer oft nutzen weil es relativ einfach ist
    http://www.unrealengine.com/features/kismet/
    gibt es natuerlich auch beim CryFreeSDK
    http://freesdk.crydev.net/display/SDKDOC2/Flow+Graph+Editor

    das gute an den letzten beiden ist, wenn ihr ein wenig 'mehr' wollt, koennt ihr das mit den eingebauten scriptsprachen loesen, lua bei CE3 und unreal script (c-artig) bei UE3.

    und ja, c++ ist quasi standard bei den spielen die ihr so kauft, falls ihr spaeter als entwickler arbeiten wollt, ist das nicht verkehrt, auch weil es auf den meisten platformen heutzutage laeuft. dennoch ist es nicht verkehrt erstmal ein spiel zu machen mit einer der oberen moeglichkeiten, ihr lernt vieles aus einer anderen perspektive.



  • danke für eure Antworten!
    ich habe schon ein Buch von press über c++ lernen 2010 und ein Buch über 3D-programmierung aber, mit dem 3D-Buch kann
    ich leider nicht sehr viel anfangen weil es sehr umständlich geschrieben ist und ich die eigentlich beigelegte CD
    nicht bekommen habe 😞 .
    Ich weiß das dieses Ziel sehr hoch gesteckt ist aber ich will es dennoch versuchen!



  • karono schrieb:

    Ich weiß das dieses Ziel sehr hoch gesteckt ist aber ich will es dennoch versuchen!

    Das ist löblich, aber dann musst du auch ganz unten anfangen und dich langsam hocharbeiten. Das bedeutet, dass du nicht gleich mit dem Spiele Programmieren anfangen kannst. Du musst erst mal das Programmieren an sich lernen. Also leg das 3D-Buch noch mal zur Seite (für locker 1 Jahr oder mehr, das muss dir wirklich klar sein) und fang an zu büffeln. 🙂



  • Baut vielleicht erstmal ein Snake und/oder Pacman Spiel für den Anfang. Und zwar mit modernem OpenGL (3.2 oder höher) oder mit DirectX 11. Also alles schön mit Shadern machen. Dazu noch den ganzen Fensterkram kapseln, Spiellogik aufbauen, bei Pacman KI schreiben, etc. Damit habt ihr als Anfänger sicherlich mehr als genug zu tun - und trotzdem habt ihr ein Ziel vor Augen. Und das Schöne ist: Alles was ihr da macht, müsst ihr für euer 3D Spiel eh lernen. 😉
    Aber dazu sei noch gesagt: Lernt erstmal C++ richtig. Denn solange ihr das nicht halbwegs könnt, werdet ihr nicht nur sehr viel mehr Zeit durch rumprobieren verschwenden, sondern den Schritt von Snake zu einem 3D-Spiel auch nicht überleben.



  • cooky451 schrieb:

    Baut vielleicht erstmal ein Snake und/oder Pacman Spiel für den Anfang. Und zwar mit modernem OpenGL (3.2 oder höher) oder mit DirectX 11. Also alles schön mit Shadern machen. Dazu noch den ganzen Fensterkram kapseln, Spiellogik aufbauen, bei Pacman KI schreiben, etc. Damit habt ihr als Anfänger sicherlich mehr als genug zu tun - und trotzdem habt ihr ein Ziel vor Augen. Und das schöne ist: Alles was ihr da macht, müsst ihr für euer 3D Spiel eh lernen. 😉

    Findest du das nicht ein bisschen verfrüht? Wenn ich das richtig verstehe, können sie noch gar nicht programmieren.



  • Na ja, siehe edit. 😉



  • Hallo,

    am besten du googlest mal, da es ein paar gute Tools für das Programmieren von Computerspiele gibt. Ich habe sie leider noch nicht getestet, aber wenn du jetzt alleine mit C++ anfängst ohne Unterstützung wird das ein ziemlicher Aufwand!



  • derFer schrieb:

    Wobei C# noch den Nachteil hat, das es nur unter Windows geht

    Falsch! C# wurde zwar für .NET Programmiert, läuft aber mithilfe von Mono auch unter Unix-basierten Betriebssystemen

    Meine erste Programmiersprache war übrigens auch C++ und mit viel Ergeiz und Wille ist das gut schaffbar.



  • rapso schrieb:

    es ist unsinnig zu glauben, dass wenn man kein c/c++ kann, man mit c# lernen anfangen sollte, es wird euch nicht weniger zeit kosten ein 3d spiel damit zu erstellen, die lernzeit wird schon ueber ein jahr sein.

    C# zu lernen (so dass man ohne ständig Fehler zu machen ein 3D Spiel programmieren kann) wird vlt. 1 Jahr brauchen, C++ entsprechend 2 bis 3 Jahre. Ein 3D Spiel, mit Kampagne und Multiplayer, zu programmieren wird bei durchschnittlichen Programmierern vlt. 10 Mannjahre brauchen, wenn wir nicht gleich übertreiben und sowas wie Battlefield oder Diablo wollen. Die ganzen 3D Modelle, Animationen, Texturen, Levels usw. zu erstellen wird mindestens nochmal soviel Mannjahre wie das Programmieren brauchen.



  • Die Bedienung von 3D-Modellierungssoftware usw. zu lernen braucht sicher auch noch einige Monate oder Jahre.


  • Mod

    naja schrieb:

    rapso schrieb:

    es ist unsinnig zu glauben, dass wenn man kein c/c++ kann, man mit c# lernen anfangen sollte, es wird euch nicht weniger zeit kosten ein 3d spiel damit zu erstellen, die lernzeit wird schon ueber ein jahr sein.

    C# zu lernen (so dass man ohne ständig Fehler zu machen ein 3D Spiel programmieren kann) wird vlt. 1 Jahr brauchen, C++ entsprechend 2 bis 3 Jahre.

    c++ auf den stand zu lernen das man machen kann was man in c# machen kann, wird gleich lange dauern. 99% wuerde ich denken ist das programmieren lernen an sich, nicht sprach abhaengige besonderheiten. dann koennte man genug koennen um ein spiel schreiben zu wollen.

    aber ja, wenn man dann in "freakige" dinge abdriftet wie eigenes memory management usw. wird man mit c++ fuer jahre weiter "spass" haben, jedoch braucht man es an sich nicht um wie mit c# ein spiel zu erstellen.



  • Fang klein an: Tetris, Pong, Pacman, Bomberman. Sowohl fuer Einzel als auch Mehrspieler. Das ist die Mindestvorbereitung, ein eigenes Spiel zu machen.



  • Dem würde ich mich auch anschließen, denke das C++ und C# zu lernen gleich lange dauert, aber was ja wurscht ist, weil man um 3D Spiele zu programmieren, eigentlich auch noch OpenGL oder Direct3D braucht und dann ist es egal ob C# oder C++.
    Im übrigen habe ich gehört, dass das Mono-Projekt eingestellt wird (zumindest die Moonlight Version).
    MfG



  • rapso schrieb:

    c++ auf den stand zu lernen das man machen kann was man in c# machen kann, wird gleich lange dauern.

    Gerade Dinge wie manuelle Speicherveraltung, Objekt-Lebensdauer und Zeiger bereiten Anfängern (und leider nicht selten auch Fortgeschrittenen*) in C++ sehr viel Mühe, auch sonst gibts genügend Pitfalls. Diesbezüglich hat mans in C# schon etwas einfacher...

    derFer schrieb:

    weil man um 3D Spiele zu programmieren, eigentlich auch noch OpenGL oder Direct3D braucht

    Warum? Man kann direkt ein High-Level-Framework wie Irrlicht oder Ogre verwenden. Bietet vielleicht nicht ganz so viel Möglichkeiten, aber man kommt schneller ans Ziel.

    ______
    * Ich habe bisher z.B. extrem wenig Code von Spieleprogrammierern gesehen, die Konzepte wie RAII tatsächlich verstanden haben und konsequent anwenden. Wahrscheinlich kursieren immer noch zu viel Mythen, oft werden entsprechende Hinweise zudem mit "ich will die volle Kontrolle haben", "es funktioniert ja" und ähnlichen Nullargumenten abgetan.



  • _matze schrieb:

    Du musst erst mal das Programmieren an sich lernen. Also leg das 3D-Buch noch mal zur Seite (für locker 1 Jahr oder mehr, das muss dir wirklich klar sein) und fang an zu büffeln. 🙂

    Der Bagger hat wieder mal recht. 😉



  • EOP schrieb:

    _matze schrieb:

    Du musst erst mal das Programmieren an sich lernen. Also leg das 3D-Buch noch mal zur Seite (für locker 1 Jahr oder mehr, das muss dir wirklich klar sein) und fang an zu büffeln. 🙂

    Der Bagger hat wieder mal recht. 😉

    vllt gibt es ja ein buch, das gleichzeitig programmier- und spieleprogrammier-lehrbuch in einem ist.
    anstelle von einem simplen hello world gibt es dann eben zusätzlich noch eine hello-world-box, die sich in einem fenster hin- und herbewegt oder weiß der geier.

    ich würde erstmal mit einfachen 2-d versuchen starten, später irgendwann mit 3-d.
    mit opengl/glut/freeglut ... z.b. kann man erstaunliche 2-d und 3-d effekte hinbekommen.
    opengl hat schnittstellen zu verdammt vielen programmiersprachen (c, c++, java, delphi, haskell, blabla...) und läuft auf verdammt vielen plattformen ( ..., blabla...).

    gut, diese opegl geschichte ist nur ein weg, eine möglichkeit von vielen ...


Anmelden zum Antworten