Eigene 3D Engine



  • Hi,
    ich bin jetzt nach langem Überlegen doch dabei von DarkBasic auf C++ umzusteigen. DarkBasic ist eigentlich eine Engine für das Programmieren von 3D Spielen. Natürlich möchte ich dies dann auch weiterhin in C++ fortsetzen. Bis jetzt fällt mir der Einstieg relativ leicht, da ich ja einige der Grundkentnisse von DarkBasic weiterhin verwenden kann.

    Ich habe mir schon vorgenommen in Zukunft an einer eigenen 3D (Game-) Engine zu arbeiten. Doch ich habe noch einige Fragen dazu.

    1. Wie sieht 3D Spieleprogrammierung in C++ im allgemeinen aus. Ist die Entwicklung von einigermaßen komplexen Spielen für ein Ein-mann-team 😉 überhaupt möglich oder kaum zu empfehlen.

    2. Ist die Entwicklung einer einigermaßen guten Spieleengine (2d/3d) für einen einzelnen Programmierer möglich oder ist auch davon abzuraten.

    3. Wie ist es mit einem compiler wenn ich bei meiner Engine eine eigene Programmiersprache oder einen Programmiersprachendialekt (Basic dialekt wie bei DarkBasic) entwickelt habe. Muss ich da einen eigenen compiler schreiben? Ist das arg schwierig wenn man c++ mittelmäßig bis gut beherscht? Was brauch ich noch für Kentnisse dazu auser C++, DirectX(o.ä.)?

    jo, das wärs erstmal.

    mfg
    lukas



  • lukasc++ schrieb:

    1. Wie sieht 3D Spieleprogrammierung in C++ im allgemeinen aus. Ist die Entwicklung von einigermaßen komplexen Spielen für ein Ein-mann-team 😉 überhaupt möglich oder kaum zu empfehlen.

    Zunächst einmal ist C++ alleine nicht dazu geeignet etwas anderes außer einfachen Konsolenprogrammen umzusetzen. C++ kennt weder 2D noch 3D Grafik. Um denoch so etwas machen must du dann
    - auf Betriebssystemspezifische Hardwarenahe Funktionen zugreifen und alles selber machen (wie in alten DOS-Zeiten. Sehr schwer und aufwendig)
    - eine passende externe Bibliothek einbinden. Bei einfachen 2D-Spielen mag da noch die einfache WinAPI reichen die bei jedem ordentlichen Windows-Compiler mit dabei ist. Oder gleich richtige spezialisierte hardwareunterstütze Librarys wie DirectX

    2. Ist die Entwicklung einer einigermaßen guten Spieleengine (2d/3d) für einen einzelnen Programmierer möglich oder ist auch davon abzuraten.

    Eine 2D-Engine ist für einen Programmierer sicher mit vertretbaren Aufwand machbar. Eine 3D-Engine mit heute gewohnter 3D-Grafik ist schon wesentlich komplexer und eher etwas für Teams aus bereits erfahreneren Programmieren.

    Allgemein gilt : Wenn du wirklich vom einfachen Spiele-BASIC auf C++ umsteigen willst dann mach das auch. Glaub nicht das du in C++ gleich mit einem fetzigen Spiel anfangen kannst, egal was für externe Librarys du einbindest. Lern lieber erstmal die Grundlagen von Programmieren und C++ mit den üblichen Tutorials in der Konsole. Das Forum ist voll von Leuten mit hochfliegenden Spielprojekten aber keiner Ahnung von grundlegenden Hintergrundwissen.

    3. Wie ist es mit einem compiler wenn ich bei meiner Engine eine eigene Programmiersprache oder einen Programmiersprachendialekt (Basic dialekt wie bei DarkBasic) entwickelt habe. Muss ich da einen eigenen compiler schreiben? Ist das arg schwierig wenn man c++ mittelmäßig bis gut beherscht? Was brauch ich noch für Kentnisse dazu auser C++, DirectX(o.ä.)?

    Du meinst wohl eine Spielinterne Scriptsprache. C++ ist eine reine kompilierende Sprache und unterstützt keine Laufzeitvariable Interpretierung. Auch hier gilt wieder : du kannst dir eine eigene Scriptsprache samt Interpreter designed und implementieren (schwer) oder eine bestehende externe wie LUA einbinden (nicht ganz so schwer).

    Hier nochmal der Hinweis auf das C++ Subforum, das Spiele Subforum, die jeweiligen FAQs und die Suchfunktion. Du wirst schnell merken das solche Fragen schon öfters beantwortet wurden, und es kein Patentrezept gibt.

    bis bald
    akari



  • lukasc++ schrieb:

    1. Wie sieht 3D Spieleprogrammierung in C++ im allgemeinen aus. Ist die Entwicklung von einigermaßen komplexen Spielen für ein Ein-mann-team 😉 überhaupt möglich oder kaum zu empfehlen.

    Es ist halt zeitaufwändig, auch wenn ich jetzt nicht gut abschätzen kann, was "einigermaßen komplex" heißt. Prinzipiell gilt: Je mehr du selber machst, desto länger brauchst du. Wenn du eine fertige Engine mit C++ verwendest, kommst du vermutlich recht schnell zum Ziel. Und zwischen "alles selber machen" und "fertige Engine verwenden" gibt es viele Abstufungen.

    2. Ist die Entwicklung einer einigermaßen guten Spieleengine (2d/3d) für einen einzelnen Programmierer möglich oder ist auch davon abzuraten.

    Die meisten Leute, die eine eigene Engine entwickeln machen das aus persönlichem Interesse und nicht aus Notwendigkeit. Es ist also die Frage, ob du daran Interesse hast.

    3. Wie ist es mit einem compiler wenn ich bei meiner Engine eine eigene Programmiersprache oder einen Programmiersprachendialekt (Basic dialekt wie bei DarkBasic) entwickelt habe. Muss ich da einen eigenen compiler schreiben? Ist das arg schwierig wenn man c++ mittelmäßig bis gut beherscht? Was brauch ich noch für Kentnisse dazu auser C++, DirectX(o.ä.)?

    Einen eigenen Compiler zu schreiben ist je nach Eingabesprache keine Kleinigkeit. Für eine komplexe Sprache brauchst du Ahnung vom Compilerbau und Formalen Sprachen, beides happige Themen in der Informatik. Es gibt auch fertige Lösungen, zum Beispiel für LUA, die du einbinden kannst.



  • Vielen Dank für die schnellen Antworten.

    Um das gleich mal zu sagen: ich zähle mich definitiv nicht zu den Hochstaplern. Natürlich sind selbige auch schon im DarkBasic Forum aufgetreten ^^.
    Naja ich fange auch bei C++ wieder fast bei 0 an. (bist auf wenige, für Programmierer allgemein gültige, Elemente). Für den Einstieg habe ich mir die Video2Brain Dvd angeschafft und ich lese parallel dazu ein Ebook.

    Also das etwas wie 3D Spiele oder gar 3D Engine programmierung in C++ schon sehr Komplex ist, war mir bekannt. Aber natürlich ist es kein Ding der Unmöglichkeit.

    btw 1: Sind die Sachen wie DirecX/3d Api oder OGL eigentlich kostenlos für kommerzielle projekte verwendbar?

    btw 2: Das Forum ist klasse !!!

    mfg
    lukas



  • OpenGL Lizenziert IMO der Treiberhersteller für dich, DirectX Lizenzen sind in Microsoft® Windows™ Betriebssystemen enthalten.

    Sprich: Wenn du DirectX Entwickeln willst brauchst du ein legales Windows, für OpenGL müssen nur Treiberhersteller Lizenzgebühren zahlen 😉



  • Hört sich gut an^^. Aber bis dahin ist es eh noch ein langer weg.

    mfg
    lukas



  • lukasc++ schrieb:

    btw 2: Das Forum ist klasse !!!

    Jap, wenn man auf die richtigen Leute trifft 😉

    Aber du bist nicht der erste der solche Fragen stellt, entsprechend findest du vielleicht ein paar mehr gute Antworten über die Suche.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • 1. Wie sieht 3D Spieleprogrammierung in C++ im allgemeinen aus. Ist die Entwicklung von einigermaßen komplexen Spielen für ein Ein-mann-team überhaupt möglich oder kaum zu empfehlen.

    Ich denke die Entwicklung von "einigermaßen komplexen Spielen" ist mit C++ genauso schwer oder einfach bzw. genauso für ein "Ein-mann-team" möglich bzw. unmöglich wie mit DarkBasic.


  • Mod

    Am ende ist DarkBasic das, was auch ich als Engine betiteln wuerde. Wenn du also selbst eine Engine schreibst (oder vielleicht eine fertige benutzt, gibt's ja genug von), sollte es am ende auf die moeglichkeiten von BarkBasic hinauslaufen. Das selbst zu schreiben dauert dann auch so lange wie ein spiel zu machen (und wenn es sehr flexibel werden soll, dann um einiges laenger).

    Ich empfehle immer sich zu entscheiden, entweder Engine oder Spiel. Beides zu machen macht spass, aber beides gleichzeitig ist oft eine never ending story. weil sowohl ein spiel, als auch eine Engine "produkte" sind, die ihre ziele haben. Fuer ein spiel benoetigst du vielleicht nur simplen maus support, aber wegen der engine implementierst du einen sauberen grossen input layer, zeit die du beim programmieren eines spieles vielleicht besser investieren koenntest, und im falle von eine fertigen engine schon garnicht erst machen muesstest.

    naja, my2cent :xmas2:



  • Also so das du dir es vorstellen kannst :
    Ich hab für ein kleines 3D Spiel, wo man durch einen großen Raum laufen konnte, 3 Tage gebraucht.
    Und auch wirklich nur durch ein Raum.
    Keine besonderen Special Effekte.



  • Hi lukasc++ für dich ist das DarkGDK vielleicht interessant
    ([url] http://gdk.thegamecreators.com [url])

    Das ist "Dark basic für C++" wenn man das so sagen kann. Sogar von der gleichen Firma, von der Dark basic kommt.
    Damit kannst du (fast) genau so schnell Erfolge in C/C++ erzielen wie mit Dark Basic.


Anmelden zum Antworten