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
Really great result. Can you estimate how many tokens went into the pure rendering of the level, without any gameplay?
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!
Thank's a lot for the stripped down version - already thinking about one or the other way to use it in a possible sequel to my first pico8 project, but I need to finish that first :). Really great tech!
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.
This is really cool! Thanks for the engine too! I've wanted to play around with raycasting in PICO for a long time! :)
Wow!
What'd you say how likely it is to look at the code of your game and figure out how all this works, especially the 3d part?
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.
Thank you! I know where to look if I ever get the 3D itches now.
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.
Small bug: If you fire at door and then approach them so they open, the bullet hole hangs in the air.
If anyone wants to use this framework for anything, I am all for it! |
Perhaps make a repo? I'd be interested in contributing to such a FOSS raycaster for pico8!
[Please log in to post a comment]