Pilgrimage
An entry to the 2025 PICO-8 1K Jam
You are traveling back to your origin.
It is a journey of 200 steps.
Steps which grow longer, wider, taller, and deeper.
Some may even shift before your eyes.
But take a deep breath. Be patient.
Pay close attention to your surroundings.
You will grow stronger with every step you take.
Your capacity for flight (X) will extend.
It may not be possible to complete all journeys.
But there will be a new pilgrimage every day.
Press X to fly. Collect orbs to extend your flight time. Watch out for moving platforms!
The trial is different daily, but there are always 200 steps.
The Code

Bouncy Ball
v3 2024-05-14:
- skarrmann hidden palette added
- increased chance of seeing secret unlockables
"The depressing thing about tennis is that no matter how good I get, I'll never be as good as a wall."
Game Guide
It takes a steady paddle...
The paddle imparts its speed on the ball, so keep it steady or use this to your advantage to control the ball.. if you can keep up with it!
Modifiers
Modifiers will refresh along the back wall every 5 bounces. Some will give you an advantage, others a disadvantage. Be careful what you land on!
This is pretty simple but I thought some devs might find it useful as an easy way to add a minimap to your game. It uses tline to draw a miniature version of the full map area to screen (during your _draw loop):
for i=0,64 do tline(0,32+i,128,32+i,4/8,4/8+i,1) end |
The representative pixel is drawn from the center (4/8,4/8) of each sprite, but you can alter this if you want a different selection.
Here's an example of what this looks like in Celeste:
And here's Air Delivery with this line added:
Obviously it can be a bit messy raw, but it's accurate. For your own project, you could put this against a solid background color in your pause menu, for example. And then you might add an indicator for player position ;)
I hope this can be useful out there!

Shimmerscale
NOW IN GLORIOUS QUADRACOLOR
Consuming 239 chars because I didn't bother to minify further:
cls(13)s=sin a=12b=4 ::_:: t=time()/4 for i=0,36 do for j=0,42 do r=(i+1.4*j)/64 m=12*s(t+r) x=-8+4*i+3.4*s(t+r-.25) y=-20+4*j+8*s(r) if(btn(β))a=11b=5 if(btn(π ΎοΈ))a=12b=4 o=a+(i/3+j/3+t*16)%b line(x,y-m,x+1,y-m+s(t+r+.75),o) end end goto _ |
Press β to activate CHROMATOSIS:
An experimental bleeding-edge 5-color mode
Feel free to use/modify this effect for your projects!
a is the starting color and b is how many subsequent colors in the palette to use, so you can alter this to use any colors you want using pal({}) and those two variables. Note that the effect relies on not using cls() so this would be best suited to a splash screen or menu, or for use with clip()

I've been working on a little tweetcart so that I might have something to actually release while still at work on more ambitious projects.
I was able to get it down to 272 chars. It runs at 60fps.
Edit: Used up the last few characters fixing a bug, refining the decay and adding some slight interactivity. Some chars can probably be reclaimed by combining the loops somehow (and using goto instead) but I'll probably just leave it at this.
It starts slow and continues building over time. Enjoy!






5 comments

