Games > SPEED


Reach for the stars
made by Andrey Listopadov
uploaded by andreyorst
language: fennel
added:
updated:
download cartridge
- CLICK TO PLAY -

7


Spring Lisp Game Jam 2026 entry.

A precision platformer with the focus on obtaining and maintaining speed.

Collect powerups, escape the caverns, and reach for the stars!

A write-up about the development process: https://andreyor.st/posts/2026-05-24-spring-lisp-game-jam-2026

Tips for playing:

- When doing extended jumps, release the direction buttons to avoid losing speed
- Press the slide button preemptively instead of timing your slides
- Release the slide button when under a low ceiling, the slide will continue, and you'll be able to jump immediately after (jumping doesn't work when the slide button is held)
- If you don't know how to make a certain jump, try doing it without jumping (????)
- Game menu features a static camera and an option to toggle off music

Share your completion time and retries!

Attributions:

- Original music by https://whoisthatdf.bandcamp.com/, TIC-80 port by andreyorst
Palette: https://lospec.com/palette-list/urbex-16

Update 16-07-2026:

- added new camera: a blend between follow-the-player, and snap transition
- removed 2544 colliders that couldn't be reached by the player (optimization)
- merged remaining single-tile colliders into longer horizontal/vertical strips (optimization)

Update 20-07-2026:

- merged more colliders

Update 03-09-2026:

Major graphical overhaul:

- new parallax background with custom palette
- some foreground sprite fixes and changes
- new default camera that follows the player, with per room/region boundary
- background animations and proper color change for biomes

If you wish to play the original version of the game as it was submitted to the jam, you can do so on itch.io: https://andreyorst.itch.io/speed

Comments


andreyorst

Made a TAS speedrun for this game with a few skips and some crazy movement https://youtu.be/OyRDwPJh-m4

andreyorst

Updated the TAS speedrun, making it faster by ~26 seconds:

https://www.youtube.com/watch?v=DChIxczuQZI

frzysk

was sick thanks

urassari

great game, but I hate that I have to release down in order to jump. it makes things way harder for no reason

andreyorst

well, it's hard to jump from a sliding position... I mean, the character here is no Kazuya Mishima from Tekken nor Richter Belmont from Castlevania :)

andreyorst

phew! finally managed to do a deathless run in 00:02:42.704

God0909

結構面白いこのゲーム

God0909

めっちゃ死にまくってる

DcyD3

I like the GX (the rocks are incredible !) concept is HARD to master but VERY VERY GOOD
1st level go left for take speed ... and YES you will die often !!!! very very very very often ! THX !!!

DcyD3

i think i understand how to parallaw but not sure : 1/ MAP (0,0) when player move x-1 or x+1 but there is sprite in front(x,y) and at all frtame you draw it ? with x-4 x+4 ??? if yes very interesting !!! THX

andreyorst

I have a camera system that uses map() to draw the level, and it has a method for translating sprite coordinates from world space to screen space. So the camera object is both a rendering pipeline for the level and the objects in it. That's a general idea of how a single layer is rendered.

Because the camera draws from a set of coordinates, for parallax I shift these coordinates by a certain factor, and it gives the offset with which I draw the background.

So, both foreground and background are just map() calls, but sprites for the background come from a different bank, which I have to sync() every frame. Since sync() works only once per frame, I have to draw the foreground, sync, draw the background, and on the next frame I draw the background first, sync(), and then draw the foreground. The order changes each frame, allowing rendering from two banks seamlessly.


Post comment