Hello everybody! This is an early beta version of the adventure game "Become a King".
![]() |
[16x16] |
How to play:
arrows - move the cursor
Z - make a move
X - open menu
Updates:
0.1 - added pieces
0.2 - added map
0.3 - added text windows and dialogs
Write suggestions for the game in the comments, I will be glad to receive any comment.

About
I created a racing game.
Original inspiration:
https://www.mameson.com/beforeweb/gekiso_racing.html
https://www.youtube.com/watch?v=CPjtxpXzSeo
Race Mode

You can choose from practice, easy, normal, and hard.
For hard mode, I haven't been able to clear any course other than the first one (EIGHT), but theoretically, it should be possible.
If there's a course that feels absolutely impossible, please let me know.
Controls
Left/Right - Steer
X - Accelerate
Edit Mode

You can create your own courses.
Controls
Left/Right/Up/Down - Move the cursor
Sorry, I'm stop make new games and i'm deleted my games
Check my new account https://www.lexaloffle.com/bbs/?uid=125952
2024-2025



podtree number / string bug
In podtree if a number is overwritten with a string it remains as a string, even if the user re-enters a number. For example in /appdata/system/code.pod change selcol to "yellow" then back to 10. 10 remains as a string. And results in the code highlighting to go awry (see image) until code.pod is deleted and reset by app.
This is minor, but I was hoping to offload all app settings to podtree,(ie stay in picotron os / app world) without recreating a settings pane, or having to save back to a pod from the app.


Finished my first PICO-8 game! A farming game heavily inspired by SpaceCat's farming game tutorial, but with my own twists, gameplay mechanics and visuals!
Update 1.1 fixes the overflowing highscore, as well as slightly changing how the score is calculated and adjusting the prices for tomatoes and tomato seeds.




Precision Drift in t() Over Long Uptimes
Bug Description
Over hours, floating-point division yields cumulative precision drift.
This results in noticeable glitching in all applications that derive any of their values from t()
at any point during their _update()
or _draw()
functions.
Summary
- Root cause:
lua54_time()
uses60.0f
(32-bit), resulting in precision drift - Fix: change
60.0f
=>60.0
- Alternatives: new
stat(STAT_SEC_TICKS)
orstat(STAT_TICKS_RUNNING, n)
If this is behaving as intended or you go with the "Fix", I implore you to consider implementing one of the stat()
solutions!
Context
time()
is the lua-side of the c functionlua54_time()
lua54_time()
returnscproc->ticks_running / 60.0
as a lua_Numberticks_running
is a once-per-tick integer counter- (tick = 1/60 seconds) =>
t()
increments ~0.01667 seconds per tick
- (tick = 1/60 seconds) =>
- No reliable sub-second API for long-running apps

Officially, you can't use multiple data storage one one program.
This feels mostly true, but very similar in spirit to statements like "pico-8 has 16 colors".
"cartdata() can only be called once per program", is already less restrictive :
You could have a game that uses 3 save slots, each with a different cartdata ID because each save requires most or all of the 256 bytes of a cartdata storage, and let the player choose his slot at start of the program. You'd only ever call cartdata once per game session, but would have three storage slots used in one program.
This would still not be great because you can't display any info about the slots before loading them so the player would have to blindly load a slot, see if it's the save he intended to use, and reset the game if he made a mistake.
Could we do that programmatically ? Turns out that yes, we can :
extcmd("reset")
Does reset the cart. Problem is, how do we remember what the previously viewed storage was, or what we were doing before triggering the reset ?
They say your first game should either be a Pong/Breakout clone, or a Space Shooter...why not both?
Here is GalaPong! A simple high-score space shooter with a twist. You have to keep the ball in play while fending off against these invaders.
There are three different difficulties to try.
Easy for a breezy playthrough
Medium for a balanced challenge
Hard for a real challenge
O fires a shot, and X increases the paddle speed.
Be careful, you can only have 2 shots out at once!
See how far you can build your score!
1 Point: The ball bouncing off the walls
10 Points: Shooting an enemy
20 Points: Bouncing the ball off your paddle
30 Points: Hitting an enemy with the ball!
Enjoy!


I'm a newbie and I'd like to learn procedural generation to add things like dynamic grass and vegetation to my game. I really like how Zep created the swaying trees in the fireflies gif for the 0.2.4 release, so I thought I'd examine his code. But I'm having some trouble parsing it because the function seems to call itself. I'm assuming this is what's called a recursive function.

How does the function know to stop calling itself? I'm guessing the if statement regarding the l variable terminates it but how? I'm confused because, to my mind, logically, there should be an "else" following the if/then to call the function again. What is the point of the return command?
Here is his function for drawing the trees:
function tree(x,y,a,l) if (l<3) then for ii=0,3 do circfill( x+rnd(8)-rnd(8), y+ii, 1,lcol[4-ii]) end return end local x1=x+cos(a)*l local y1=y+sin(a)*l local q=l/8 local col=l>8 and 13 or 0 for xx=-q,q do line(x+xx,y,x1+xx,y1,col) col=0 end local d= ( cos(t()/3+x1/50)+ cos(t()/4+x1/70) )/500 tree(x1,y1,d+a-.04-rnd(0.04),l*(.9-rnd(0.2))) tree(x1,y1,d+a+.04+rnd(0.04),l*(.9-rnd(0.2))) end |
Thanks!


Tunedle
A Musical Wordle Tribute
A little melody game where you have 6 attempts to guess a random melody with wordle-like feedback. "Easy Mode" will add note labels to your previous attempts. When Easy Mode is off, you have to play by ear (and can only listen to your last attempt).
This was a fun to put together and I am fully incapable of playing this game with easy mode off, but I figured for some more talented and musical people it might be a fun challenge.