Blockhead is a small, fun to play 3D action game. It is a multi-player game that is easy to pick up and can provide hours of fun and intense competition among your online friends. At least, that’s what it was meant to be. I never got around to finish it but I learned a lot in UDP/IP and OpenGL programming.
Game loop execution is done by a plug-in
based system where modules can be loaded at run time. This provides
an extended life cycle to the game as new features can be added very
easily once the game is complete.
Scripting engine that actually supports
sub-engines to do the actual command processing.
Flexible, chunk based file format that can be
used to store various types of data ranging from 2D bitmaps, 3D models,
animations, levels and even a virtual file system.
Solid BSP based levels.
Flexible graphics engine:
3D API independent architecture (Can be used
with OpenGL, Direct3D or any other 3D API. Currently only an OpenGL
wrapper sub-system has been implemented.)
Engine settings such as the number of cameras, their position and
orientation, screen resolution, bit depth and others settings can be
configured through a script that is processed at run-time. Here is the
script used for blockhead (bin/lunatic.ds).
Can be configured for better performance or for better visual
quality.
Source code is highly portable.
State-machine based game entities. All game entities varying from
characters to power-ups are executed using their own finite state
machine object. State relations and state transitions are
setup on a per entity basis.
Written in C++
Screenshots and Concept Art
Blockhead standing in the dark and about to fall asleep.