Aleksandar's web space



The idea behind Wyvern is to have a software backed by quality and short source code.
Minimal dependencies are allowed. The program runs on Microsoft Windows and requires an AMD64 compatible processor. No SIMD instructions for now...

File Size
Wyvern.exe 21504 bytes
WyvernGame.dll 2600 bytes
Σ 24104 bytes

Interesting fact about Wyvern is the game code is loaded during the execution of the program. All that WyvernGame.dll contains are functions that mutate the passed persistent memory block (allocated at the start of the program) based on the player's input.

Separating game code and allowing it only to mutate the memory block defining the game state allows the program itself to be "hot swapped". The purpose of scripting languages is to provide a code environment that can be altered during run-time by a programmer. This is exactly what Wyvern does but keeping the quality and small code without the penalty of using an interpreted language. :^)

A chunk of the file is PE padding. The binaries have been compiled with 512 bytes of padding per section.

A funny trick: Wyven.exe, "the game" can run without WyvernGame.dll, the "game code". There is a stub function for when the days are tough and we are not supplied a dll.

Download latest version.


Web server forked from Pico. A very barebones server software, only answers to GET requrests. All files to serve are loaded at start of the program, if any file changes the server has to be restarted for changes to take effect.

Changes from the forked repository include: all servicable web pages or other data is loaded when the program starts, close (2) called in the main thread instead of the child, uses write (2) instead of printf (3), ignores certain User-Agents, rearchitected the source code in one file...

Download latest version from GitHub.


Program for downloading and playing DooM WAD files from provided FTP/HTTP mirrors. This program is written as a POSIX compliant shell script. Requires either notify-send, kdialog or zenity for notification when starting DooM (may stall if no daemon is catching sent messages).

Contains, challenge yourself by letting the machine choose an unbeaten WAD for you to play! After DooM is closed the player is asked if the WAD is beaten or not. Tracking is done on a single file that can be easily altered (one line per beaten WAD).

Download latest version.


Quasi DooM, it's DooM but you really shouldn't be playing it like one!

This modification twists DooM's gameplay: monsters' AI is very different to the point you may say it's utterly unfair, levels are designed with cosideration of the absurd difficulty and the player's weapons function the same with some new additions, such as recoil.

Download latest version.


Other web pages: