Furball Engine is actually a complete sourcecode for Frolicking Furballs Safari Resort. This game was written for Ludum Dare 19 competition in 48 hours ranking really good scores.
After that the code was cleaned up and documented without making further chages, so this is in fact an engine written in 48 hours. Basecode for this entry was my Ludum Dare 16 entry, Needlesoft Haystack Explorer. I took out entire code out of that leaving just a working OpenGL display with movable camera. On this base I created Frolicking Furballs Safari Resort. Commenting the code was done for it to serve as my show-off code while I was looking for a job. As I am an optimistic indie developer now, I have no use for this code.
Features
Super performance - can displays millions of polygons each frame
Cross-platformness - you can easily ditch Allegro and wrap this engine in a different library, such as SDL or your own code.
Doesn't look like minecraft!
Create levels in your favourite image editing application
No 3D modelling required - you can use flat images to create 3D voxel models!
Licence
Furball Engine source code and all the assets are yours to use for anything. Do whatever you want with it, but I'd love to be know if you are using it, so I can pump my ego with that. it's probably called public domain. I have no idea about licensing.
If you have your MinGW 4.x you would like to use, make sure you enable C89 mode
MinGW should be unzipped to root directory, usually C:\MinGW(I use D:\MinGW)
It's a good thing to add MinGW/bin to your PATH, but it is not required. Make sure you reboot your PC after adding stuff to system PATH or log out and log back in if you're adding it to user PATH (yeah, even Windows 7)
When it launches for the first time, select GNU GCC Compiler as default compiler, even if it is not autodetected.
Double click on furballs.c or drag it to C::B toolbar if you didn't cxhange file associations./li>
Go to menu Settings->Compiler and Dubugger settings->Toolchain executables tab and enter path to your MinGW, if it didn't autodetect
Go to Linker Settings tab, and set up libs like this, keeping in mind that order is significant. GCC linker must have libraries ordered most dependent -> least dependent
Usage
Open furballs.c
Press F9
2I use MinGW 3.4.3 since it links against msvcrt.dll. Newer 4.x versions link against a proprietary gcc runtime library.
// Remove these lines:
#include <winalleg.h> // allegro vs windows redefinitions helper
#include <windows.h> // windows things// Change this line:while (!GetAsyncKeyState(VK_ESCAPE));