Oskar - 3d engine

Oskar war eines der größten und ambitioniertesten Projekte in denen ich involviert war. Das Ziel des Projektes war die beste vorstellbare 3d Engine zu realisieren. Die Engine wurde über mehrere Neuanfänge und etliche Jahre entwickelt. Sie wurde zur Realisierung von verschiedenen Projekten eingesetzt.

Details

Die erste Inkarnation von Oskar wurde durch Torvald Riegel angestoßen. Im Gegensatz zu den meisten anderen 3d Engines sollte Oskar mit konkaven Polygonen umgehen, anstatt wie üblich mit Dreiecken. Torvald verließ das Projekt nach seinem Zivildienst, was mir die Möglichkeit gab Abstand zu gewinnen und das Projekt neu zu starten.

Chronik

Summer 1997 Torvald Riegel bat mich an dem Projekt mitzuwirken. Er hatte bereits eine Engine vom Umfang des Spieleklassikers Doom umgesetzt. Wir diskutierten damals die Details des Projektes in stundenlangen Telefongesprächen. Ich begann mit dem Design des graphischen Benutzerinterfaces, während Torvald sich um den Kern der Engine kümmerte.
4. Mar. 1998 Wir nahmen am 8. regionalen "Jugend Forscht" Wettbewerb in Dresden teil. Die Engine ermöglichte das rendern von einigen Bildern, die pixelakurate Schatten und unsere voll farbige Implementierung des Phong reflection model zeigten. Der Portal basierte Ansatz zusammen mit konkaven Polygonen funktionierte sehr gut. Nur der Algorithmus zum verrechnen von zwei konkaven Polygonen war sehr instabil und führte sehr häufig zu abstürzen. Dennoch gelang es mir das System so gut genug zu präsentieren um den 1. Platz und damit eine Delegierung in die nächste Runde zu erreichen.
27. Mar. 1998 Der Landeswettberwerb fand nur 3 Wochen nach dem Regionalwettbewerb statt. Torvald wurde zum Zivildienst eingezogen und ich versuchte die Engine Schritt für Schritt zu verbessern. Vielleicht versuchte ich es zu stark und war am Ende enttäuscht über die ausbleibenden Resultate. Jedenfalls war meine Präsentation nicht gut genug um diese Runde zu gewinnen.
Summer 1998 Nachdem Torvald seinen Zivildienst beendet hatte, verließ er das Projekt, gab mir aber die Erlaubnis es weiterzuführen. Ich versuchte noch einmal hartnäckig den Algorithmus für konkave Polygone stabil zu bekommen. Jedoch bereitete mein neuer Ansatz nur noch mehr Probleme und mich verließ allmählich die Geduld. Ich beendete schließlich meine Bemühungen und startete das Design für einen neuen Engine Kern "flexible object" (fo).
Summer 1999 Ich fragte alle meine Freunde, die bisher ein Interesse an 3d engines gezeigt hatten, ob wir unsere Bemühungen nicht im Oskar Projekt bündeln wollten. Wir (ben, cybx, ead, garz, micas, pdelix, victim, aprok) begannen die Arbeit aufzuteilen und starteten damit die 2. Ära des Oskar Projektes. Damals hatten wir noch keinerlei Versionierungssystem zur Hand, wodurch die Teamarbeit sehr erschwert wurde.
Sep. 2000 Ein Großteil der Team Mitglieder realisierte, dass dieses Projekt sie überfordert oder konnten einfach nicht genug Begeisterung aufbringen. Es wurde begonnen die einfachen Teile der Engine zusammenzufügen: Ein GUI System für Spiele, Resourcen Management, OpenGL Renderer. Um ein erreichbares Ziel zu haben, begannen wir das Netztank3 Projekt.
2.-4. Nov.
2001
Wir versuchten uns in der Demoscene mit der aTomy demo die auf der aktuellen Oskar engine aufbaute. Ich fügte eine effectSDK zur Engine hinzu. So wurde es für jeden möglich eigene Effekte zu implementieren. Jeder Effekt wurde für sich entwickelt und getestet, später sollte alles einfach zur kompletten Demo zusammengesetzt werden können. Damit wurde die Grundstein für alle späteren Demo Projekte geschaffen.
Dec. 2001 Alles war bereit um die Netztank 3 Spielkonzepte mit Oskar umzusetzen. Also taten wir genau das. Alles was fehlte, war ein brauchbare Oberfläche, wo der Nutzer Server finden und Statistiken betrachten kann. Fehlende Zeit und Interesse verhinderten diesen Schritt.
Nov. 2002 Ich begann mit neuen Ideen zu experimentieren, die den flexible objects Ansatz ablösen sollten. Der neue Ansatz wurde "global access" genannt und benutzte spezielle Strukturen um zur Laufzeit noch schneller auf Informationen über den Code zugreifen zu können. Diese Herangehensweise hatte den Vorteil, das die Engine komplett scriptbar wurde ohne das viel Aufwand vom Programmierer benötigt wurde.
Oct. 2003 Die dritte Inkarnation des Oskar Engine Projektes begann. Es baute auf dem "global access" Ansatz auf und setzte darauf die Basis für das Staxion Projekt so schnell wie möglich zu schaffen.