139 |
Suzie and Bob are trapped in a merciless world. Can you fight your way out?
Gameplay Elements
- Random maps
-
Multiple biomes
- Multiple enemies
- Multiple weapons (but one at a time!)
- Loop-based difficulty
- Supports keyboard/mouse
Controls
Keyboard:
- arrow keys: move & gun direction
- bttn 1: fire & lock direction
- bttn 2: pick up weapon
Mouse (selected in option menu):
- arrow keys: move
- mouse: gun direction
- left click: fire
- right click: pick up weapon
Note: any resemblance with a famous Vlambeer game must be purely accidental...
Changelog
1.2:
- fixed: woobly sprites
- fixed: actors stuck on corners
- fixed: warp in/out effect
- changed: impact feedback
- changed: health upgrade on loop
1.1:
- fixed: unexpected god mode
- fixed: boss hp
- fixed: boss attack
- changed: tweaked game speed
- change:balanced high level gameplay (loop)
1.0:
- preview version
Dev Log
2nd finished game (last was Thunderblade). Took 4 months to complete & refine.
Un-minified source available on Github:
freds72/pico8/carts/nuke.p8
Tech Highlights
JSon Rules!
All entities (actors, weapons, particles, levels) defined using json (worth 3500 tokens!). A lightweight parser (450 tokens) converts strings into lua tables.
Entities are created using a parent template with support for:
- lua references
- random values
- method & attributes override
Rotating Sprites
Player weapon (and couple of other sprites) are rotated in real-time using an optimized sprite routine. It is fast enough to allow ~10+ sprites on screen (before tanking FPS!)
Performance
An actor map is maintained each frame. It allows immediate bullet/actors lookup.
Only player/npc collisions are checked to ensure player cannot zip through enemies.
A-* path is refreshed for a single npc per frame. It ensures a large number of npc’s can be created without too much cpu stress.
Sprites are added to buckets matching their y pixel coordinate.
Saves both cpu and tokens as no global sort is required :]
Toolchain
Cart is minified using picotool (19k compressed). All json attributes are replaced by their short equivalent using output from minification script:
cat nuke.p8 | minify | replace > nuke_mini.p8
Missing In Action:
- RPG aspects (upgrades/xp/abilities...)
- Good music (for total lack of musical skills!!)
- Scoreboard
Credits
- Tyler Neylon: lua JSON parser
- James Coonradt ( @gamax92): midi2pico
- Jakub Wasilewski ( @krajzeg): Lighting by hand: the thin dark line serie
- Dan Sanderson: picotool minify
- collide sample by @zep
- Vlambeer
This is very nice. How long did this take to make?
Very nice. Great use of commute time there.
This is one of the best Pico 8 game I've played. I really love the gameplay, and the music is nice too.
There is just a tiny problem, in the snow biome, the ammo counter is almost invisible when it's over the snow. But I guess you would just have to add a border to the text, so it's not a big deal. And another thing is that when you don't have any ammo left, all you can do is die, there's no other option.
But it's still an awesome game!
@ZOSK: be out of ammo is actually part of the game tension :)
As for the counter, I know, howerver I am completely out of tokens/compression space on that game :/
@binarycat: it can happen, however you have something like 2s of invicibility when level starts. Make good use of it!
How do you make the script that makes the gun look at the mouse?
Sometimes at the beginning of the game, I spawn near a lot of enemies. Maybe add a difficulty option, make your health bar 13, make it so when you get the health box, you gain 5 health, and make the levels have fewer enemies depending on the difficulty. It's still a great game btw :D
really hoping for mutations
(also, i would really love to see char choices)
I could design the gimmics if you want
it would also be nice if there were chests for ammo, (rads) and guns
also, a 5 ammo type system would be great, you wouldn't have to count ammo for each gun, just the player's ammo
[Please log in to post a comment]