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


This game is very cool, and I have played it many times !!


I just ran out of program chars this evening and was prepared to start shortening names and removing comments. Then realized that I hadn't upgrade to version 0.1.4d. Now I have a full 2,000 tokens and 32,000 more characters left. It's the small things that make me happy.
Now to finish up dynamic map creation...


Updated to 0.9
Changes include:
--Map is now generated procedurally using a sparse matrix
--Enemies have different behaviors and can shoot
--Bullets leave holes in walls
--Added HUD for health, keys, and money
--Added radar for enemies
--Added health and coin pickups
Still to do:
--No real sound effects, let alone music
--Needs a title and game over screen
--Would still like more variation in room type
--Boss robot on floor 5 with a clear end game


A few more updates:
--Fixed double load of rooms, which lowered frame rate and prevented items from disappearing when picked up
--added more sound effects for doors, shots, damage etc
--reduced map size a bit to improve speed
--enemy shots go through doors (open or otherwise)


Added a final boss and a title screen.
I'm going to consider this one done for now.
-Electric Gryphon


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.


I'm impressed as [email protected][email protected]$ to see this on Pico8. Great job!


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]