Back to overview

Holy smokes, I just released a MiniGolf game for Palm OS in 2024


This is a follow up to my previous post:

Retro Coding Like It's 1999: My Journey into creating a Palm OS MiniGolf Game


This summer, I embarked on a side project to create a brand-new Palm OS game, and after less than two months of intermittent coding, I'm excited to announce that it's ready to be released to the public!


Let me present to you "Captain's MiniGolf (v0.6)":


Besides hoping to have created a fun little MiniGolf game, the strong point of the game is that you can create your own levels:


The game allows you to create your own levelpack databases. Those can be exported and shared with other users, not sure if anyone is going to create these, but it would be fun to see what courses other users can come up with.


Play it!

Don't have a Palm OS device? No problem, thanks to the cloudpilot emulator, you can directly play it from the browser (Get a Palm though, you won't regret it)

Game download and in-browser emulator


Coding for Palm is sometimes harder than I remember

Some things I realized while coding this in C:

- You can really mess things up without the hand-holding that you get in modern programming languages

- Memory leaks happen more often than you think

- Debugging polygon shapes and trajectories can be hard, so having a debug build that visualizes some behind-the-scenes logic is a big help


Programming for an old platform like Palm OS can be difficult because of the lack of documentation, but I used the following 2 reference guides to help me out:

The Palm OS Programmer Companion (part of the Palm OS SDK) Palm OS Programming Bible

There are also some projects up on GitHub of developers that shared the code for their old Palm OS games.


Why bother?!

Palm OS devices have always been close to my heart, from the moment I got my Palm M100 to this very day. The simplicity and elegance of devices that can achieve so much with so little is something we've lost over time. When programming for these devices, you inevitably encounter their limitations, but these constraints encourage you to think creatively and find alternative solutions. Is a function too slow or using too much memory? You have to find another way to do it!

With the excessively performant phones we have today, nobody is going to give it a second look to see if a function could be optimized... cpu makes up for coding mediocrity/laziness.


Known bugs

- The ball can get stuck in a wall

- If you create a level that has a closed polygon of walls within the main playing field walls, the game can't color the background/course correctly.


Improvements

- Add a delete/move level option

- Add a delete and share levelpack option (can be done now using an external application like FileZ)

- Resolution is now fixed to 160x160 (or 320x320 on Palm OS 5 hi-res devices), this should be made dynamic based on the available screen size.


Sharing is caring

I am releasing the full source code (GPL3 license) for this game as well, in the hope that this can inspire or help others to create more games for Palm OS.

Captain's MiniGolf source code


The draft for this article was written on my Palm Zire 72.



You can get in touch through Mastodon:

@rxpz@social.linux.pizza

Holy smokes, I just released a MiniGolf game for Palm OS in 2024 was published on 2024-08-29


Back to the overview


📰 Subscribe to RSS feed 📰