Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Progater

Treue Seele

  • »Progater« ist der Autor dieses Themas

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

1

09.08.2007, 12:01

Engine oder doch was anderes...

Hallo Leute,
ich bin endlich mit dem Buch "3D-Spieleprogrammierung mit DirectX 9 und C++" fertig. Nun habe ich mich ein bisschen im Internet umgeschaut und überlegt, was ich als nächstes im Bereich Spieleprogrammierung tun könnte. Dabei fiel mir OGRE3D ins Auge. Jetzt stehe vor der Frage, soll ich diese Engine in meinen späteren Projekten benutzen oder doch alles selber (GUI, Physik usw.) programmieren?

Meine Frage richtet sich deswegen an erfahrene (Spiele-)programmierer: Wie macht ihr das, benutzt ihr shon fertige Engines wie OGRE3D oder Irrlicht, oder programmiert ihr euch eigene Engines oder benutz einfach DirectX oder OpenGL (ohne irgendwelche Engines) oder doch einfach die WinApi?
Meine Frage ist keineswegs so gemeint, dass ich nicht über eigene Meinung verfüge. Ich möchte nur wissen, wie die "Alten" Programmierer unter euch das gelöst haben, mehr nicht. Vielleicht helft es auch anderen Einsteigern, wenn man hier seine persönlichen (aber nicht zu viel davon ;) )Erfahrugen teilt...

Ansonsten freue ich mich schon auf ein bisschen Feedback ;)
To go back to the drawing board is not everyone's cup of tea! :-)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

2

09.08.2007, 12:11

Also ganz rinzipiell würde ich dir raten mit einer fertigen Engine zu arbeiten.

Wozu das Rad neu erfinden.

Wenn du natürlich sagst, du willst lernen wie das alles funktioniert und was genau eine Engine macht, dann ist es vllt. durchasu sinnvoll eine eigene Engine zu schreiben.
Wenn du aber Spiele programmieren willst, dann ist eine fertige Engine denke ich ratsam.

Ob du jetzt unbedingt Ogre3D nehmen solltes ist eine andere Frage. Ogre3D ist mitunter sehr komplex.
Irrlicht ist dort sicherlich einsteigerfreundlicher.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

09.08.2007, 12:15

Die Frage die du die stellen solltest ist: Warum sollte ich alles selbst machen wenn es dochschon gute, funktionierende Lösungen gibt.

Wenn du mehr über die Techniken erfahren willst kann es durchaus Sinn machen sich ein kleines Projekt vorzunehmen und ein kleines Renderframework zu erstellen. Willst du aber ein Spiel programmieren dann macht es wenig Sinn sich mit sowas aufzuhalten. Auch im professionellen Bereich werden häufigst externe Bibliotheken hinzugezogen, nicht weil das Fachwissen fehlt sondern weil es unglaublich viel Zeit beansprucht so ein Framework auf dem neuesten Stand zu halten und zu warten.
@D13_Dreinig

Progater

Treue Seele

  • »Progater« ist der Autor dieses Themas

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

4

09.08.2007, 12:36

Viellen Dank für die schnellen Antworten, hatte ich echt nötig ;)

Zitat von »"David_pb"«

Die Frage die du die stellen solltest ist: Warum sollte ich alles selbst machen wenn es dochschon gute, funktionierende Lösungen gibt.

Im Prinzip war es auch meine Frage. Da am Ende des Buches vielle Tipps angegeben wurden, was die Programmierung eines Terrain, Octrees usw betrifft, dachte ich mir, es ist doch ratsam alles selber zu machen, um wirklich "alles" zu verstehen, wie es funktioniert. Mir geht es vor allem darum ein Spiel zu programmieren (war eigentlich immer so), deswegen entscheide ich mich dann für die fertige Engine.
Und was Irrlich angeht, ich glaube doch, dass ich OGRE nehme, ist ja auch eine Herausforderung, sonst wird's ja zu "leicht", wenn ihr versteht, was ich meine ;)
To go back to the drawing board is not everyone's cup of tea! :-)

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

09.08.2007, 12:40

das kann aber auch leicht nach hinten losgehen, ich kenne zwar deinen erfahrungsstand nicht, aber irrlicht ist sicherlich nicht zu leicht um sich in engines einzuarbeiten, eher genau richtig. ogre bietet dir im übrigen weder physik noch gui noch eingabe oder sonst irgendwas, es handelt sich lediglich um eine grafikbibliothek.

Progater

Treue Seele

  • »Progater« ist der Autor dieses Themas

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

6

09.08.2007, 12:56

Jop, das habe ich schon in der Ogre-Wiki gelesen, aber ich habe schon nach weiteren Bibliotheken gesucht (also für Physik, Sound) und auch welche gefunden...
Es ist klar, dass OGRE3D keine Game-Engine ist, aber entmutigen tut es nicht. Ich denke trotzdem über deinen Vorschlag nach und vergleiche mal die beiden Engines. Glaube aber nicht, dass ich meine Entscheidung ändern werde. Nach 3 Büchern, mehreren Tutorials und vielen Tipps, muss mein Wissensstand wirklich ausreichen, um diese Engine ins Angriff zu nehmen ;)

EDIT: Nur so nebenbei, hab' mir jetzt die Demos runtergeladen: GUI und Physikfeatures scheinen da zu sein, ansonsten gibt's ja ode. Sound und Input kann man auch selber programmiern...
To go back to the drawing board is not everyone's cup of tea! :-)

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

7

09.08.2007, 13:14

klar geht das, ich benutze auch ogre ;) wollte nur anmerken, dass das nicht mal eben so gemacht ist.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

8

09.08.2007, 14:21

Also ich rate dir, dass wenn du Zeit hast, du dir auf jeden Fall etwas selber schreiben solltest... Ich habs so gemacht und was man dabei lernt, ist wirklich gewaltig. Ich kenne ein paar die sich auch mit Spieleprogrammierung auseinander setzen und keiner von ihnen schreibt eine Engine selbst. Sie haben direkt mit einer OpenSource-Engine angefangen ein Spiel zu programmieren. Und ohne angeben zu wollen, aber bei was für (oftmals) banalsten Problemen die sich aufhängen (im übertragenen Sinn versteht sich ;)), das ist dann schon krass!
Also, wenn du selbst eine Engine schreibst, dann ist dein Wissensstand um Dekaden höher als jene die nur eine benutzen.
Und vor allem, wenn dich die Techniken interessieren, WIE etwas funktioniert, klar kannst du dir dann nur das ansehen, aber wenn du das ganze auch noch funktionsfähig ausprogrammierst ist das eine ganz andere Genugtuung.
Im Prinzip hängt diese Entscheidung von deinen persönlichen Prioritäten ab. Wie gesagt, ich hab mich für eine eigene Engine entschieden (vor 1,5 Jahren) und habs nie bereut. Es ist zwar zeitaufwändig, aber inzwischen hab ich nicht nur eine Grafik, Sound und Inputengine, sondern auch Netzwerk und Physik (letzere sind gerade "under construction").

Was natürlich auch klar ist, dass wenn du von mir aus, anfängst mit einer Engine, dass du sie nicht durchziehen musst. Also ich meine, wenn du nach einem halben Jahr sagst: "Gut, jetzt hab ich viel gelernt, ich will ein Spiel programmieren, aber nicht mit meiner Engine", dann war von mir aus gesehen, das halbe Jahr auch ziemlich rentabel, VOR ALLEM wenn du erst begonnen hast C++ zu programmieren. Dann ist er ganze "schlechte" Code in der Engine drinnen und wurde ausschließlich für Lernzwecke verwendet, und du beginnst mit einem sauberen Stil ein schönes OOP-Game ;)

Wie gesagt, du musst dich fragen was dir wichtiger ist:
Qualität (Wissen) oder Quantität (Geschwindigkeit)

Ist das gleiche als wenn man eine (einem noch unbekannte) Stadt besichtigt. Entweder du gehst schnurstraks zur Basilika und schaust sie dir genau an, oder du gehst systematisch die ganze Stadt ab. Ersterer ist schneller "fertig", kann aber nicht behaupten die Stadt zu kennen, zweiterer braucht entschieden länger, dafür kennt er die Stadt jetzt wirklich gut.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

9

09.08.2007, 15:45

für ein kleines spielchen à la breakout oder tetris kannst du auch direkt mit winapi/opengl etc arbeiten, ohne alles extra in alle möglichen klassen zu wrappen.

aber ansonsten kann ich panther nur zustimmen.
entweder technik ( homebrew engine ) oder gameplay ( vorhandene engine ) ^^
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Progater

Treue Seele

  • »Progater« ist der Autor dieses Themas

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

10

09.08.2007, 15:46

Genau über diese zwei Punkte habe ich mir Gedanken gemacht und auch dieses Forum zur Rate gezogen. Es ist natürlich schön, wenn man seinen Projekt fertig programmiert hat und kann dann stolz angeben, dabei seine eigene Engine benutzt zu haben.
Aber andererseits - wie es schon gesagt wurde - wieso sollte man das Rad neu erfinden? Für mich zählt auf jeden Fall die Zeit und ich glaube nicht, dass ich dieselben Probleme bekommen werde, wie die Leute, die du erwähnt hast, da ich jetzt nicht einfach so mit einer Open-Source-Engine anfange, sondern habe schon drei jahre lange Erfahrungen hinter mir ;)
Es bleibt auf jeden Fall noch viel zu lernen und eine Engine zu programmieren kann ich auch später ;)
To go back to the drawing board is not everyone's cup of tea! :-)

Werbeanzeige