PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Freespace 2 SCP - Komplett neue Rendering Engine


DaBrain
2010-01-07, 23:21:38
Nach längerer Zeit mal wieder ein Posting zum Thema Freespace 2 SCP von mir.

http://www.hard-light.net/forums/index.php?topic=67374.0

Ich habe mich bei den SCP Programmierern für eine Überarbeitung der Rendering Engine eingetzt und eine ziemlich lange Feature (Wunsch-)Liste geschrieben.

Zu meiner Überraschung sind einige Programmierer wirklich darauf eingestiegen und wollen jetzt die komplette Rendering Engine neu schreiben(!)


Noch sind wir in der Konzeptphase. Einige neue Features, die unabhängig vom Rest der Rendering Engine sind, gibt es allerdings schon. Z.B. Post Processing, was Bloom, God Rays und viele andere Effekte ermöglicht.

Der Partikelsystem Code wird auch schon überarbeitet.

Ich hoffe, dass ich bald ein paar Screenshots posten kann.



Die SCP Programmierer hoffen während dieses aufwändigen Projektes noch einige neue Programmierer ins Team holen zu können.
Vornehmlich erfahrene Grafikprogrammierer werden für das Projekt noch gesucht.
Also meldet euch wenn ihr Interesse habt, oder jemanden kennt, der Spaß an der Grafikprogrammierung hat.



Zum Bloom gibt es übrigens schon ein paar nette Screenshots:

http://i97.photobucket.com/albums/l223/SpootKnight/FreeSpace/Valkyrie.png

http://i97.photobucket.com/albums/l223/SpootKnight/FreeSpace/Thoths.png
http://i97.photobucket.com/albums/l223/SpootKnight/FreeSpace/Orion2-1.png
http://i730.photobucket.com/albums/ww308/cindered/screen0006.jpg
http://i97.photobucket.com/albums/l223/SpootKnight/FreeSpace/Phylaki.png
http://i97.photobucket.com/albums/l223/SpootKnight/FreeSpace/WHY.png

DrFreaK666
2010-01-07, 23:46:04
Nice, aber wäre es nicht einfacher eine fertige Engine zu nehmen??

z.B. die Ogre3D-Engine

http://farm1.static.flickr.com/235/3264156246_6556cf1dde_o.jpg

DaBrain
2010-01-08, 07:23:50
Ogre3D ist im Moment auch im Gespräch. Allerdings haben sich einige Programmierer, die Ogre schon verwendet haben, dagegen ausgesprochen.


Von der Feature Liste und den Tools her würde ich sagen, dass Ogre eine zeimlich runde Sache ist.
Aber ich muss die Engine ja nicht ins Spiel einbauen. Ich überlasse die Diskussion lieber den Programmierern, die mehr Ahnung davon haben.

Achja, lizenztechnisch sollte es für uns möglich sein Ogre zu benutzen.

RavenTS
2010-01-08, 09:51:19
Stimmt schon, so langsam kommt die gute alte FS2-Engine trotz aller Mühe hinsichtlich Texturen und Modellen in die Jahre, aber ne komplett neue Engine zu bauen hieße das nicht auch, daß die komplette FS2-Basis wegfiele und damit alles typische für all die ganzen Sachen drumherum?

FS war ja immer recht komplex von der Steuerung und den Anzeigen her, das wäre doch eine riesige Arbeit das noch einmal komplett von vorne aufzubauen und würde einige Jahre dauern...

DaBrain
2010-01-08, 16:14:45
Es soll nicht die komplette Engine neu geschrieben werden. Nur die teilweise extrem veraltete Grafik Engine.

Es wird sicherlich nicht ganz einfach, aber am Ende soll dich Freespace 2 immer noch genau so spielen, wie in der Ursprungsversion.

Erstmal geht es auch nicht unbedingt darum, die Grafik aufzuwerten. Es soll nur eine Grundlage geschaffen werden, auf die Programmierer aufbauen können um eigene Features einzubauen.
(Dabei sollen Features wie 'deferred lighting/shading' und 'object-based motionblur' im Hinterkopf behalten werden.


Ich lege auch sehr stark wert darauf, dass es Grafikern leichter gemacht wird ihre Assets ins Spiel zu bringen.
Es ist derzeit nicht so einfach z.B. rotierende Teile an Modelle anzubrigen. Effekte (sogar Partikel) funktionieren derzeit nur mit Frames, was eine Menge Speicher frisst.

FS2 könnte viel besser laufen, wenn es möglich wäre Effekte mit einfacheren Mittel umzusetzen.

Demirug
2010-01-08, 21:56:36
Abonniertes Vorhaben. Da ich das ganze schon hinter mir habe kann ich euch sagen das Änderungen an der Grafikengine die auch was bringen sollen meist einen Ratenschwanz an Änderungen in anderen Modulen nach sich ziehen. Von Toolchain ganz zu schweigen.

Effekte sind auch eine lustige Sache. Ich glaube der Effektframework ist bei uns ähnlich umfangreich wie die Core Renderengine. Die Artist hatten dann aber immer noch genügend Ideen um in nochmal so groß zu machen.

frix
2010-01-08, 22:08:24
Demirug wär doch gut für euer team ;)

Demirug
2010-01-08, 22:19:54
Falsches API.

Freespace 2 SCP nutzt OpenGL. Das tue ich mir nicht mehr freiwillig an nachdem das ARB/khronos ihre Unfähigkeit gezeigt haben die API endlich zu modernisieren.

StefanV
2010-01-09, 02:11:00
Bei D3D11 wärst aber sicher dabei, oder? ;)

Armaq
2010-01-09, 03:29:07
Gut ist, wenn er helfen kann. F2 ist ja wohl eines der Spiele überhaupt.

Demirug
2010-01-09, 11:11:44
Bei D3D11 wärst aber sicher dabei, oder? ;)

Die Frage stellt sich doch gar nicht. Das Team hat weder die Absicht wieder zum multi-API Support zurück zukehren noch völlig auf D3D umzuschwenken. Als nicht kommerzielles Produkt besteht da ja auch nicht der Zwang es „richtig“ zu machen. Bitte nicht falsch erstehen richtig bedeutet nicht dass man nur Direct3D benutzten kann. Richtig bedeutet das man die 3D API als das sieht was sie ist. Eine System API die auf dem untersten Layer einer Engine abstrahiert werden muss und dann für jede Zielplattform dann die richtige 3D API verwendet. Auch wenn das einige nicht gerne hören aber unter Windows, wo man im Gegensatz zu den meisten Plattformen eine Wahl hat, kann man heute nur noch OpenGL nutzen wenn man entweder keine hohen Ansprüche hat oder man sich sicher sein kann das den IHVs das Projekt so wichtig ist das sie die Treiber gerade ziehen. Ansonsten quält man sich nur mit den ganzen Grenzfällen ab bei denen die unterschiedlichen Treiberteams die Spec abweichend interpretiert haben.

MD_Enigma
2010-01-09, 13:51:43
Boa - Freespace. Das ruft Erinnerungen an zwei extrem geile Spiele hervor. Mit 3D-Engine Programmierung kenn ich mich zwar überhaupt nicht aus, aber wenn ihr ISP-Dienstleistungen braucht, helf ich gern so gut ich kann :)

DaBrain
2010-01-09, 16:14:05
Falsches API.

Freespace 2 SCP nutzt OpenGL. Das tue ich mir nicht mehr freiwillig an nachdem das ARB/khronos ihre Unfähigkeit gezeigt haben die API endlich zu modernisieren.


Ich dachte das ist jetzt mit OpenGL 3.2 endlich besser geworden.
Das ganze deprecated Zeug sollte doch jetzt raus sein, sonlange man nicht das Compability Profil benutzt.


Die Frage stellt sich doch gar nicht. Das Team hat weder die Absicht wieder zum multi-API Support zurück zukehren noch völlig auf D3D umzuschwenken.

OpenGL hat sich bei dem Projekt schlussendlich durchgesetzt, weil die Engine sich langsam in Richtung Cross-platform entwickelt hat.


Richtig bedeutet das man die 3D API als das sieht was sie ist. Eine System API die auf dem untersten Layer einer Engine abstrahiert werden muss und dann für jede Zielplattform dann die richtige 3D API verwendet..

Das ist ein Punkt der noch gar nicht besprochen wurde...
Mit dem alten rendering Code wäre das undenkbar gewesen. Jetzt wo der Code neue geschrieben wird, ist es sicherlich eine Überlegung wert.

Ich würde mich auch über DX11 Support freuen.
Allerdings stellen sich dann einige neue Fragen.
Wenn wir jetzt z.B. für alle Texturen die neuen Kompressionsverfahren (also BC statt DXT) verwenden, was passiert dann wenn das Spiel auf einem Mac oder Linux Rechner laufen soll?

Muss man den Content dann doppelt zur Verfügung stellen?




Boa - Freespace. Das ruft Erinnerungen an zwei extrem geile Spiele hervor. Mit 3D-Engine Programmierung kenn ich mich zwar überhaupt nicht aus, aber wenn ihr ISP-Dienstleistungen braucht, helf ich gern so gut ich kann :)


Danke für das Angebot! :)
Ich gebe das mal weiter. Soweit ich weiß ist aber im Moment in dem Bereich für alles gesorgt.

Demirug
2010-01-09, 16:44:57
Ich dachte das ist jetzt mit OpenGL 3.2 endlich besser geworden.
Das ganze deprecated Zeug sollte doch jetzt raus sein, sonlange man nicht das Compability Profil benutzt.

Das “deprecated” Zeug war nie wirklich das Problem. Das hat man auch vorher halt einfach nicht benutzt. Die Probleme sind das man all die Dinge die man mit 3.0 eigentlich ändern wollte nicht geändert hat und noch so einiges anderes was einfach nicht mehr zur Arbeitsweise von modernen GPUs passt.

Das ist ein Punkt der noch gar nicht besprochen wurde...
Mit dem alten rendering Code wäre das undenkbar gewesen. Jetzt wo der Code neue geschrieben wird, ist es sicherlich eine Überlegung wert.

Das sollte man aber nur angehen wenn man vor dem zusätzlichen Planungsaufwand im Vorfeld nicht zurückschreckt. Gerade bei nicht kommerziellen Projekten entstehen da oft „demokratische“ Probleme weil jeder mitreden will und es so zu keinen Entscheidungen kommt.

Ich würde mich auch über DX11 Support freuen.
Allerdings stellen sich dann einige neue Fragen.
Wenn wir jetzt z.B. für alle Texturen die neuen Kompressionsverfahren (also BC statt DXT) verwenden, was passiert dann wenn das Spiel auf einem Mac oder Linux Rechner laufen soll?

Muss man den Content dann doppelt zur Verfügung stellen?

Nein, zum einen stehen die zusätzlichen Verfahren über Extensions auch unter OpenGL zur Verfügung. Zum anderen kann man im Notfall immer noch beim laden rekodieren.

DaBrain
2010-01-09, 17:02:25
Das sollte man aber nur angehen wenn man vor dem zusätzlichen Planungsaufwand im Vorfeld nicht zurückschreckt. Gerade bei nicht kommerziellen Projekten entstehen da oft „demokratische“ Probleme weil jeder mitreden will und es so zu keinen Entscheidungen kommt.


Wärst du denn bereit zum Anfang der Planung generell ein bisschen Input zu geben?
Ich bin da leider nicht ganz der richtige Ansprechpartner für, aber einige SCP Programmierer schauen sich den Thread hier schon an.
Jemand der schon Erfahrung in genau diesem Thema hat, sicherlich mit ein paar guten Überlegungen die Entwicklungszeit erheblich verkürzen, bzw. vermeiden, dass einige Dinge am Ende nochmal über den Haufen geworfen werden müssen.



Nein, zum einen stehen die zusätzlichen Verfahren über Extensions auch unter OpenGL zur Verfügung. Zum anderen kann man im Notfall immer noch beim laden rekodieren.

Oh, danke für die Info. Ich hatte schonmal probiert rauszubekommen ob die neuen Verfahren auch unter OpenGL nutzbar sind, aber nichts gefunden.

Demirug
2010-01-09, 17:38:53
Wärst du denn bereit zum Anfang der Planung generell ein bisschen Input zu geben?
Ich bin da leider nicht ganz der richtige Ansprechpartner für, aber einige SCP Programmierer schauen sich den Thread hier schon an.
Jemand der schon Erfahrung in genau diesem Thema hat, sicherlich mit ein paar guten Überlegungen die Entwicklungszeit erheblich verkürzen, bzw. vermeiden, dass einige Dinge am Ende nochmal über den Haufen geworfen werden müssen.

Man kann mich gerne kontaktieren. Ich garantiere aber nicht dafür dass meine Antworten immer gefallen.

Oh, danke für die Info. Ich hatte schonmal probiert rauszubekommen ob die neuen Verfahren auch unter OpenGL nutzbar sind, aber nichts gefunden.

BC1 entspricht DXT1/2
BC2 entspricht DXT3/4
BC3 entspricht DXT5
BC4 und 5 sind durch ARB_texture_compression_rgtc abgedeckt.
6 und 7 gibt es offiziell noch nicht. Du kannst aber davon ausgehen das sobald nvidia DX11 Hardware hat auch eine entsprechenden Extension veröffentlich wird.

e.v.o
2010-01-09, 20:45:05
Herzlichen Glückwunsch und tolle Arbeit.

Ich hoffe das da ein tolles Projekt draus entsteht.

ps: Ja kein Orge3D verwenden. Ziemlicher Crap.

randy
2010-01-09, 20:56:16
ps: Ja kein Orge3D verwenden. Ziemlicher Crap.


ziemlich fundierte aussage :freak:

Nighthawk13
2010-01-10, 13:47:42
ps: Ja kein Orge3D verwenden. Ziemlicher Crap.

Torchlight hat Ogre3D verwendet und das sieht imo ziemlich gut aus und läuft auch rund:
http://www.ogre3d.org/forums/viewtopic.php?f=11&t=49496
Allerdings haben sie nur fixed function verwendet. Hut ab vor den Artists!

@DaBrain: Viel Erfolg mit eurem Projekt.

DaBrain
2010-01-10, 19:36:00
Es kommt warhscheinlich darauf an, wofür man Ogre einsetzen will.

Da ich jetzt schon ein paar mal gehört habe, dass sich Ogre nicht so gut dafür anbietet, die Rendering Engine eines bestehenden Spiels zu ersetzen, denke ich mal, dass das stimmt.

Andererseits denke ich nicht, dass Ogre kompletter Mist sein kann, wenn einige Ex-Blizzard Mitarbeiter ein komplettes Spiel und sogar ein komplettes MMO darauf aufbauen.
Kommt halt immer darauf an was man machen will.

D3D+OpenGL+Fixed-Function (keine Shader) = Maximale Kompatibilität

Runic hat sogar einen Netnbook Mode eingebaut.
Ich denke damit ist wohin sie mit der Engine gerne wollten.


Mit Ogre gearbeitet habe ich noch nicht, also kann ich nur Vermutungen anstellen.


@DaBrain: Viel Erfolg mit eurem Projekt.

Danke. :)
Es ist ein bisschen schade, dass ich selber nicht direkt daran mitarbeiten kann.
Ich werde mich nur um anfallende Grafikerarbeiten kümmern, die Interessen der Grafiker vertreten und wenn Tools an der Reihe sind, bei der Usability mithelfen/designen.

dust
2010-01-11, 09:40:07
http://www.openscenegraph.org

schaut euch das mal an...

Demirug
2010-01-11, 12:33:59
Von klassischen Scenegraphen hat man sich bei den Game-Renderengines eigentlich verabschiedet. Die Idee dahinter passt einfach nicht mehr so gut zu modernen GPUs.

dust
2010-01-11, 13:41:52
gerade bei open source spielen nicht, im gegenteil...

Demirug
2010-01-11, 19:08:11
gerade bei open source spielen nicht, im gegenteil...

Mag sein. Da bin ich nicht auf dem Laufenden. Finde es allerdings etwas bedenklich wenn man da technologisch so weit hinterherhinkt.

dust
2010-01-11, 21:00:47
Mag sein. Da bin ich nicht auf dem Laufenden. Finde es allerdings etwas bedenklich wenn man da technologisch so weit hinterherhinkt.
wo seid ihr technologisch voraus?

Demirug
2010-01-11, 21:19:23
Das war auf kommerzielle Spieleengines und Scenegraphen bezogen. Die benutzt dort niemand mehr weil sie sich als völlig ineffektiv herausgestellt haben. Das Ganze ist ein Relikt aus den Zeiten als man noch jedes Dreieck einzeln zum rendern übergeben hat. Dass man bei Spielen davon die Finger lassen wird schon seit 10 Jahren gepredigt. Also seit es GPUs mit eigenem Geometrieanteil gibt.

dust
2010-01-11, 21:28:58
Das war auf kommerzielle Spieleengines und Scenegraphen bezogen. Die benutzt dort niemand mehr weil sie sich als völlig ineffektiv herausgestellt haben. Das Ganze ist ein Relikt aus den Zeiten als man noch jedes Dreieck einzeln zum rendern übergeben hat. Dass man bei Spielen davon die Finger lassen wird schon seit 10 Jahren gepredigt. Also seit es GPUs mit eigenem Geometrieanteil gibt.
and warum soll bei einem scenegraph die gpu nicht voll ausgenützt werden mit geometrieberechnung?

DaBrain
2010-02-06, 10:43:48
Die Arbeit hat begonnen!

Für alle, die es interessiert, oder die vielleicht sogar helfen wollen, gibt es jetzt ein Unterforum auf HLP.
http://www.hard-light.net/forums/index.php?board=189.0

Ratschläge werden gerne angenommen. :)


Soweit ich weiß, gibt es leider noch nichts zu zeigen. Es wird sicherlich noch eine ganze Weile dauern, bis es die ersten Bilder von einzelnen Änderungen zu sehen gibt.