.kkrieger | |
---|---|
Developer(s) | .theprodukkt |
Publisher(s) | .theprodukkt |
Year released | 2004 |
System(s) | Windows |
Genre(s) | First-person shooter |
---|---|
Modes | Single player |
Latest version | Beta |
.kkrieger (from Krieger, German for warrior) is a first-person shooter computer game created by the German demogroup .theprodukkt (a former subdivision of Farbrausch) and won first place in the 96k game competition at Breakpoint in April 2004. The game remains a beta version as of 2008. The game has also won two German game-developer prizes at the Deutscher Entwicklerpreis in 2006: Innovation and Advancement.
The entire game uses only 97,280 bytes of disk space. Much of this small size is attributable to the game's use of procedurally generated content. In contrast, most popular first-person shooters fill one or more CDs or DVDs, which may be over 7000 times .kkrieger's size. According to the developers, .kkrieger itself would take up around 200–300MB of space if it had been stored the conventional way.
.theprodukkt have developed .kkrieger since mid-2002, using their tool called .werkkzeug (from Werkzeug, German for tool). They used an unreleased version of .werkkzeug called .werkkzeug3.
.kkrieger makes extensive use of procedural generation methods:
- Textures are stored via their creation history instead of a per-pixel basis, thus only requiring the history data (possibly as low as ~300 bytes per texture at any resolution) and the generator code to be compiled into the executable, producing a relatively small file size.
- Meshes are created from basic solids such as boxes and cylinders, which are then deformed to achieve the desired shape - essentially a special way of box modeling.
These two generation processes explain the extensive loading time of the game - all assets of the gameplay are reproduced during the loading phase.
The game music and sounds are produced by a multifunctional synthesizer called V2, which is fed a continuous stream of MIDI data. The synthesizer then produces the music in real time.