Went through the Nerdyteachers platformer tutorial and made a little version of my own :D
Hope you enjoy!
Calculators have always fascinated me. For that matter numbers. Even before I could bring Dad's calculator to school I was busily working on paper with digits 0-9. Fascinated, just ... fascinated by what they meant, what they implied, and what they COULD mean with new definitions.
When I finally understood computers, I was quite interested. No, that's not the right word. I was OBSESSED. Obsessed to the point of mania would it could mean. What I could do. And what I could do with tools that worked with these numbers. Tools within tools. Numbers within numbers ...
So perhaps this is a work of love, real love, for the majesty and magnificence of numbers.
With that out of the way, let me show you what I have done.
I suppose it's a bit of a calculator, but with a difference. You can have ANY number of digits. And I mean any. Right now I have it scaled for 64-digits. That includes positive and negative.
Most importantly, it does NOT do it a single number at a time as you can tell. No, it truly does add and subtract every digit intelligently. So if you have 16-digits set. Then it will take no more than 5-loops or 80 looped statements to get the right value.
- [1st loop] retrieve digits
- [2nd loop] find largest numbers
- [3rd loop] add digits (if adding)
- [4th loop] subtract digits (if subtracting)
- [5th loop] locate beginning of return value
- [6th loop] send return value to variable
NOT 1-million loops to get a value of 1-million.
So far it's just addition and subtraction, but maybe that's because I don't really know how to write simple code to multiply or divide without a calculator or computer.
Anyways, it does addition and subtraction quite well, and as mentioned, with any number of digits. I'm not kidding about that.
Try out the sample program included and you have a few controls available to you.
Press LEFT and RIGHT to increase and decrease randomly by several thousand.
Hold (O) and LEFT and RIGHT to do it 100 times over.
Tap (X) to double your value. This will rapidly increase the amount. Remember, I just have it keyed to work no more than 64-digits at the moment. You can always change that.
Tap UP to take out the last digit in your number. A good way to shrink the value.
Try this for a test.
Hold (O) and RIGHT to get it up to about 50-million.
Now hold (X) for a bit to see it dramatically increase by doubling the total each time. You can check my work with a calculator too if you want.
Seems to work well for positive numbers. Alright, either hold (O) and LEFT or UP to get the value back down. Test it for negative numbers now.
Here's where my hardest coding came in. To bounce back and forth between positive and negative WITHOUT getting the wrong value. Test it though, please. I want this to work right. I think it does. I hope it doesn't get any errors.
I feel a little like Willy Wonka developing a new candy. As he (Gene Wilder) said, "I don't think so. Few more tests."
Anyways, there you have it. A calculator that can count well past trillions. Definitely good for scoreboards or long-playing RPGs with huge experience point values.
Likely you can find other more interesting uses for it.
Purrinormal Cativity is my family's entry to the Spooky September 4-Color Jam! Play as a cat taking a stroll through a graveyard on a starry fall night. Knock over jack-o-lanterns for points while avoiding ghosts, bats, and owls.
This is my first PICO-8 game, and was a full family effort:
My wife: Most of the graphics
Son #1 (11): Music and SFX
Son #2 (10): Level design and play testing
Me: Coding and a couple of the sprites
A small young children game for learning to spell and read.
want to update with more and more animals (ideally consume all possible sprites).
Now with sliding letters.
I'm making a small game about chronic illness.
The idea is that the player has to go to the hospital every x amount of time.
They're also fighting a monster of sorts on the left side. But they'll get constantly interrupted because they'll run out of energy and have to go to the hospital.
Right now, I'm not sure what kind of mechanic I would have for the fighting of the monster. I was thinking basic turn based attacks like an RPG, but maybe something more action might be fun.
Made for Trijam #41. What happens when the hero fights for too long? When he uses up life after life, walks too much, stares (and falls) into too many abysses?
A short, dark take on the Super Mario world!
So that's my first PICO-8 game, some kind of demake of that infamous T-Rex game on Chrome. One of my schoolmates gave me the idea in tech class, so I spent like two school days coding this. Also asked me if I could make it in 60 FPS, so it is. Code's really messy, could use some improvement, but hey "it just works".
to load this cart in Pico-8 immediate mode type:
updated 10-18-19: Now works correctly no matter what the names of your functions are or even if you rename the debug() function itself.
Ah ! I bet you did not know about this ?
There is a command in Pico-8 that lets you see what function you are in as well as the line number ! Works with nested functions too, as deep as you please.
Debugging your code just got a lot easier.
Try out this sample program and feel free to use this function I put together to assist you. Every time you call DEBUG() it will display at the bottom of the screen what function called it and at what line number.
Big thanks to @Felice for introduction to trace() command which is neither listed in the Pico-8 manual nor the advanced manual. Sometimes things are just found like that. :)
HOPE THIS HELPS !
There was a discussion on twitter about not being able to get the stack trace for a dead coroutine, which is understandably frustrating. However, I was sure that I once figured out a way to do it, and I said so, but the code to do so is on a dead PC at the moment, so I had to spend some time figuring it out again.
This sample basically runs a coroutine that waits for 5 seconds and then does something fatal. Each frame it displays the known status and stack trace. Run it, you'll see.
I tried to set up the code to be as simple and understandable as possible, but if you have questions, please feel free to ask.
EDIT! For a VERY simple coroutine exception stack trace dump, see my follow-up post here
My name is Leah and I am six. I really like playing Kirby with my dad and it gave me an idea of making a video game. I drew the character and the background. I made the music, I typed everything in the code editor and my dad told me what to type. I hope everyone likes my first video game.
Sometimes you just can't get what you want by plotting sprites cause they may not be there or you've put a bunch of binary code on top of 'em. Sometimes you just MUST pixel.
Well, that's all good and well, and there's a few ways to go about it.
 Record every pixel in the area ahead of time and later plot it all out again.
 As above but only plot select pixels. In this case, do not plot black pixels.
 Unique method caching pixels. Explained later below.
 NEW ! Shoxidizer's Serializer.
 NEW ! Using PEEK and POKE.
Try this program I wrote:
Use LEFT and RIGHT arrow keys to change drawing method.
Lots of moving and colorful sprites. It starts out in MODE 0, which is the 1st above.
. . .
In mode zero you can see above it records every pixel in the sprite and then plots back every single pixel without caring what color they are. For moving 100 sprites, this uses up 63% of your CPU.
. . .
Mode 1 is better and more intelligent. It like above records every pixel in the sprite area but when it comes back to plotting, it only plots pixels that are not color zero (black). This gives you a slight speed increase. Uses 52% of your CPU.
. . .
So what's going on with the cache method which is the fastest using only 32% of your CPU ? Let me see if I can explain.
Instead of using an array that is 8x8 in size to house every pixel, it creates a new single dimensional array that has 3-separate elements in it.
The first is the X-position in the pixel, the next is the Y-position, lastly the color.
So how is this different from the two above ?
Instead of going through 64-different pixels to see which is lit and which is not, it records the X/Y coordinates for each pixel plus the color and saves THAT as a single item in the array.
I'll let you think about that for a minute before giving an answer. Scroll down to see how it's done. No, I don't know how to hide text in Lex.
So is this what you were expecting ? If so, congratulations, you got it right ! :D
Yes, THIS method of not only recording each pixel you want plotted but their exact X+Y coordinates runs quite a bit faster than the standard 8x8 sweeping method.
So there you have it.
HOPE THIS HELPS !
NOW DO YOU know of a faster way to plot individual pixels from a table or sprite sheet ?
A demo of my upcoming project, featuring zero ideas for a final title and a quarter of the tokens already. Jump with Z and fire with X, you can figure out the details.
Waterside (LOWREZJAM 2019)
Visit 4 different locations and vanquish foes. Each stage should take about 1 to 2 minutes.
- 4 unique bosses and a built-in speedrun timer.
- Choose between increasing your max life or your attack power after clearing a stage.
Game created for LOWREZJAM 2019, a game jam where you have to make a game fit within a 64 by 64 pixel resolution.
NOTE: Enemies come in waves, and their placements will always be the same. If you failed a stage, just keep replaying it and memorize the enemy positions.
Also on itch.io: https://justfire45.itch.io/waterside
What games have you had your eye on that you ❤ the most ?
This is by no means a complete list or in any any particular order, but these are definitely some games I thoroughly enjoy playing and playing again and will play again even after I have won them.
Wandering Magic - by @Overkill
Carmina - by @makz
A Messenger's Tale - by @JustFire45
Dungeo The Lich Queen - by @nephilim
Of Ineffable Nature - by @Jimmu
Jack Of Spades - by @BoneVolt
Dusk Child - by @SophieHoulden
Mai-Chan's Sweet Buns - by @Krystman
Celeste v0.1.2 - by @noel
Upward - by @matthias
Feed The Ducks - by @kittenm4ster
Just One Boss - by @bridgs
Minima 1.1.1 - by @Feneric
Dank Tomb - by @krajzeg
Alone In Pico - by @NuSan
Swordfish - by @chowyunbrent
Santa's Christmas Run - by @Tassilo
Charge! (LD39) 1.0 - by @DragonXVI
Kelin's Delivery - Rain v1.2.1 - by @NeithR
The Legend Of Bobby 0.7 - by @AbsolutRenal
The Green Legion v1.03 - by @guerragames
Buzzkill 1.4 - by @morningtoast
Eigengrau 0.1 - by @LeDjinn
Puzzle Cave I and II - by @hackefuffel
Tower Noire I - by @Cow
That's a page right there. I'll try to add more later.
How about you ? What are some of your Pico-8 game favorites ?
And what is it in them that makes them so enjoyable to play for you ? This information could and likely will help game developers across the globe - especially if they happen to be YOU. :)
This is Loose Gravel! A pseudo-3d racer that started as a proof of concept, and gradually grew into something of a game.
If you're curious, you can view the progress here.
Pretty self explanatory. Choose a course and try to overtake the other cars in 3 laps to win.
Courses are randomly generated but have their own unique parameters and feel.
I was planning to add a tournament mode (and some more tracks), but I ran out of cart space (so that means it's finished! :) )
Tip: If you tap the up arrow you will keep accelerating until you hit something or drive off the road. You don't need to hold it down.