top | item 41514944

A MiniGolf game for Palm OS

325 points| capitain | 1 year ago |ctrl-c.club

95 comments

order

JKCalhoun|1 year ago

Miniature golf was a game I began twice for the Macintosh back in the 1990's but never ended up completing/shipping.

I've just recently been trying to recover my nearly 35 year old sources and create disk images for use on an emulator. The first B&W attempt at MiniGolf is here: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...

The second attempt (when I was a better programmer) was in color ... will make it on Volume 2. (I'm currently trying to put that disk image together.)

aresant|1 year ago

Glider was THE franchise of the 68k mac era, I am more than a little starstruck, glad to see that you are back at it!

ElCapitanMarkla|1 year ago

You have some amazing graphics there. Love the style

InsideOutSanta|1 year ago

I played so much Glider as a kid. This is probably the only opportunity I ever get to say this, so: thank you very much for your games!

yard2010|1 year ago

Thank you John! This repo has a little of everything I love: art, engineering, history, but mostly art. It's truly inspiring.

kleiba|1 year ago

Looks great!

Have you considered adding a "ball dropping into the hole" animation? In the video, it looks like a new level is loaded as soon as the ball and the whole overlap to a sufficient degree. I think from a user's perspective, it would be much more satisfying to somehow see the ball go in. It would give you more of a sense of achievement before the next level is loaded.

What do you think?

capitain|1 year ago

I am considering it now, thanks!

lxgr|1 year ago

Amazing work, thank you!

I'm starting to wonder whether Palm OS and other "retro" homebrew executable formats might have their actual practical uses these days, beyond the nostalgia:

I can run Palm OS .prcs, .gb homebrew ROM from itch.io etc. on my desktop, iOS, and Android, as well as on physical gaming devices; offline, efficiently, distraction-free, without any chance of in-app purchases...

Take Apotris, for example: I've bought (and probably will buy) a lot of official Tetris versions over the years, but here's an incredibly slick implementation I can play on all of my consoles, or even on any computer without installation (thanks to WASM-based GBA emulators like RetroArch Web and modern browsers having native gamepad support).

Besides that, there's just something comforting with having a single, self-contained executable that I know I can in all likelihood run one, ten, twenty years from now – which is probably not true for many iOS or even web indie games I otherwise really like.

rkagerer|1 year ago

I would love a modern Palm OS phone, that's true to the original UI philosophies and could run (even if just through emulation) all my old titles.

snozolli|1 year ago

I wrote code for PalmOS back around '99. One thing that stands out in my memory is the way that applications were tested. I think it was a feature of the emulator, which would fire events at your software. I forget the details, but if you could make, say, 1,000 events without crashing, it was passable, 10k was good, and 100k was excellent.

Well, I thought I was a reasonable competent C++ programmer and I was shocked at how quickly my application would crash using this tool. It was an extremely humbling experience that really opened my eyes. I often think of how effective that simple tool was at revealing bugs, but it's obviously not something that works in today's multitasking, Internet-connected devices.

The other thing I remember is CodeWarrior being the first IDE I used that had a drop-down box with all the functions in the current source file. That was a pretty big step forward in productivity.

Incidentally, I was still using a Palm Tungsten as late as 2010, when I was in Japan. There was a very simple Japanese dictionary application for Palm. Once you learn the basic rules for stroke order and direction, you could mimic any character you see using the stylus and do a dictionary search for matching Kanji. I was able to figure out a lot of navigation just by mimicking unknown Kanji that I saw on signs.

JTyQZSnP3cQGa8B|1 year ago

> drop-down box with all the functions

I remember the “#pragma -“ to separate the functions. We don’t have this anymore. As an alternative we have “#pragma region” to fold blocks of code but it’s different.

sgt|1 year ago

I just had a vision of someone trying to port Rust to PalmOS. Let's hope that never happens.

ASalazarMX|1 year ago

Wondering if I could run this on real hardware, I realized I have no idea what happened to my Palm LifeDrive when I changed to Blackberries. I miss that little chunky PDA. It was amazing for its time.

https://en.wikipedia.org/wiki/LifeDrive

sodaplayer|1 year ago

I just came across my old Palm Tungsten E2 last week while doing some cleaning. If I can also find its charger, I'll report back on running it.

lxgr|1 year ago

The LifeDrive was such a weird Palm!

On one hand I hated it, for its infuriating loading times compared to its predecessors (due to the hard drive spinning up for ~every unexpected memory access of an OS designed for having everything in RAM/ROM and literally no concept of file/block based memory at first) and its relative bulk.

On the other hand: Four! Gigabytes! That could hold more than two full movies! It was also my first Palm having Wi-Fi, which was nice.

All in all, to me it was a symbol of Palm quickly losing touch with modern developments: For example Symbian was miles ahead from an OS point of view, even though usability was nothing compared to Palm OS, and then there was the iPhone and Android, of course.

cebu_blue|1 year ago

I love this and love the art design especially. Great job! The only thing I would change persoanlly is that i think it feels more natural to go in thge opposite direction with the mouse when you're aiming. Many mini golf games on Miniclip used to do it that way. Also if you're a fan of FOSS games i recommend Neverball and Neverput which is a 3d golf similator with nice graphics

aliher1911|1 year ago

Original Palm was using stylus so you don't obscure where you are aiming compared to finger touch phones and having more space in the direction of shot could be the factors.

kstrauser|1 year ago

This is beautiful! And now I'm nostalgic for my IIIxe. Through the rose colored glasses of poor remembrance, that might've been peek productivity in a handheld. It had enough functionality to remember all the things I cared to have on my person at all times, but was utterly lacking in notifications about distractions. It took me a while to quiet my iPhone so that it's not always pestering the hell out of me, but Palm was opt-in. If you didn't tell it to tell you about something, it kept its mouth shut.

I wouldn't actually go back if I could, but part of me misses that.

freedomben|1 year ago

I feel the same. I loved my IIIxe. I'm guessing we'd be horrified at the UX now if we could go back, but at the time it was a huge boost in productivity. The handwriting language was really great. I actually wrote papers on that thing! It was great, I could work on papers while on the bus or travelling, without having to lug around a laptop. Remarkable devices.

Telemakhos|1 year ago

Control over notifications is one of the most powerful UX features available. I make extensive use of geo- and time-based focus modes for the few notifications that I ever allow.

urbandw311er|1 year ago

I love it! Quick suggestion: allow a moment to show the ball dropping into the hole before loading the next level. It might be frustrating denying the player that satisfaction.

zzanz|1 year ago

Interesting project. I would say the issues had, memory leaks. debugging, etc are a lot more common in game dev than you might expect. Much of these problems have been abstracted away by game engines such as Unreal/Unity/Godot, but if you were to go into game dev with C, OpenGL, and a memory restriction (especially when hardware enforced), you might run into the same teething issues.

The level editor is a nice touch, I would be curious on the implementation as something in the same vein existed for the Tony Hawk series of games and was responsible for "Tony Hawks Pro StrCpy" https://icode4.coffee/?p=954 . Though jailbreaking and arbitrary code execution is probably a lot easier achieved via PalmOS than a minigolf side project.

gwbas1c|1 year ago

The game is really fun when played in the browser-based emulator. I nearly got sucked into practice mode.

IMO: I'd love a port (or otherwise inspired by) version for Android / iOS / in-browser. It's really fun.

debo_|1 year ago

I appreciate that you named the source directory `sauce` instead. It's the little things that matter.

sunnybeetroot|1 year ago

I think my OCD would prevent me from ever doing this :’(

capitain|1 year ago

It should be the industry standard imo

geon|1 year ago

You should add a short celebration before loading the next level. The "Loading" text feels very abrupt, like you did something wrong.

Display something like the text "Nice!", and try to avoid covering the hole, so that the player can see the ball disappearing into the hole.

Wait just half a second before you show the loading dialog. You can probably skip the loading dialog entirely if it is as short as it looks like in the video.

harikb|1 year ago

I have the Original PalmPilot, hardware upgraded to 3.0, as part of a beta program. I also have a few Palm 3's. Is there a compiled PDB available?

classichasclass|1 year ago

A Pilot 1000/5000 or the immediate model after?

Also, I think you meant a .prc.

supportengineer|1 year ago

Great job! Just from the video I could tell this is fun. This is what games are supposed to be.

msielski|1 year ago

Ahh good memories. I wrote Pente for PalmOS back in 2004 or 2005, complete with a computer opponent using a minimax tree with alpha/beta pruning. Unfortunately I never finished or released it. It was so much fun to do early mobile development - it compared to nothing else I'd done at the time. And it wasn't easy. This is definitely an accomplishment.

andrewshadura|1 year ago

It would be really cool if someone wrote something like WINE to allow running PalmOS applications on Android.

dmitrygr|1 year ago

It would have similar problems to WINE, without nearly as many developers who understand the bug compatibility required. One project (pumpkinos) tried but there are many apps that don’t work in it. Emulation is easier. And accurate. Source: I believe at this point I am the highest authority left on PalmOS

HumblyTossed|1 year ago

This is really cool and brings back lots of memories. I've a curious question for the game devs among you. One of the things that makes put put fun is the possibility of a hole in one. How do you make sure this is actually possible in a game like this?

post_break|1 year ago

I miss bike or die. For a while it was on iOS but didn’t get updates. I had hours in that game.

wingerlang|1 year ago

Once I got a Zire 31 with PalmOS for Christmas. It became quite a fun treasure hunt to find free games and software for it. And I say treasure hunt because it was like looking for gems among piles of garbage as far as I can remember.

blackeyeblitzar|1 year ago

I am not very familiar with Palm OS, but I do like the idea of a smart device that isn’t a full on smartphone. Something like the old Palm devices or the Pocket PCs from 25 years ago. Is there such a thing today? What gets closest?

xnx|1 year ago

You need to promote this to projectionists so they can play it on their IMAX systems.

71bw|1 year ago

Care to explain? I'm obviously out of some loop here.

mjcohen|1 year ago

For the Amiga, one of my favorite games was "Hole-in-one Miniature Golf."

xrd|1 year ago

The post suggests getting a real device. Where the heck do you get a real device these days? Is there some retro hardware out there? An open source project where you send out a PCB order to Shenzhen?

flymasterv|1 year ago

eBay has new-in-box Zires for $10.

ricardobayes|1 year ago

Amazing game, gives the same level of excitement (and frustration) as playing real mini golf. Thank you!

ceedan|1 year ago

Having up and down slopes on the different holes would be an interesting and challenging addition.

dopp0|1 year ago

Thanks for the memories. Good old times I was programming in SuperWaba for palmOS!

nanna|1 year ago

Is there an app store for palm is, or somewhere you can browse different apps at least?

Yhippa|1 year ago

This made me so happy. I'm going to go look for my Handspring Visor now...

pantulis|1 year ago

This made me remember the Zany Golf bouncy burgers! The hours I spent there!

DevScout|1 year ago

Great work! It's incredible to see projects like this still going in 2024.

xer0x|1 year ago

Wow, I can't believe this! That looks awesome!

yding|1 year ago

As someone who interned at Palm, love this so much!

capitain|1 year ago

Oh wow, do you have any interesting stories from back then? Saw some unreleased prototypes?

tomcam|1 year ago

Let me hijack this with a hate story about my wife and minigolf games.

Back in 1996 she thought maybe she needed a hobby. She was a housewife and we didn’t have any children yet. She said maybe she could do a game. At the time I was working in Microsoft C++ and the Microsoft Foundation Classes framework, building Windows apps. She had never programmed a language more challenging than Turbo Pascal.

When she asked how long it would take to even get started, I estimated about 18 months to learn C++ properly, another six months to learn Microsoft foundation classes. The six months after that to learn the windows API if she worked really hard at it. At the time I thought maybe there was a place in the Windows game market for a mini golf game.

She took less than a week to create a working, bug-free prototype, but then lost interest.

I hate people like that! Everything takes forever for me to learn.

Luckily she blessed me with a passel of pretty much bug-free and absolutely hilarious children, so I’m giving her a pass.

darby_nine|1 year ago

> She took less than a week to create a working, bug-free prototype, but then lost interest.

This is pretty common, no? Same reason why everyone thinks AI will change development: people mistake the initial time cost of building an initial prototype for being representative of the total cost of making the thing people actually demand (which mostly never happens).

al_borland|1 year ago

Is this the difference between learning and doing? You were looking at how long it would take to learn all the foundational technologies, once that was done, she could start to code the game. Where she took the on-the-job-training approach. Work on the project, run into a problem, learn enough to solve said problem. Repeat until done.

I’m usually the learn before I start type as well, though I find it doesn’t really work for me in practice. It ends up becoming a form of procrastination.

ok_dad|1 year ago

> bug-free children

I know you didn't mean anything by it, and it was a pretty funny joke, but children with bugs are pretty cool as well :)

smabie|1 year ago

If you're laser focused on a end product then learning can happen remarkably quickly.