Voxlap Engine source code
Sept. 14, 2005:
I thought today would be a good time to release the Voxlap engine source code. I would love to see someone (other than Tom or myself) apply their creativity to this engine. My advice would be to think of a totally new type of game - something that could take advantage of the dynamic terrain, and not be easily reproduced in a polygon engine. Good luck!
VOXLAP_SRC.ZIP (4,503,671 bytes, 09/27/2011) Full voxlap engine source code. Includes engine code, sample game code, sample game data, and plenty of documentation.
09/27/2011 release changes:
- Update README.TXT with a clarification to what constitutes commercial exploitation.
08/19/2011 release changes:
- Upgraded to latest KPLIB.C: now 64-bit compatible, although this is little use to Voxlap.
- Upgraded to latest WINMAIN.CPP. Most changes are not applicable to Voxlap.
- Fix parameter typecasts in kpzload() calls (result of using new KPLIB.C).
- Removed duplicate getcpu() detection in VOXLAP5.C - already present in WINMAIN.CPP.
- V5.ASM: mip-map tables are now calculated automatically. All you have the modify now is the constant (LVSID/VSID) at top. This greatly simplifies changes to voxel map resolution.
- VOXLAP5.C: increased default voxel buffer (VOXSIZ) from 64MByte to 128MByte.
- VOXLAP5.C: in opticast(): changed a "1048576.0" to "PREC", making raycast density / ring artifacts easier to adjust.
- VOXLAP5.C: in gline(): fixed overflow issue related to raycasting direction. This fixes an artifact that was occurring every 90 degrees at the near-axis directions. The artifact is more noticable when increasing raycast density (PREC).
Several people have asked me how to increase the voxel resolution from 1024^2*256 to 2048^2*256. Here are the steps for the latest source:
- VOXLAP5.C: Change all 2047's to 4095's.
- VOXLAP5.C: Change PREC from (256*4096) to (256*2048) to avoid an overflow.
- VOXED.C: Change all 1536's to 3072's to allow the whole map to be seen.
- VOXLAP5.H: Change VSID from 1024 to 2048.
- V5.ASM: Change LVSID from 10 to 11.
04/20/2008 release changes:
- drawline2d() and drawline2dclip() have been patched to prevent a leak that was allowing rendering out of bounds.
- Voxed's color selection tool no longer dips below the screen. This was causing a crash in some screen modes.
- Voxed's screen capture now skips existing capture filenames if they already exist.
- A small change to gline() may fix a rare freeze condition.
- Fixed several assembler blocks that were not preserving registers properly.
- Bug fix to getcputype().
- loadpng(): loads a simple 1024x1024 heightmap, where height stored in the alpha channel. Allows simple maps to be compressed.
- V5.ASM now includes a hack that allows self-modifying code to work under systems where Data Execution Prevention is enabled.
- KPLIB.C supports some more variants of image formats.
- WINMAIN.CPP has some changes; most of them are bug fixes or hacks intended for other projects. readklock() no longer uses rdtsc() and should now work on systems with Speedstep. The page flipper should now work under Vista without Aero complaining.
- VOXDATA.ZIP has been optimized for size.
09/14/2005: original release.
README.TXT (13,124 bytes, 09/27/2011) The readme file included with VOXLAP_SRC.ZIP. Includes a more detailed introduction, list of requirements, credits, and license.
SDLMAIN.ZIP (16,297 bytes, 12/19/2006) A port of my WINMAIN.CPP to SDL by Jonathon Fowler This should help speed up ports of any of my programs (not just Voxlap) to other systems.
Back to Ken Silverman's Voxlap Page
Back to Ken Silverman's Official Home Page