PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieviele Mannjahre stecken in einer modernen 3d-Engine?


Gast
2007-08-11, 07:05:46
Wenn wir einen guten Programmierer haben und der eine 3d Engine, wie z.B.
die Doom 3 Engine oder Unreal Engine 3, entwickeln müßte,
wieviele Jahre bräuchte er dann, wenn er die Engine alleine schreiben muß?

Trap
2007-08-11, 12:25:44
Moderne Engines haben 300 KLOC, wenn man großzügig 100 LOC am Tag und 365 Arbeitstage annimmt: über 8 Jahre

Realistischer sind wohl 40+...

Spasstiger
2007-08-11, 12:36:59
Das Grundgerüst des Doom-3-Renderers will John Carmack alleine innerhalb von einem Monat geschrieben haben. Allerdings konnte er auch auf seine alten Engines zurückgreifen und hatte sicherlich viele Ideen im Kopf rumschwirren.
Und fehlerfrei war sein Werk dann sich auch noch nicht.

sth
2007-08-11, 12:58:28
Das ist auch komplett unterschiedlich. Ein Monstrum wie die Unreal-Engine ist natürlich riesig und über viele Jahre gewachsen. Die Quake(1-3)-Engines waren dagegen recht kompakt, zumal man auch noch vorher klarstellen sollte, ob nur die reine Engine oder auch der Gamecode des jeweiligen Spiels zählt. Die reine Engine ist oft gar nicht sooo groß.

Bei guter Planung ist es schon möglich, soetwas selbst zu schreiben, solange man sich auf vorhandenen Bibliotheken (DirectX oder auch SDL/OpenGL/OpenAL etc.) stützt. Man sollte halt nicht erwarten, dass am Ende die Unreal3-Engine dabei rauskommt.

Monger
2007-08-11, 13:03:45
Was genau bezeichnest du denn als Engine?

Die EXE an sich, die nur alle Daten zusammenzieht und in einen Topf wirft, ist wohl nicht so extrem aufwändig. Meinem Verständnis nach ist die eigentliche Engine nur das, was von außen Daten einliest, interpretiert und verarbeitet. Da kann das mit den drei Monaten von Carmack schon hinhauen.
Der Editor ist imho viel wichtiger, und da steckt wohl wirklich eine Menge Arbeit drin. Dazu kommen noch die ganzen "Plugins", wie z.B. Wegefindung o.ä. , denn ich gehe mal davon aus, dass die Engine nur die Anweisung bekommt: "Bewege Objekt X in Richtung xyz mit Geschwindigkeit c", und vielleicht noch ne Kollisionsabfrage macht, dass aber die Wegeberechnung über eine ganz eigene Bibliothek passiert.

Mad-Marty
2007-08-19, 11:43:39
Das ist auch komplett unterschiedlich. Ein Monstrum wie die Unreal-Engine ist natürlich riesig und über viele Jahre gewachsen. Die Quake(1-3)-Engines waren dagegen recht kompakt, zumal man auch noch vorher klarstellen sollte, ob nur die reine Engine oder auch der Gamecode des jeweiligen Spiels zählt. Die reine Engine ist oft gar nicht sooo groß.

Bei guter Planung ist es schon möglich, soetwas selbst zu schreiben, solange man sich auf vorhandenen Bibliotheken (DirectX oder auch SDL/OpenGL/OpenAL etc.) stützt. Man sollte halt nicht erwarten, dass am Ende die Unreal3-Engine dabei rauskommt.


ACK

auch wenn die engine selbst bei unreal auch nicht viel grösser ist.

Editoren, Tools, KI etc gehört schonmal alles nicht zur 3d engine.

Das Grundgerüst ist schätz ich mal in 5 Monaten für erfahrene Programmierer zu bewerkstelligen. Dazu dann nochmal 10 Monate feinschliff und Bugfixing. Dann noch 5 Monate Designapassungen für die KI usw schnittstellen.

Ist ja eher so das man immer wieder in bestehenden Teilen was anpassen muss, ergo sollte man da überhaupt nicht mit LOC rechnen. Wenn du heute 200 LOC schreibst, kann es sein das du in 2 Monaten 100 davon änderst.

Piffan
2007-08-19, 12:12:45
Richtig, man sollte erstmal definieren, was mit "Engine" gemeint ist. Die zentrale Logik (.exe) oder das Gesamtpaket an Tools, dlls etc., das später vermarktet wird.

viking
2007-08-19, 12:30:50
Weite Frage, die nicht direkt dazu gehört:

Nehmen wir die Spielereihe Myst ausgenommen von den echtzeit Berechneten Teilen wie zum Beispiel Uru.

Kann man dies eigentlich (in diesem Falle) auch als Engine bezeichnen oder sind das nur aneinander gereihte Bildchen?

Mad-Marty
2007-08-19, 12:48:47
Weite Frage, die nicht direkt dazu gehört:

Nehmen wir die Spielereihe Myst ausgenommen von den echtzeit Berechneten Teilen wie zum Beispiel Uru.

Kann man dies eigentlich (in diesem Falle) auch als Engine bezeichnen oder sind das nur aneinander gereihte Bildchen?


Nun, das ist auch eine Spiel-engine, wenn auch keine 3D Engine.

Immerhin müssen die Render Backgrounds ja noch mit interaktiven objekten z.b. Char, items etc ge-blittet werden.

Der Controlinput muss verarbeitet werden, und eine art vordefinierter Quest-Logik überprüft werden. Sound darf auch nicht fehlen.

Natürlich ist ein Point n Click Adventure wesentlich unanfälliger für Bugs wie eine 3D Engine, das bedeutet aber noch lange nicht das es nicht auch jede menge arbeit macht.

Der Einstieg geht relativ schnell bei sowas und es ist problemlos mit z.B. PyGame möglich etwas zu erreichen.

Grey
2007-08-19, 14:44:49
Dafür muss man bei derlei Spielen wieder bedenken, dass Hires-CGI ganz andere Zeiten in der Erstellung und im Rendering brauchen.

Bunker
2007-08-20, 04:46:28
zur klaerung was eine 3d-engine ist:

wir sind uns hier recht einig, dass eine 3d-engine etwas non-interaktives live gerendertes ist ala moderner coder demos oder die diversen physik und effekt demos fuer raytracing und wasser bzw. fluessigkeits effekte.

spiele-engines benutzen 3d-engines lediglich und sind daher in meinen augen eher eine art frontend als das backend( die 3d-engine)


nach dieser klaerung wuerde ich sagen, dass es schon einige jahre in realer forschung und dann digitaler entwicklung/umsetzung sind wie man an dem oben genanntem raytracing sieht, bei dem die computer-technischen leistung bisher nicht leistungstark genug war um es zu einem hohen bzw effektiven grade zu nutzen

micki
2007-08-20, 10:20:46
wir sind uns hier recht einig, dass eine 3d-engine etwas non-interaktives live gerendertes ist ala moderner coder demos oder die diversen physik und effekt demos fuer raytracing und wasser bzw. fluessigkeits effekte.nein, das ist nur eine render engine, ala ogre3d.

spiele-engines benutzen 3d-engines lediglich und sind daher in meinen augen eher eine art frontend als das backend( die 3d-engine)eine 3d engine ist eine spezialisierte spielengine. gibt ja auch 2d-engines die spielengines sind und auch nur text-engine als spieleengines.

eine komplette 3d engine ist alles was man benoetigt um ein spiel zu machen, sodass man theoretisch einfach nur die engine z.b. auf eine konsole portieren muesste und ohne game/client-code aenderung wuerde das spiel laufen... theoretisch.
in der realitaet muss man oft input- usw. anpassungen z.b. weil es auf konsole keinen mauscursor auf der gui gibt.

Bunker
2007-08-27, 16:35:35
nein, das ist nur eine render engine, ala ogre3d.

eine 3d engine ist eine spezialisierte spielengine. gibt ja auch 2d-engines die spielengines sind und auch nur text-engine als spieleengines.

eine komplette 3d engine ist alles was man benoetigt um ein spiel zu machen, sodass man theoretisch einfach nur die engine z.b. auf eine konsole portieren muesste und ohne game/client-code aenderung wuerde das spiel laufen... theoretisch.
in der realitaet muss man oft input- usw. anpassungen z.b. weil es auf konsole keinen mauscursor auf der gui gibt.

mmh klingt auch einleuchtend.
aber ich glaub konsolen portierung sind nur zur xbox360 recht simple, da in ihr eine "regulaere desktop" cpu steckt, bei PS2/3 koennte, das schwierig sein zumindest wenn ich mich nicht irre ;D

aber mal on topic mit mickis erlaeuterung kann ich als 3d-engine beschreibung leben und somit waere auch geklaert, dass es schon einiges dauert bis son eine enging fertig ist( siehe q3 wurde schliesslich seid q1 entwickelt :d )

micki
2007-08-27, 16:45:19
mmh klingt auch einleuchtend.
aber ich glaub konsolen portierung sind nur zur xbox360 recht simple, da in ihr eine "regulaere desktop" cpu steckt, bei PS2/3 koennte, das schwierig sein zumindest wenn ich mich nicht irre ;Ddas wuerde von der toolchain abhaengen, ob die das zeug compilieren kann sodass es ohne probleme laeuft... beim cell und besonders den spus ist das bisher nicht moeglich. auf den wii hingegen koennte es so gehen, wobei es bisher keine engine gibt die sowas erlaubt, jedenfalls keine die man kaufen kann.


aber mal on topic mit mickis erlaeuterung kann ich als 3d-engine beschreibung leben und somit waere auch geklaert, dass es schon einiges dauert bis son eine enging fertig ist( siehe q3 wurde schliesslich seid q1 entwickelt :d )
ich denke eine engine wie von UT wird von ca 10leuten entwickelt, ca 3jahre wuerd ich schaetzen, also ca 30Mannjahre :)
wobei man sicherlich viel kuerzer etwas einfahreres hinbekommt. in ca 18monate sollte ein einziger programmierer ne engine machen koennen mit dem man nen 08/15 shooter machen kann, wenn er das meiste selbst schreibt. wenn man vieles fertig nutzt, bekommt man das sicher auch in 1 bis 3 monaten zusammengesteckt.

Gast
2007-08-27, 17:23:43
mmh klingt auch einleuchtend.
aber ich glaub konsolen portierung sind nur zur xbox360 recht simple, da in ihr eine "regulaere desktop" cpu steckt, bei PS2/3 koennte, das schwierig sein zumindest wenn ich mich nicht irre ;D



auch die XBOX360-cpu hat nicht viel mit pc-cpus gemeinsam, lediglich die erste XBOX hatte einen stinknomalen Pentium3.

Coda
2007-08-27, 22:07:49
Cell ist trotzdem fieser, weil es kein normales SMP ist.

Bunker
2007-08-27, 23:03:27
auch die XBOX360-cpu hat nicht viel mit pc-cpus gemeinsam, lediglich die erste XBOX hatte einen stinknomalen Pentium3.
naja in ihr steck ein auf IBMs powerpc basierende CPU, dass ist ein meine augen schon recht nahe an einem desktop cpu oda sind apples ... macs ... keine desktops? :biggrin:

gut die cpu wird eher in server und grossrechnern benutzt ... still close enought

Coda
2007-08-27, 23:09:40
Die CPU die in der Xbox 360 steckt wird garantiert nicht in Servern oder Großrechnern benützt ;)

Bunker
2007-08-27, 23:16:04
Die CPU die in der Xbox 360 steckt wird garantiert nicht in Servern oder Großrechnern benützt ;)

manno -rum zick- so meinte ich das ja auch nicht :weg:

tokugawa
2007-08-28, 02:34:15
Also, um auf den Unterschied zu einer "Render-Engine" wie Ogre3D einzugehen:
Ich zähle "3D-Engines" zu den Render-Engines, also nicht zu den Spiele-Engines.

Eine Spiele-Engine ist für mich z.B. 3D-Engine (der "Grafikteil") + Sound-Engine + eventuelle andere Middleware. Das würde ich dann als "3D-Spiele-Engine", nicht als "3D-Engine" bezeichnen (kleiner feiner Unterschied!).

Eine moderne 3D-Render-Engine oder auch Spiele-Engine an sich ist eigentlich nicht so aufwändig. Erschwerend sind eher Faktoren wie Portabilität (auf mehere Plattformen) sowie eine Artist-gerechte Content Pipeline.

Ich habe für ein EU-Forschungsprojekt des 6. Rahmenprogramms (FP6) bei dem es um Rendereffekte für Spiele geht ein Demospiel geschrieben, das eine moderne First-Person-Shooter-Engine umfaßt inklusive Editor und Content Pipeline, zusammen mit einem Studienkollegen (also 2 Programmierer und ungefähr 1.75 Artists...).

Es geht also schon. Klar ist die Engine spezifisch auf das Spiel angepasst, und würde im Vergleich zu lizensierbaren 3D Spiele-Engines wohl mehr Einarbeitungszeit erfordern um damit z.B. andere Spieletypen zu implementieren. Außerdem haben wir "nur" Render-Engine, Sound-Engine sowie Gameplay entwickelt - die Physik/Kollision haben wir uns relativ einfach gemacht indem wir Ageia PhysX verwenden (die Softwareversion natürlich da keiner von uns eine PhysX-Karte besitzt - theoretisch würd unser Spiel allerdings auch die Karten unterstützen).

Ich will diese Engine jetzt nicht mit den Top-Engines der Welt vergleichen, aber man kann sie trotzdem als durchaus "modern" (zumindest im akademisch-wissenschaftlichen Sinne) was aktuelle State-of-the-Art-Technologien angeht, bezeichnen. In Sachen Gameplay oder künstlerischem Content/Gameplay wohl weniger, aber das war ja auch nicht der Sinn der Sache :)

Gast
2007-08-28, 09:52:52
Also, um auf den Unterschied zu einer "Render-Engine" wie Ogre3D einzugehen:
Ich zähle "3D-Engines" zu den Render-Engines, also nicht zu den Spiele-Engines.

Eine Spiele-Engine ist für mich z.B. 3D-Engine (der "Grafikteil") + Sound-Engine + eventuelle andere Middleware. Das würde ich dann als "3D-Spiele-Engine", nicht als "3D-Engine" bezeichnen (kleiner feiner Unterschied!).

Eine moderne 3D-Render-Engine oder auch Spiele-Engine an sich ist eigentlich nicht so aufwändig. Erschwerend sind eher Faktoren wie Portabilität (auf mehere Plattformen) sowie eine Artist-gerechte Content Pipeline.

Ich habe für ein EU-Forschungsprojekt des 6. Rahmenprogramms (FP6) bei dem es um Rendereffekte für Spiele geht ein Demospiel geschrieben, das eine moderne First-Person-Shooter-Engine umfaßt inklusive Editor und Content Pipeline, zusammen mit einem Studienkollegen (also 2 Programmierer und ungefähr 1.75 Artists...).

Es geht also schon. Klar ist die Engine spezifisch auf das Spiel angepasst, und würde im Vergleich zu lizensierbaren 3D Spiele-Engines wohl mehr Einarbeitungszeit erfordern um damit z.B. andere Spieletypen zu implementieren. Außerdem haben wir "nur" Render-Engine, Sound-Engine sowie Gameplay entwickelt - die Physik/Kollision haben wir uns relativ einfach gemacht indem wir Ageia PhysX verwenden (die Softwareversion natürlich da keiner von uns eine PhysX-Karte besitzt - theoretisch würd unser Spiel allerdings auch die Karten unterstützen).

Ich will diese Engine jetzt nicht mit den Top-Engines der Welt vergleichen, aber man kann sie trotzdem als durchaus "modern" (zumindest im akademisch-wissenschaftlichen Sinne) was aktuelle State-of-the-Art-Technologien angeht, bezeichnen. In Sachen Gameplay oder künstlerischem Content/Gameplay wohl weniger, aber das war ja auch nicht der Sinn der Sache :)


Hast du Demos oder Screenshots?

tokugawa
2007-08-30, 00:15:13
Hast du Demos oder Screenshots?

Irgendwo im Forum gibt's Screenshots die ein paar Monate alt sind die vor allem den Reflexions/Refraktionseffekt zeigen. Ansonsten sollte die Demo bald online sein auf www.gametools.org

Das Spiel wurde ja auch auf der GC Developer's Conference gezeigt beim Vortrag über das Gametools-Projekt.

Botcruscher
2007-08-30, 00:22:01
Die CPU die in der Xbox 360 steckt wird garantiert nicht in Servern oder Großrechnern benützt ;)


Wobei sich die Frage stellt welcher BWLer auf die Idee gekommen ist das Ding in eine Spielconsole zu packen.:|

Coda
2007-08-30, 02:43:42
Microsoft wollte den Kern in Eigenregie herstellern, deshalb mussten sie die IP kaufen. IBM hat vielleicht nicht mit Power 6 rausgerückt ;)

Zudem ist die maximale Leistung für die Die-Größe sehr gut, auch wenn die Arbeit auf die Entwickler abgewälzt wird.

=Floi=
2007-08-30, 04:36:47
aber ein C2D oder C2Q uu mit HT wäre auch für die box günstiger und der support einfacher. Ausgerechnet MS baut da ein eigenes system auf, wenn auch ein geschlossenes win mit DX9/10 möglich gewesen wäre.

ESAD
2007-08-30, 10:42:46
Microsoft hat leute die sich mit Schaltungsdesign auskennen? oder wurde das an fremdfirmen weitergegeben?

Aquaschaf
2007-08-30, 11:04:52
aber ein C2D oder C2Q uu mit HT wäre auch für die box günstiger und der support einfacher. Ausgerechnet MS baut da ein eigenes system auf, wenn auch ein geschlossenes win mit DX9/10 möglich gewesen wäre.

Wie gesagt, sie wollten den Kern selbst herstellen. Und Intel wird das IP für den C2D kaum verkaufen.

Coda
2007-08-30, 14:25:03
Microsoft hat leute die sich mit Schaltungsdesign auskennen? oder wurde das an fremdfirmen weitergegeben?
IBM hat die Prozessoren für alle drei derzeitigen Konsolen entworfen.