I am an independent game developer who pokes pico-8 when java and darkbasic make me angry. I so far seem to make mostly spam, but it's fun, and that's what is really important. I would really love a portable version of pico 8 on a handheld so I could use it on other devices besides the PC that I develop on, but till then, I will just have to pretend.
My email is: [email protected]
My game dev blog is here: http://gawaingames.blogspot.com/ I sometimes ramble there, or post releases. However, I keep pico 8 stuff here, on the pico 8 forums, for now.
This was my entry for #LOWRESJAM2018.
I am posting it here to share it with the pico8 community, and effectively "open source" the result. Feel free to remix and poke around. I've had to remove most of the comments to make it fit in the cart limits. But most of the code should be pretty self explanatory, there's nothing super fancy besides the generator and some efficient reuse of "render object" functions under the hood. The cart is nearly full, so you might need to do some serious memory hacking or make some code somehow more efficient in token use to make new AI/features. But graphics and tile layouts are all your playground too.
Since the chunk generators are based on parts of the tileset map data, even a newbie can have fun changing those and playing the results.
Let me know if you remix it into anything awesome, and enjoy! :)
TLDR: This is a very buggy basic implementation of TIM, only not so Incredible since it's totally broken and lacks the game part. So it's mostly about crashing pico with overflowed math using bowling balls that are apparently covered in flubber. :D
I am probably going to miss the jam deadline for this one, my weekend exploded on me. The trig and collisions also gave me hell the last few days trying to figure it all out, so now this is mostly a featureless demo of some basic line based collision code.
I want to upload what little I got working at least. As I get the rest of the game systems in place, I'll update this with stable-ish versions. By no means is this a game yet, but I thought some of you might like to poke around and see how the game is structured or how you can start doing line based sprite collisions.
directionals - move cursor
Button 1 - puts things, picks things up
Button 2 - enter parts bin mode, leave it(you can also leave by grabbing a part with button 1)
-Press the play button to start the simulation. While running, press again to stop. Stopping it will "revert" parts back to original positions and speeds.
-The reset button does not work yet.
-The rocket part is a wip, and does not have a concept of thrusting yet. It simply starts with some momentum and will run out once it hits a wall.
-Gravity is totally placeholder and completely wrong. In real life, objects do not care what weight they have, but I needed something quick slapped together to test the collisions. I aim to fix this later with a proper calculation instead.
-The momentum from bounces is either wrong, or the balls are bouncing multiple times off a platform sometimes. They seem to just gain momentum as they bounce. This is basically what's been giving me hell and is eating my time. :(
-there is no friction yet, so sadly no rolling or anything like that.
-I left the debug line drawing code in place, the red lines are what the "collision engine" is seeing. Each frame it loops through moving parts and checks for collisions with any lines nearby(It only can see a single block in any direction to keep it running smooth).
-If you want more parts to play with, you'll have to add more parts manually through code in _init(), though the existing part spawning code is simple enough. (partID,x,y are the parameters in case you can't figure it out yourself.) Be careful adding moving parts, as they take a lot more memory then the walls and ramp. Note that if you wish to grab the part it MUST be on a multiple of 8, or in other words, "on grid".
-The parts in the parts bin auto-sort themselves, though I have not tested the wrapping part code yet. It's supposed to wrap part placement to keep them in the bin if you go over a single row. No vertical scrolling has been implemented yet.
Anyway, I hope at the very least some of you can learn something from this version's code. I'll keep poking it, though my progress is very slow. I deal with trig and code in my other things, so lately I'm too tired to think straight when I get to pico8. ;)
I also have not come up with a good way to store puzzle data yet. I'm thinking of using the map or sprite data somehow. The real game I'm copying has user made levels, I'm not sure I'm skilled enough to tackle that yet. Pico's saved data limits are really hard. :/ But fun to try to use, as most of it! :)
Added a lot to this, now that I had some more time.
-The dragon can now burn things with Z. He cannot move while burning, adding a little strategy. This whole little fire system took me over 2 hours to figure out how to do. Shameful really, but it all works beautifully and now I don't need to poke it. (I hope.)
-Burning snacks will leave gold pickups of random values behind. These show up as single pixel drawn pickups.
-Collecting gold will add to your gold amount.
-Flying over the hoard in the center will "deposit" the gold into your hoard. The hoard also updates it's graphical representation based on how much is in it(with cap on the amount of scaling to keep it sane).
-A few new sound effects. Snacks can now scream when burned, and the fire of course has a looping sound while it's hit area is active.
-Eaten enemies sometimes manage to scream before the dragon munches on them. I thought it was funny at 4 AM to make it random. Don't ask.
-Enemy ai is updated a bit in prep for later. Now in addition to random wandering, they also move closer to the hoard. I eventually plan to make them steal gold and attempt to run, adding to their gold amount when defeated, and potentially taking it off screen for good. For now they all just crowd into the middle eventually. The dragon says it's very convenient for eating them.
-Updated the print commands to set the color before printing. This fixes a bug adding the gold had created. Yay for saved drawing color commands.
original first post:
The cart title is a terrible pun, I know. No, I'm not sorry. More puns might, or might not, be on their way.
NOM ALL THE THINGS!
Well, currently only little silly people that walk around randomly and even sometimes straight into your belly. Not very bright really. Tasty though.
Ok, so it might need a bit more work before this can be called a game. And our cute little dragon doesn't even have a flame breath attack or anything yet. Much sadness in the land of dragon.
Anyway, I was a bit bored and tired today, so I booted up pico to learn how to use it properly. A few hours later, I got this.
So far Pico has been rather interesting and fun to use, though my lack of remembering syntax makes programming a nightmare for me. No different then any other programming tool when placed in my hands though, and not really the designers fault. I kind of wish a code reference was included on a hotkey inside the app itself somewhere when the code window was open.
I might update this later into some sort of game. I mostly wanted to share this first before I either over-design and get stuck somewhere, or drop it off the face of the earth into bug infested "I IS A GEOD PROGRMER" land.
I hope you enjoy your 20 seconds of flying around eating everything in the pointless land of PICO ATE.
And no, currently nothing happens if you get a higher score. Except for the satisfaction that you fed the little dragon thousands of little peoples.