Oskar - 3d engine

Oskar was one of the biggest and most ambitious project I was involved in. It's aim was to become nothing more than the best 3d engine imaginable. The Oskar engine was deloped in several incarnations over many years. It was used in some of our game and demoscene projects.


The first incarnation of Oskar was initiated by Torvald Riegel. What set this project apart from other 3d engines, was usage of concave polygons instead of common triangles. Torvald left the project after his civil service, what gave me the opportunity reflect over it and finally started over the project. The engine was kept extremely flexible and formed the foundation of netztank3 and several demo projects.


Summer 1997 Torvald Riegel asked me to join a new project, after we solved texture mapping vector equations. He had finished a doom clone 3d engine already. We started to phone each other for hours and discussed all the details. I began designing a graphical user interface, while Torvald designed and implemented the 3d engine core.
4. Mar. 1998 We joined the 8th regional "Jugend Forscht" competition of Dresden. The engine was capable of rendering some images that showed pixel exact shadowing and fully colored Phong reflection model. The implementation of the portal rendering worked out very well, but the concave polygon algorithm was not really stable and crashed more often than not. I managed to present the system good enough to finish with the first price and therfore being delegated to the next round.
27. Mar. 1998 The state competition took place only three weeks after the regional competition. Torvald got his Zivildienst, so I tried my best to improved the engine bit by bit. Maybe I tried to much and was finally disappointed by the results. My presentation was not good enough to win this competition.
Summer 1998 After Torvald finished his civil service, he abandoned the project and gave me permission to continue it. I started to try even harder to fix the concave polygon cut algorithm. Unfortunately I ran into even more trouble than with the first implementation and got frustrated. I stopped for a while and began to design "flexible object" (fo).
Summer 1999 I asked all my friend who have interest in 3d engines to join forces. We (ben, cybx, ead, garz, micas, pdelix, victim, aprok) began to split work and thereby launched the 2nd era of the Oskar project. At this time we had no versioning system at our hands, therefore the teamwork was quite hard.
Sep. 2000 Many team member realized the project was too big or they simply had not enough devotion to the project. The basic engine parts started to come together: a simple in game GUI system, resource management, OpenGL rendering. To get a manageable goal, we started the Netztank3 project.
2.-4. Nov.
We tried to realize the aTomy demo with the current Oskar engine. I added an effectSDK to the engine, to enable everyone to write simple effects. Every effect was tested on its own and later everything should be easily composed to a full demo. This built the foundation for all the later demo projects.
Dec. 2001 Everything was ready to implement the Netztank3 game play plans with Oskar. So we did just that. All that was missing, was a decent interface, where a user can browse servers and view statistics. Lack of time and interest prevented this step to happen.
Nov. 2002 I started to experiment with new ideas to replace the flexible objects approach. The new idea was called global access and used specialized runtime time information structures. This approach has the advantage that the engine remains scriptable, but the code is much cleaner.
Oct. 2003 The third incarnation of the Oskar engine started. It build on the global access approach and was devoted to implement the Staxion project as soon as possible.