I wanted a nice simple menu system for pico-8 so I decided to recreate an old UI I made ages ago in Flash (my game Red Rogue uses it).
The Cardinal Menu only uses arrow keys to navigate. The menu is made of branches. Each item in a branch points to either a string (providing a description panel), a function in your code, a new branch, or nothing (disabled).
The purpose of this system is to make it as fast as possible to build a menu and add options.
In the demo you can see what each option does and there's a demonstration of an inventory system.
The menu system alone is 712 tokens.
This is about as basic I could make it without adding too much noise to the code, but I welcome suggestions for improvements and optimisations.
A quick update...
Let's say you're in a shop and you have 5 gold. A sword is 5 gold and an axe is 10 gold. You want the menu to say the axe option is disabled. So now you can define a menu item that checks if it's disabled - you just point it at a function that gives an answer.
I also added a selection animation for input feedback and trimmed down my math. The menu alone is now 800 tokens but at least it's a round number and easy to build a crafting system with.
I maintained a tweet-log whilst developing this, if you're curious:
Arrow keys to move. Z or X to fire.
Walk into a gun to equip it. Collect gold / fuel / light / more guns.
The desktop build works with a gamepad plugged in (tested on Windows 10).
Cardinal Gun Prospector
You have beamed down your remote droid to loot the famed Monster Caverns. You only have enough juice to beam down a simple pop-gun next to you but plenty of weapons are left around from previous visitors. Get in there and loot as much gold as you can!
Made for the 7 Day Roguelike Challenge, 2020.
Been putting this together rather rapidly. Not only am I fast running out of tokens with no room for polish, I'm finding the gameplay a bit dull.
The idea is that you can only attack on higher ground. Same for the monsters. This is sort of interesting because it leads to a fair bit of dancing around to find a spot where you can attack. But I'm honestly just back-tracking whenever I meet a monster. Changing the numbers as a result of attacks keeps me and the monsters moving, but not in a way I find interesting.
I tried bigger maps with scrolling, but a grid of numbers trundling along is a great source of motion sickness. This idea seems better suited for a much smaller map. I'd probably make more use of the spells by virtue of accidentally looking at them.
Hopefully there's still time left in 7DRL to hack this apart and make something else. But I've gotten this far so I thought it fair to show what I've done.
What's a roguelike without some lighting? #7DRL is fast approaching so I thought I'd re-familiarise myself with pico8. I've ported shadowcasting before but someone on this forum has already done that for me. Unfortunately it's not in cart format where I can see it in action. So let's fix that.
I did some small changes:
- "cast" gets used for a lot of things so I called it fov instead
- Recursive shadowcasting calculates within a square, which looks ugly. I've added a distance check to slice off those hard corners.
Here's the url of the original post: https://www.lexaloffle.com/bbs/?pid=28780
Obviously I'm not looking at pico8's map, just one I've generated. But one could modify it to taste. I'm also being quite wasteful because I only need to iterate through the keys in "visible", but I wanted to be certain there were no bugs and this proves the point.
Left,Right to move.
Z,X to jump. Hold jump to glide.
Wanted to make something with the game-feel-onomatopoeia of "pak-pok". There's a lot of this in games (eg: Mario turtle shells) but the "pok" usually ends in death.
My last cart-game featured a lot of death so I felt like making something nice instead. But then I kinda needed spikes. Sorry. It's a little bit violent, but no one dies.
This game is built on top of the simple platformer engine I posted here: https://www.lexaloffle.com/bbs/?tid=35086
Thanks to the following for helping test the game: Mark Foster, Hafiz Azman, Dugan, Paul Jeffries, Martin Ferenc, German Gonzalez
I've made dozens of platformers in Flash. We had to write all of our own code for collisions back in those days and there was a lot of demand for moving platforms and crates.
Moving platforms are hard. It has to move itself and anything on it.
Crates are even harder. It's like a moving platform, but you can push it and the moving platform can carry it too.
Push Me Pull You
A push can become a branching path with many things responding to one request for movement. This engine handles only one knobbly branch at a time. If the collision doesn't have too many parts, it will get it right.
I made this engine using an object pattern so I could figure out how the hell to make it. Hopefully it's readable and if you hate objects that much then please optimize it and post your results. I'm more than happy to see this engine updated.
The more contact points involved in a collision, the more code it takes to solve. The engine pushes the first thing it sees, it doesn't think about the consequences of a pyramid of crates stacked on your head with odd gaps and a random bit of wall in the middle. I once wrote a loop-solver that handles this but it was some heavy duty stuff, not Pico 8 material. Or prove me wrong, I'd be happy to see an engine that handles it without going full Box2D.
A top-down-shooter metroid-like.
Cursors keys to move, Z / X to fire.
1 hour or less playtime, does not save.
This is my first Pico-8 project. Apart from the class definition (which I abstracted) I wrote the whole thing from scratch in 2 weeks of spare time. This meant it turned into more of a shmup odyssey than a metroidvania. I will have to listen to a lot of feedback before I know what weapons, monsters, and topography would have worked better.
Let me know what you'd expect from a sequel.