Log In  


Hi,

This is a sort of a clone of Arkanoid.
The game isn't complete. Is missing some music and powerups do nothing for now.
The most significant deviation from the original game is the "Powerbar". It loads every time the ball hit bricks and loads faster you hit several bricks in a row before bouncing in the paddle (ship).
When the Powerbar loads enough, the ball can break tougher bricks with one hit, and when its fully loaded it can destroy every brick, until it hits the ship again.

Have fun! Let me know your thoughts and feedback in the comments.

Cart #kinageheye-0 | 2024-09-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

I've been a developer for 15+ years, but this is the first time I'm attempting to code a video game. I love the Pico-8 community and I'm having a great experience coding.

5


Tried the game with infinite lives. Score warps from 32768 back into the negatives. In level 6, the non red ball sometimes manages to go through the yellow bricks. Looks good, still lots to do. The red ball system makes you happy when the ball gets stuck, good way out tricky level brick positioning. Bonuses are such a tease...


What do you mean with infinite lives? Did you change the code?
I also noted the score going negative. Is there a workaround? I probably need to learn more about long numbers in Pico8.

"the non red ball sometimes manages to go through the yellow bricks"
I'll look into it.

Thanks again for you feedback, and trying the game!


I first played normally and noticed that dying, changing level or even a game over does not reset the eventual falling bonus.
I did change the code after that to be able to test every level in one go.

For the overflow problem, there are different ways :

1) you store the score as two numbers (high and low), add score to low, and each time the low number goes over 10000, you substract 10000 from it and add 1 to high. To display the score, just print high and low side by side, with some leading zeroes before low if needed.

2) Or you could use code from others :
there's the low level math way from Felice that uses a number as a signed 32 bits integer.

function s32_tostr(v)
    local s,t="",abs(v)
    repeat
        s=(t%0x0.000a<<16)..s
        t/=10
    until t==0
    return v<0 and "-"..s or s
end

to add to the score you have to shift the gain by 16 bits.
score+=100>>16
to gain 100 points for example.
I'd recommend that one for this game.
it also makes saving the high score be a simple dset() call.

If your game has astronomical scores, like in a clicker game with numbers growing exponentially, you have the string based approach by shiftalow
https://www.lexaloffle.com/bbs/?tid=51451

Saving the high score in string format involves some poking.


Good work, I love it.



[Please log in to post a comment]