For about a week now, I've been working on a clone of the game JezzBall for HP Prime in Python. The game will feature several modifications compared to the classic version. Currently, it's in a very early pre-alpha stage, and there's still a lot to do (and a lot may still change), but at this point I can say that the ball physics have already been refined.

Collisions are now working both with walls and between balls, taking into account their speed their speed and angle of impact. Area splitting and filling also work.

Collision detection with the splitter hasn’t been implemented yet — for now, balls simply pass through it until it closes off an area.

Although Python on HP Prime is quite fast, handling real-time ball physics with a larger number of objects turned out to be a significant performance challenge. For a moment, I thought creating this port without resorting to low-level programming would be impossible. However, thanks to several key optimizations, I managed to achieve smooth animation with 40 balls on screen, complete with full physics support, running at 28 fps on G1 (and significantly more balls on G2).

Below is an animation showcasing the current state of the implementation. (Note: the animation in this recording may appear choppy compared to how it runs on the actual device.)

I've made some small improvements.
There's now collision detection with the splitter, a brick texture as the background, and an initial implementation of painted area calculation and visualization. Horizontal and vertical cursor sprites have been added, and some general performance optimizations were also implemented.

It's almost ready Smile



I just need to add a score counter and tweak the filled-area indicator a bit, because right now it looks a little clunky.
The final version is here! Very Happy

Changes introduced:
  • Ball color changed to blue
  • Cursor color changed to red, with added animation to make it more visible on the playfield
  • Fill indicator now shows the filled area percentage and the required threshold to complete the level
  • Added score counter.
  • Added level completion and game over messages.
  • Frame rate increased to 30 frames per second


Download:
http://ceme.tech/DL2643
Since the initial release (v1.00), several updates to JezzBall have been published.

Two minor updates (v1.01 and v1.02) were mainly bug-fix releases and introduced some performance optimizations. Then, v1.10 was released, adding high score tracking and saving, along with displaying the high score on the title screen.

However, the most significant changes were introduced in v1.20:
Thanks to a substantial performance boost in this version, the rendering speed was increased from 30 to 50 FPS, resulting in much smoother animation and significantly improved gameplay quality.
Additionally, the entire application code was compressed. An LZ77 algorithm optimized for fast decompression is used, allowing the code to be decompressed in under 150 ms on the G1 and 70 ms on the G2 when the game is launched. The decompressor reads the compressed file, decompresses it directly into memory, and then runs it.

This approach allowed the application size to be kept very small.

For more details, please refer to the documentation included in the archive.



http://ceme.tech/DL2643
This is really well made, congrats Smile
Adriweb wrote:
This is really well made, congrats Smile


Thanks!

I think there’s still quite a lot that could be improved in this game, but for now, I’d rather focus on creating my next game than polishing this one yet again...
This is really cool! I've only gotten to level 7 but it's quite fun and extremely well performing. Well done! You should also upload this to https://www.hpcalc.org/
TheLastMillennial wrote:
This is really cool! I've only gotten to level 7 but it's quite fun and extremely well performing. Well done! You should also upload this to https://www.hpcalc.org/


Thank you so much for the kind words! I'm really happy to hear you're enjoying the game Smile

Just as a note, I actually submitted it to hpcalc.org the same day I uploaded it to the Archives here. As you probably know, hpcalc.org is updated rather infrequently, so it should appear there once the site is refreshed.

Besides, Reversi Prime — which I published back in early March and put a lot of heart into, especially the animations — is also still waiting to appear on hpcalc.org.
Update available (v1.21 - 2025-05-17):

This version introduces an option to reset high scores. The app is now slightly smaller, thanks to an improved compression algorithm that not only reduces file size but also provides noticeably faster decompression. The app has also been improved to use less RAM during operation.

This is likely the last update, as I do not plan any further work on this project (except in the event that a future firmware version requires an adjustment for the game to work properly).
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement