Minigolf-Spiel für Palm OS
(ctrl-c.club)- 2024 wurde mit Captain's MiniGolf v0.6 ein neues Minigolf-Spiel für Palm OS veröffentlicht, das in knapp unter zwei Monaten mit gelegentlichem Coden fertiggestellt wurde
- Der Kern ist eine Struktur, bei der Spieler selbst Levelpack-Datenbanken erstellen, exportieren und mit anderen Nutzern teilen können
- Auch ohne echtes Palm-OS-Gerät lässt es sich direkt im Browser über den cloudpilot-Emulator ausführen
- C und die alte Palm-OS-Umgebung zeigen erneut Entwicklungsgrenzen wie Speicherlecks, Polygon- und Flugbahn-Debugging sowie fehlende Dokumentation
- Der Quellcode wurde unter der GPL3-Lizenz veröffentlicht und kann anderen als Referenz beim Erstellen von Palm-OS-Spielen dienen
Veröffentlichung von Captain's MiniGolf v0.6
- Captain's MiniGolf v0.6 ist ein 2024 neu entwickeltes Minigolf-Spiel für Palm OS
- Es begann als Sommer-Side-Project und wurde nach weniger als zwei Monaten gelegentlichen Codens veröffentlicht
- Das größte Merkmal ist, dass Nutzer selbst Levelpack-Datenbanken erstellen können
- Erstellte Levelpacks lassen sich exportieren und teilen
- Spannend bleibt, welche Kurse andere Nutzer erstellen werden
- Auch ohne Palm-OS-Gerät kann es über den cloudpilot-Emulator im Browser ausgeführt werden
Entwicklungserfahrung mit Palm OS und veröffentlichte Materialien
- Beim Erstellen eines Palm-OS-Spiels in C zeigte sich erneut, dass kleine Fehler ohne die Schutzmechanismen moderner Sprachen zu größeren Problemen führen können
- Speicherlecks traten häufiger auf als erwartet, und auch das Debugging von Polygonformen und der Flugbahn des Balls war nicht einfach
- Ein Debug-Build, das die interne Logik visualisiert, half erheblich bei der Fehlersuche
- Für Palm OS gibt es nur wenig Dokumentation, was die Entwicklung erschwerte; die folgenden Materialien dienten als Referenz
- Bekannte Bugs sind ein Problem, bei dem der Ball in Wänden hängen bleibt, sowie ein Fehler, bei dem Hintergrund- oder Kursfarben nicht korrekt verarbeitet werden, wenn innerhalb des Hauptspielfelds ein geschlossenes Wandpolygon erstellt wird
- Geplante Verbesserungen umfassen das Löschen und Verschieben von Levels, das Löschen und Teilen von Levelpacks sowie die Unterstützung dynamischer Auflösung je nach Bildschirmgröße
- Die aktuelle Auflösung ist fest auf 160x160 eingestellt
- Auf hochauflösenden Palm-OS-5-Geräten läuft es mit 320x320
- Der vollständige Quellcode wurde unter der GPL3-Lizenz veröffentlicht
- Der Entwurf wurde auf einem Palm Zire 72 erstellt
1 Kommentare
Meinungen auf Hacker News
In den 1990ern habe ich zweimal angefangen, ein Minigolf-Spiel für den Macintosh zu entwickeln, es aber nie fertiggestellt oder veröffentlicht.
Vor Kurzem habe ich damit begonnen, den fast 35 Jahre alten Quellcode wiederherzustellen und Disk-Images für den Einsatz in Emulatoren zu erstellen. Der erste Schwarz-Weiß-Versuch von MiniGolf ist hier: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
Der zweite Versuch war eine Farbversion, die ich erstellt habe, als meine Programmierkenntnisse besser waren, und sie soll in Volume 2 enthalten sein. Ich setze dieses Disk-Image gerade zusammen.
Toll!
Ich frage mich, ob du darüber nachgedacht hast, eine Animation einzubauen, bei der der Ball ins Loch fällt. Im Video sieht es so aus, als würde ein neues Level geladen, sobald sich Ball und Loch ausreichend überlappen.
Aus Nutzersicht wäre es vermutlich deutlich befriedigender, zu sehen, wie der Ball tatsächlich hineinfällt. Außerdem würde sich vor dem Laden des nächsten Levels stärker ein Erfolgserlebnis einstellen.
Großartige Arbeit, danke!
In letzter Zeit denke ich, dass Palm OS und andere Retro-Homebrew-Executable-Formate vielleicht einen praktischen Nutzen haben könnten, der über Nostalgie hinausgeht.
Dinge wie Palm-OS-
.prc-Dateien oder.gb-Homebrew-ROMs auf itch.io lassen sich auf Desktop, iOS, Android und echter Spielehardware ausführen, funktionieren effizient offline, sind ablenkungsfrei und bieten keine Möglichkeit für In-App-Käufe.Nimmt man zum Beispiel Apotris: Ich habe im Lauf der Jahre viele offizielle Tetris-Versionen gekauft und werde das wahrscheinlich auch weiter tun, aber das hier ist eine sehr ausgereifte Implementierung, die auf allen Konsolen läuft. Dank WASM-basierter GBA-Emulatoren wie RetroArch Web und nativer Gamepad-Unterstützung moderner Browser kann man es ohne Installation auf fast jedem Computer spielen.
Außerdem gibt einem eine einzelne eigenständige ausführbare Datei ein Gefühl von Sicherheit, weil sie mit hoher Wahrscheinlichkeit auch in 1, 10 oder 20 Jahren noch laufen wird. Für viele meiner liebsten iOS-Spiele oder Indie-Webgames gilt das vermutlich nicht.
Um 1999 herum habe ich Code für PalmOS geschrieben. Besonders in Erinnerung geblieben ist mir die Art, Anwendungen zu testen.
Ich glaube, es war eine Emulator-Funktion, die der Software fortlaufend Events zugespielt hat. Die Details habe ich vergessen, aber sinngemäß galt: Wenn die App 1.000 Events übersteht, hat sie bestanden, 10.000 waren gut, 100.000 hervorragend.
Ich hielt mich für einen ziemlich ordentlichen C++-Programmierer, aber als ich dieses Tool benutzte, war ich schockiert, wie schnell die Anwendung abstürzte. Das war eine ziemlich demütigende Erfahrung und hat mir die Augen geöffnet.
Ich denke oft daran, wie effektiv so ein einfaches Tool darin war, Bugs aufzudecken, auch wenn ich vermute, dass derselbe Ansatz auf heutigen Multitasking-Geräten mit Internetverbindung nicht mehr direkt funktionieren würde.
Außerdem erinnere ich mich daran, dass CodeWarrior die erste IDE war, die eine Dropdown-Box mit allen Funktionen der aktuellen Quelldatei hatte. Für die Produktivität war das ein ziemlich großer Schritt nach vorn.
Nebenbei: Selbst 2010, als ich in Japan war, benutzte ich noch einen Palm Tungsten. Es gab eine sehr einfache Japanisch-Wörterbuch-App für Palm; wenn man die Grundregeln für Strichreihenfolge und -richtung kannte, konnte man mit dem Stylus ein gesehenes Zeichen nachahmen und passende Kanji suchen. Indem ich unbekannte Kanji auf Schildern nachzeichnete, konnte ich mir beim Zurechtfinden ziemlich oft helfen.
> drop-down box with all the functionsIch erinnere mich an
#pragma -, mit dem Funktionen getrennt wurden. So etwas gibt es heute nicht mehr. Als Alternative gibt es#pragma region, um Codeblöcke einzuklappen, aber das ist etwas anderes.Als ich darüber nachdachte, ob man das auf echter Hardware laufen lassen könnte, wurde mir klar, dass ich überhaupt nicht weiß, was aus meinem Palm LifeDrive geworden ist, als ich auf BlackBerry umgestiegen bin.
Ich vermisse diesen kleinen, pummeligen PDA. Für seine Zeit war er wirklich beeindruckend.
https://en.wikipedia.org/wiki/LifeDrive
Einerseits mochte ich ihn wegen der im Vergleich zu früheren Geräten frustrierenden Ladezeiten nicht. Das OS war ursprünglich dafür ausgelegt, alles in RAM/ROM zu halten, und kannte anfangs nicht einmal das Konzept von datei- oder blockbasiertem Speicher. Dadurch weckte fast jeder unerwartete Speicherzugriff die Festplatte auf. Außerdem war das Gerät vergleichsweise klobig.
Andererseits hatte er 4 GB. Man konnte mehr als zwei komplette Filme darauf speichern. Es war auch der erste Palm mit Wi-Fi, was schön war.
Insgesamt wirkte er auf mich wie ein Symbol dafür, dass Palm den modernen Entwicklungen schnell hinterherlief. Symbian war zum Beispiel in Sachen Bedienbarkeit nicht mit Palm OS vergleichbar, war aus OS-Perspektive aber viel weiter; später kamen dann natürlich iPhone und Android.
Gefällt mir wirklich sehr, besonders das Art Design. Tolle Arbeit.
Was ich persönlich ändern würde: Beim Zielen fühlt es sich für mich natürlicher an, die Maus in die entgegengesetzte Richtung zu bewegen. Viele Minigolf-Spiele von Miniclip haben das früher so gemacht.
Wenn du freie Open-Source-Spiele magst, empfehle ich Neverball und Neverput. Neverput ist ein 3D-Golfsimulator mit ordentlicher Grafik.
Wunderschön! Dadurch vermisse ich meinen IIIxe
Durch den ungenauen rosaroten Filter der Erinnerung betrachtet, war das vielleicht ein Gerät, mit dem Produktivität auf tragbaren Geräten fast ihren Höhepunkt erreicht hatte. Es hatte genug Funktionen, um mich an Dinge zu erinnern, die ich ständig bei mir trug und im Blick behalten wollte, aber es fehlten völlig die ablenkenden Benachrichtigungen.
Es hat eine Weile gedauert, bis ich mein iPhone so ruhiggestellt hatte, dass es mich nicht ständig nervt, aber beim Palm war die Standardeinstellung Opt-in. Wenn man ihm nicht ausdrücklich sagte, dass es einen über etwas informieren soll, blieb er still.
Tatsächlich würde ich nicht zurückwechseln, wenn ich könnte, aber irgendwie vermisse ich es trotzdem.
Wenn ich heute darauf zurückblicken würde, wäre ich von der User Experience vielleicht entsetzt, aber damals hat es meine Produktivität enorm gesteigert. Auch die Handschrifteingabesprache war wirklich großartig. Ich habe damit tatsächlich Berichte geschrieben.
Es war großartig, im Bus oder unterwegs schreiben zu können, ohne einen Laptop mitzuschleppen. Das waren beeindruckende Geräte.
Gefällt mir! Ein kurzer Vorschlag: Bevor das nächste Level geladen wird, wäre es schön, dem Moment, in dem der Ball ins Loch fällt, kurz Zeit zu geben. Wenn man den Spielern dieses befriedigende Gefühl wegnimmt, kann das frustrierend sein.
Ein interessantes Projekt. Probleme wie Speicherlecks oder Debugging sind in der Spieleentwicklung deutlich häufiger, als man denkt.
Viele dieser Probleme werden heute von Game Engines wie Unreal, Unity oder Godot abstrahiert, aber wenn man Spiele mit C, OpenGL und Speicherbeschränkungen entwickelt, kann man dieselben frühen Stolpersteine erleben – besonders wenn die Hardware die Grenzen erzwingt.
Der Leveleditor ist ein schönes Element. Mich würde die Umsetzung interessieren; in der Tony-Hawk-Reihe gab es eine ähnliche Art von Funktion, aus der Tony Hawks Pro StrCpy hervorging: https://icode4.coffee/?p=954
Allerdings dürften Jailbreaks oder die Ausführung beliebigen Codes unter PalmOS viel leichter zu erreichen sein als ein Minigolf-Nebenprojekt.
Ich habe es im browserbasierten Emulator ausprobiert, und das Spiel macht wirklich Spaß. Ich wäre im Übungsmodus fast komplett versunken.
Es wäre schön, eine Portierung oder eine inspirierte Version für Android, iOS und den Browser zu haben. Wirklich spaßig.