PICO-BALL: a Sports Game Starring Jelpi
by Munchkin
A PICO-8 sports game starring Jelpi!
[8x8]
Play solo or together in a mashup of tennis, volleyball, squash, and wallball where the only
rule is:
two bounces on one side is a point for the other.
Controls
The controls should all be in the game, but for those who aren't familiar with PICO-8: ESDF is
used for player 2 instead of WASD so it works on many international keyboards as well as
QWERTY.
I recommend that those playing with controller or you PICO-8 veterans go to 'game settings'
from the pause menu to make the controls work better for controllers and z/x keys. The game is
playable with just arrow keys for each player, but it may make things a little harder for some
if the settings aren't changed.
Gamemodes
Solo
🏆Campaign: Help Jelpi ascend the ranks and meet an old comrade...
🧱Wall: Play a solo match against the wall (The Unbeatable Opponent) to see how long
you last (powerups come in handy here)
👁️Spectate: Watch opponents you have unlocked in campaign play against each
other, can help you figure out how to beat a tough opponent (could be together...)
Together
👊💥Versus: Face each other in a PICO-BALL match, powerups add a lot of depth,
craziness and sillyness
🤝💖Co-op: Work together to keep the ball(s) in the air (the powerups both aid
and hinder your juggling ability)
Campaign Opponents 💥🏆
Strider
[8x8]
Newcomer to the game, has a hard time getting shots that go way over their head
Heli
[8x8]
There isn't a rule against flying, but luckily this helicoper-creature isn't too good at
catching up to a quick-moving ball
Frog
[8x8]
[8x8]
A dapper frog that uses his tongue for some crazy trick shots (which work about half of the
time)
Bird
[8x8]
This opponent is actually good at flying and is not afraid to come over to your side, so
well-placed aggressive shots are the way to go here
Mimo
[8x8]
Jelpi's old friend and comrade with the same moves, gets more aggressive as the game goes on,
which can be taken advantage of...
You can wear hats that you unlock from beating each opponent!
[40x8]
So,
[56x16]
Have fun!
---------------------------------------
.
.
.
Development Notes
I had the idea for this game in the shower somewhere around three months ago from today. A
simple multiplayer tennis-like that would be a fun, small little project. As you can probably
see, this game didn't quite live up to that second adjective, but I'd say it has successfully
fulfilled the first one (which is the more important one).
First I made a prototype with boxes and a non-functional net and the game proved to be fun! I
had yet to fine tune the physics though, so it was a pretty chaotic and janky (even moreso
than it is now :). Then I decided I needed to replace the boxes with characters. I had a hard
time coming up with any humanoids within such small pixel counts...
[40x16]
Then, I had the idea of using Jelpi! (Jelpi is PICO-8's demo/example mascot for those who
don't know) I'm so glad this bolt of inspiration struck me because it drastically changed the
way the game was shaping up for the better. It gave me so many ideas for stories, situations,
opponents, modes, and also gave the game a good artstyle (sorry old doodles of mine still at
the back of the match-cart sprite-sheet...)
[8x8]
[8x8]
What's funny is that the menu cart's file size is bigger than the game cart's (this is a
multi-cart game with two game files, one for the menus and cutscenes and another for the
gameplay). I've also spent about the same amount of time working on both, which is rather
ironic. I had to do a lot of token-saving on the menu cart, because the cutscenes take a lot
of data, or at least they do in the way I programmed them. This was also my first time putting
a lot of effort into a somewhat complex menu, leading to the increased time and spaghetti code
invested there. If I were to do it again, I would probably do it quite differently.
I had a lot of fun conjuring up the story and making those cutscenes along with remixing the
Jelpi music! I've remixed the main song for the title screen and one of the match themes, and
the jungle and dragon theme for the other two match songs. The first half of jungle themed one
ended up being based off of a song I made for fun a couple of months ago, unrelated to the
game, the baseline/intro-melody being stolen directly from that. The dragon one is pretty
untouched from me compared to the other tracks. My main addition of the raspy melody is
supposed to be like the dragon's roar (it's based off the sound effect used in the intro
cutscene), but I don't think that's very obvious.
Intro -> Menu Theme (starts at pattern 10):
[sfx]
The Three Match Tracks (patters 0, 16, and 32):
[sfx]
These tracks take three channels sometimes, and due to all the rapid sounds in-game they
occasionally cut out, but I've tried to make it not too noticeable and I think it's worth it.
Balancing the opponents was tough because their difficulty changes a lot based on your
playstyle. It's normal if you find the Bird or the Frog harder than Mimo, but hopefully you
find Mimo a bit tougher than the Strider!
Over the first two months I was pretty inconsistent with my work on the game (I was also busy
in those months), but in the last month I've done a ton of work which has brought me to
finally complete the project! I'm really happy I used Jelpi for the project, not only because
the project was positively affected, but because I feel like there aren't enough Jelpi based
games. The only complete Jelpi game I can think of is Pico-Ware, so being able to add to the
Jelpi universe is great. We've got to thank Zep for making these adorable characters.
If you want to try making a custom opponent it should be somewhat doable, I've put some simple
instructions in the match-cart files. First use load #pico_ball_match and then follow what's
in the top of that part. Be warned that a lot of my code in all of this project is a rather
messy and uncommented.
Thanks for reading all these development notes! I'm glad someone's interested in them!
version history
By the way, the current version is visible in the in-game credits, it's currently 1.1.2.
The numbers go, gameNumber.featureUpdate.patchNumber.
It's quite likely that I'll have to fix a bug, and I might add some extra hats in the future
(I didn't have time to rework the code to allow extra hats from co-op and wall high scores if
I wanted to get the game out in July) so the latter two numbers may change, but I don't plan
to make a sequel, so the first one probably never will!
1.0.0: original release, 7/29/2025
1.0.1: patch, 7/30/2025; tweaked strider speed range, slowed the bird slightly to make
the match a little easier, fixed the "rewatch intro" pause menu option from replaying the
intro incorrectly when chosen while in a submenu, allowed spectate to let you see matches with
the next opponent you have to beat in the campaign, removed arrows/esdf text from this
Lexaloffle version (for console authenticity and because the people here are already familiar
with PICO-8)
1.1.2: features+patch, 7/31/2025; reduced bird force slowed the bird slightly to make the
match a little easier, fixed hollow particles showing up as filled in cutscenes, fixed bug
where replaying an opponent would reset your save data to as if you had just beaten them for
the first time, added ability to see your best match scores against each opponent, added a
star on the campaign and home screen if you've beaten the game (or gotten the secret hat),
added a secret hat for completionists!
1.1.3: patch, 8/5/2025; fixed crash that occurs when completing matches with a double-digit
score, fixed unnecessary double loading on menu when winning a campaign match, made transition
peephole cover the winner card when a new match is quickly chosen