Old version:
It's a complete game now, with a title screen and a final boss.
--Arrow keys to move
--Z-key to fire
--X-key to strafe
Defeat the Star Beast on level three!
You start in the elevator. Use the Z key at the console to go up one floor, provided you have destroyed all robots and collected the keycard, which is hidden in the level.

--This is inspired by AfBu's 3D experiment, as well as Lode's Computer Graphics Tutorial on ray-casting, which uses a different stepping method than AfBu. (http://lodev.org/cgtutor/raycasting.html)
--Horizontal distortion effect borrowed from qbicfeet


The parts of the engine that draw walls and sprites are roughly:
Tokens: 1029/8192
Program Chars: 5427/65536
Compressed: 1935/15360


Here's an earlier version of the engine that only has wall rendering, sprites, and basic movement. (This is before I clobbered the code with a spaghetti of game play elements.) If anyone wants to use this framework for anything, I am all for it!


Man sometimes I just feel like I have no good way to attack these enemies, since they are so dangerous in close quarters. This game is just hard. I like it though! If it's going to have 5 levels it should probably save the harder enemies for later.


To be honest, the 3D part was taken mostly from this tutorial:
http://lodev.org/cgtutor/raycasting.html
The tutorial is great, with clear illustrations and even complete C source code. I simply translated the code into PICO-8 Lua, with map and sspr calls, going step by step. I'd recommend just starting with the part of the tutorial on un-textured ray casting and building up from there if you want to have a good understanding.)
Now that I have been working to add more features to the engine (floors, variable height walls, and distance fade) I have been starting to understand the code in more detail. I am also starting to optimize the ray cast code for speed a bit more so that I can get these features in without dropping frame rate.


I really love the game, but it currently has some kind of bug that crashes PICO-8 completely. It happens in both the web player and the desktop version. It usually happens on game over when you try to start a new game.
[Please log in to post a comment]