Code icon.

Code

This page contains project and programming related stuff that I am working or have worked on.

Sweet

The Sweet engine is a 3D game engine designed by me featuring:

  • Platform independence (using OpenGL with working application backends for Linux and Windows)
  • Scriptable game and engine layers using Python (via Boost.Python)
  • Material script system with inheritance (via Boost.Spirit)
  • Skeletal (md5) & vertex (md3) animation
  • Deferred shading pipeline
  • Screenshot from the Sweet engine showing lots and lots of lights rendered using deferred shading.
    (Click to enlarge).

    Sweet engine screenshot.
  • Screen-space ambient occlusion (SSAO)
  • Variance shadow maps (VSM)
  • HDR rendering
  • Screenshot from the Sweet engine VSM and HDR techniques.
    (Click to enlarge).

    Sweet engine screenshot.
  • Streaming music and sounds (via OpenAL)
  • Proper physics and collision detection (via Bullet)
  • Clean codebase designed for extensibility

Screenshot from the Sweet engine showing HDR techniques with extreme bloom.
(Click to enlarge).

Sweet engine screenshot.

I'm currently re-designing and optimizing major parts of the engine. The new version features:

  • Native 64-bit support on all platforms (Windows, Linux and MacOS X)
  • Proper multi-user support on all platforms
  • Multi-threaded pipeline
  • Rendering driver abstraction layer
  • SIMD optimized game and animation tasks
  • Low-latency input with in-frame corrections
  • Network support

Screenshot from the Sweet engine showing an object loaded and lit using a model viewer script.
(Click to enlarge).

Sweet engine screenshot.

The engine development is currently tied to a game project, a "2D" platform game in 3D. The game is in prototype stages at the moment with a proof-of-concept under development.

Screenshot from the Sweet engine, an early prototype level editor for the platform game.
(Click to enlarge).

Sweet engine screenshot.

Polka

Polka is a 3D racing game developed by a team of five poeple and I was assigned the role of "software engineer" and designed the game engine foundation. The game uses the Ogre3D engine and features drunk driving and intensive polka music.

Screenshot of Polka.
(Click to enlarge)

Polka screenshot.

Screenshot from the Sweet engine showing the result of a very simple example Python-script that displays a huge crowd of animated Hellknights from the game Doom 3 by id Software.

Game development icon.

Nord

Nord is a game developed by SLX Games on which I did some AI and simulation work as well as terrain generation algorithm with an intuitive end-user interface. From the website:

"Nord is an online community in 3d where every player has his/her own character and own area to be creative on. [...]"

Screenshot from Nord.
(Click to enlarge)

Nord screenshot.

The game is written in Java and is installed and distributed through the browser using Java Network Launching Protocol (JNLP).

Screenshot from Nord.
(Click to enlarge)

Nord screenshot.

Super Magical Adventures of the Happy Strawberry

Super Magical Adventures of the Happy Strawberry is a 3D hover craft racing game developed by me and Filip Gedell as a course project in the Advanced computer graphics course. The goal of the game is to pass all checkpoints on the level as quickly as possible.


The engine features:

  • Volumetric fog
  • Fresnel and various surface effects effect
  • Stencil shadows
  • Bloom
  • Physics using ODE
  • Material scripting using Lua
  • Self-shadowing landscape using a pre-computed horizon map
  • Algorithm independent rendering pipeline

Banjo

Banjo is an action RPG mod for Unreal Tournament 2004 developed by a team of five people as a school project. It was made using the standard Unreal Engine tools and the main focus was gameplay and game design.

Screenshot of Banjo.
(Click to enlarge)

Banjo screenshot.

The core gameplay is a simple hack'n'slash type game with a very simple and intuitive control scheme. The player is pitted against hordes of skeletons (and potentially many other kinds of enemies) in a medieval fantasy setting.

Sheep Farmer

Sheep Farmer is an experimental game where the player controls a herd of (airborne) sheep by making strokes and gestures with the mouse. There are three gestures:

  • a dragging stroke to move a herd,
  • a crossing stroke to split a herd in two,
  • a connecting/joining stroke to merge two herds.

Screenshot from Sheep Farmer using an early version of the Sweet engine.

Sheep Farmer screenshot.

The goal is simply to visit all checkpoints (in order) and then go to the finish. New levels are unlocked using bonuses collected on each level, look out for the shrimp bonus!


The game features a boid simulation for the sheep herds, a simple customizable particle system, an in-game level editor and original music.

Screenshot of the Sheep Farmer Level Editor.

Sheep Farmer Level Editor screenshot.

Project Xeno

Project Xeno was a third-year school project developed by a team of six people and I was assigned the role of project leader. I designed and worked on the foundation of the engine and then the game code, initially I presented the game design and concept art (see my Art section.)

Screenshot of the Xeno Map Editor.
(Click to enlarge)

Project Xeno screenshot.

DuelBots

This was my second somewhat large-scale project, with a set of content tools, network multiplayer, cross-platform engine and proper server-client structure. The predecessor, WarTanks, was left unfinished (although playable) in favor of DuelBots.

Screenshot of the DuelBots.
(Click to enlarge)

DuelBots screenshot.

The engine is platform independent and both client and server software ran on Windows, Linux, Sun Solaris and MacOS X. The gameplay consists of two players duelling on an arena while various power-ups randomly spawns on the map during the match.

The game also spouts a feature-rich in-game Quake-like console with limited scripting support to facilitate development and testing.

Space Roger II

As with Quake and Quake II there's really no connection between Space Roger and Space Roger II apart from jumping and running.

Screenshot of the level two.

Space Roger II screenshot.

The goal is to kill everything during the levels and then proceed to the exit. The player starts out with a machine gun but can pick up different weapons on the level such as a machine gun, plasma rifle, grenade launcher and rocket launcher.

Space Roger

My first complete game, used my own sprite engine with mode 13h and VESA graphics mode support.

Gameplay consisted of jumping on blocks from start to finish as quickly as possible to complete a level. Some blocks were "Death Blocks" which killed you and you had to restart the level.