MARBLE MERGER
Seems like everybody's making a clone of Suika Game these days - here's mine!
Instructions
Drop marbles into the container - if two marbles of the same size touch each other, then they merge together to form a single larger marble, and you get some points (larger merges have larger value). If a marble comes to rest while going past the top of the container, you lose!
It's an endless game, so post your high scores in the comments!
Extra Thoughts
My main goal here was to make this version of the game look and feel as smooth as I could manage. The three features which are most relevant to that goal are:
- 60 FPS
- Custom "slightly squishy" physics
- Antialiased circle-drawing
I've been thinking about adding a mouse-only mode, which could make the game comfier to play on a phone. Let me know if that appeals to you, or if you have other feature-requests! I'm also happy to answer questions about how any part of the code works.
Changelog
- 1.0.2: Adding a drop-cooldown and antialiasing-toggle in pause menu
- 1.0.1: Adding "circle of evolution" to UI, bugfix in transition-rendering
- 1.0.0: Original upload
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/46088/22_MILK_512.png)
Why is this the most fluid PICO-8 game I've ever played??? Well done!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/14590/2_2bitchuck.png)
Addictive and oh so satisfying! 571 is my best so far, but I think I have a much better run in me.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi10.png)
score of 543!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
603!
983!!!
649!
1005!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
723!!
749!!
739!!
767!!!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi25.png)
I have a suggestion, possibly make the cooldown between drops just slightly longer, I got a higher score spamming than I did thinking about my moves and waiting for things to settle, thanks to the entropy of it bouncing all around
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi3.png)
The physics is so good that I can carefully aim shots to dislodge marbles to make them merge with others. One niggle, however: the movement of the dropper is really frustrating -- it keeps moving a little after I release the button, so I have to move it back and forth trying, and usually failing, to get it lined up where I want.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/14590/2_2bitchuck.png)
![](/media/14590/Screenshot_20231031_144021.png)
Got 1395 this morning! This is such a satisfying game to play, I'm hooked.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/38590/94_Facehugger-Wide.png)
This is fantastic! I can't stop playing it. Well done!
Add some catchy music and this is perfect.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/61900/7_pico-8-pico8-ava-shad.png)
Awesome realization! Why don't you make with @spoke one ultimate game with hes artwork and music and your physics? It will be easily one of the pest pico remakes ever!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/16330/ice cream cone.jpg)
@dredds - that is a pretty wild score! the best i've gotten was just over 1,000.
you're the second person to ask about more precise aiming...another request i've gotten is a pinball-style "tilt" feature, and both of those might want that X button...but maybe i can adjust the way the default movement works (starting slow and accelerating as you hold it longer?) to avoid needing to use the extra button for a "slow movement" mode
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi3.png)
If the other person asking for precise aiming was on Mastodon, that might have been me!
Rather than a tilt feature, how about being able to hold down the "drop" button to launch the marble with more force? And/or being able to adjust the angle with the left and right buttons before releasing the "drop" button?
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/68168/2014_avatar.png)
Niiice! Simple addicting yet challenging at the same time. I have to work harder to reach 1000.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/24137/5_cloud.png)
Amazing game, the physics have just the right amount of squish, impeccable tuning. I love it.
![](/media/24137/10_Screenshot 2023-11-02 at 11.30.26 AM.png)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/16330/ice cream cone.jpg)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/42184/spezkit icon4.png)
I'm not sure if I'm a contender for hittin 2k but I improved 1.5k to 1.6k finally so that made me happy
![](/media/42184/marble_merger_1.png)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/39676/35_buggy.png)
Been looking forward to getting my hands on this.
The squishy physics is so satisfying!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi12.png)
Great game, great physics! Better than the original version. I don't care if there are fruits or balls.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi21.png)
We LOVVVE this game. I'd love to see inertia added, like if your cursor is moving, your marble will take off on an angle. Like, put a little 'english' on it.
My high score is 1356...oddly enough, I think the first time I played it. Got the wife addicted to it.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/24365/4_032f9114ba335736.jpeg)
![](/media/24365/6_Screenshot 2023-11-24 16.28.05.png)
Such an enjoyable and addictive play mechanic, so fantastically executed!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/85320/2_400x400.png)
Ended up here looking for inspiration on physics, ended up having to play a second time to crack 1k (1174) because it's just TOO MUCH FUN
Update: mildly addicted, got to 1600. This is amazingly "immersive" for 16k pixels.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi7.png)
I had to register an account just to let you know how much I love this game. I wish I could buy it on Steam honestly.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](https://www.lexaloffle.com/bbs/files/24045/CymonLogo200White.png)
I'm a simple guy. I see bouncy jiggly balls, I play with them.
Fun game. Very satisfying.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](https://www.lexaloffle.com/bbs/files/12773/pico8-avatar-v4-anim-v2.gif)
Amazing work, the squish adds so much to the gameplay!
First run: 888
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi9.png)
Played it every day since I downloaded it, amazing. The merging and ensuing chaos is so satisfying.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/47515/squidlight.png)
Fantastic job the physics feels great. The antialisaing helps loads.
1135 first attempt
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi12.png)
![](/media/88940/IMG_1401.jpg)
Help, I don’t understand why this game gives an error on my Miyaoo. I download marble_merger-3.p8 - it gives an error.
All the rest of the program is fine.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/16330/ice cream cone.jpg)
@Hedgehog-77 - well that's weird! i've never used that device so i don't really have any guesses offhand, but i'll ask around and see if anyone has any ideas
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/16330/ice cream cone.jpg)
@Hedgehog-77 - someone in some forum thread suggests that it might be related to bad autosave data, so maybe try deleting the autosave file for this game? maybe not good enough if it broke on the first run, but worth a shot i guess. the only info this game actually tries to save is the high-score and the enable/disable antialiasing setting.
i also see someone saying that FAKE-08 struggles with games that were saved from more recent versions of Pico-8 - so maybe it's worth importing the game into an older version of the engine, saving it from there, and then trying with that "old fashioned" .p8 file? i don't think this game is using any brand-new features, so an older Pico-8 build might be able to run it, but it might complain about loading a cart that was made in a newer version - if so, you might be able to gradually reduce the version 41
line at the beginning of the .p8 file until it accepts it. this might cause it to load incorrectly, but it's worth a shot. if that doesn't work, you could also manually copy the game over to a fresh cart in an older version - it's just code and sound effects, no sprites/map. note that lots of sound effect slots are empty on startup and get populated by the code, so if you copy sounds over manually, make sure you get all of them (the last slot with content at edit-time is 26).
a more extreme fix: you could try removing all the dset()
/dget()
calls, since those are the places where it's reading/writing saved data, and maybe that's what messes it up. this would remove support for saving stuff permanently to disk (your highscore and the antialiasing setting), but if you want to try that, it'd need a few small changes to the code:
during startup, antialias=(dget(1)==0)
can be changed to antialias=true
(or false
if you want the game to turn off antialiasing by default), and then inside of inside of toggleantialias()
, the line dset(1,antialias and 0 or 1)
can be deleted entirely. once that is done, you should still be able to toggle antialiasing from the pause menu, it just won't save your choice for later, when you quit and re-open the game. it's worth trying to run it again after making these changes to the antialiasing storage, because this is the one place where it calls dget()
during startup, and maybe that's bad on the device, somehow.
if that doesn't do it, you could try removing the permanent highscore stuff, as well. you'd need to add a new highscore=0
var on startup (next to the edited antialias=true
line would be fine), and then you'd also have to change this bit in resolvecollisions()
:
if score>dget(0) then dset(0,score) end |
...into...
if score > highscore then highscore = score end |
and finally, in drawscore()
, local n=dget(0)..""
becomes local n=highscore..""
. at that point, there should be no more usages of dget()
or dset()
anywhere. it'll track your highscore across multiple playthroughs inside of one launch of the game, but when you quit the game entirely and re-open it, the highscore will reset to zero.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/16330/ice cream cone.jpg)
@Hedgehog-77 - another dev suggests that if you're trying to run it with FAKE-08, you should try this wrapper for real-pico8 instead. he says the game fails for him with FAKE-08, but runs correctly with the real-p8 wrapper (on a Miyoo)!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi15.png)
Excellent excellent game. Well done! Reading through the comments the only suggestion I'd second would be to have a moving curser add a little inertia to the drop. That seems like it would be elegant and in keeping with the game as it stands. not sure it even needs it though.
visuals and sound design are fantastic. If you could add some optional music it would be nice. But it would to be top shelf repetitive tunes to match the standard of the rest of the game :-)
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/bimg/pi/pi4.png)
This game rocks hard, which is weird cos its so squishy at the same time!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
I got 767 Points by Just spaming the O Button and no < or >. Stil a solid game!
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/91237/Belle_happy.png)
This is super fun! I love the physics of the balls, it makes them look extra squishy
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/88208/5_Sprite-0002.png)
![](/media/88208/Screenshot_20240309-085457.png)
Your physics engine doesn't account for a kind and loving god, because no good god would allow for this to happen.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/93493/2_Spr_2g_143.png)
![](/media/93493/4_IMG_1322.jpeg)
Finally broke out of the 1600's! This one took a while.
Love the game.
I've been thinking about what a practice mode could look like... Maybe hitting the 'X' button could skip to the next ball? It's hard to toy with the physics of the bigger balls, about brown stripe and higher, because it's hard to get more than one on screen at a time.
Then of course it doesn't count for high score! :P
[Please log in to post a comment]