PGD Home

Procedural Content in Games: .kkrieger

by on Dec.14, 2014, under Musings, On Game Development

While researching new ideas and concepts for procedural content in games recently, I remembered a game that I played a long time ago, which had exceptional graphics but took up only a few kilobytes of space.

The game was called .kkrieger, and it was actually created as part of the famous “Demoscene” community. Demoscenes are essentially where small groups of programmers, graphics artists, and musicians create a small demo of their work, designed to show off their technical or artistic skill. .kkrieger won the 2004 “96k game” competition at “Breakpoint” a German demoparty.

This means that, yes, .kkrieger, in it’s entirety, is less than 96 kilobytes in size! This game has sound, excellent graphics, multiple weapons, enemies, and rooms, as well as lighting, shading, and textures. How is this possible?

They team responsible for .kkrieger made extensive use of procedural techniques in the game. Instead of creating art assets using a modelling tool, and loading them into the games engine, they created simple shapes (spheres, cylinders, etc) in code, and then used an algorithm to modify those shapes, to create some quite advanced models. Essentially, they wrote an algorithm which automatically “box models” a weapon, character, or room.

This just goes to show the awesome power of procedural content, if all of that can result in a game being reduced to less than 100 kbs!

One of the limitations of this approach however is the very long load times of the game, it takes several minutes for a relatively simple game to fully load. This is due to all of the processing that must be done by the procedural algorithms to create the object data. The game also ran slowly on my laptop, and didn’t run at all on my desktop, although this could have been due to compatibility issues, the game was created ten years ago.

One of the other interesting things about the game is that is comprised of nothing more than a single executable. Since all of the games art, (including textures) and sound assets are created procedurally, it does not have any other files at all. This means that it’s game engine, or whatever rendering code it is using, must be statically linked into the executable, to avoid having to load a separate .dll or .lib file.

This is tricky to do. I have some experience with OpenGL and DirectX, and static linking  and releasing executables without supplying .lib and .dll files can often cause errors and issues.

The wikipedia entry on .kkrieger is HERE. It features a screenshot, although lacks detail about the technical achievements of the game. The game’s official site seems to be no longer available, although an archive version is HERE. The game can still be downloaded from the archive using THIS link.

I am reluctant to post screenshots or the game itself here, since I don’t own it, but the above links, or  simple google search, should provide plenty of images. The game looks far better than many games of it’s day, which is an amazing accomplishment given the small file size of the .exe.



Comments are closed.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!