Mea's Castle - (sehr) kleines Mini-Metroidvania in PICO-8

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von Astorek86, 7. September 2020.

  1. Astorek86

    Astorek86
    Registriert seit:
    10. Juni 2016
    Beiträge:
    74
    (Link gibts ganz unten)

    Hi @ all,

    Nachdem hier im Entwickler-Unterforum fast ausschließlich Projekte und Spiele vorgestellt werden, die irgendwie alle auf den Stand zwischen AA- bis AAA-Produkten balancieren, dachte ich, ich stelle zur Abwechslung mal mein kleines Baby vor, an das ich vielleicht einen Monat gearbeitet habe. Nicht dass man hier Erwartungsdruck o.Ä. verspüren würde :topmodel: . Ich will mein Projekt aber auch mehr aus der Sicht eines Programmierers und weniger aus Sicht eines "Verkäufers" schildern; ich habe nicht wirklich vor, mir mit Spieleprogrammierung meinen Lebensunterhalt zu finanzieren. Und ich gehe mal ganz stark davon aus, dass dieses Unterforum auch hauptsächlich Entwickler besuchen und weniger die Leute, die hier einen neuen Call of Duty-Battle-Royale-Teil zum Herunterladen erwarten^^.

    Kurz zur Entwicklungsumgebung für alle, die das erste Mal von "PICO-8" hören und die es interessiert:
    Das Ding wird als sog. "Virtuelle Spielkonsole" mit integrierten Debugging-Tools vermarktet. Sehr vereinfacht kann man sich das Ding wie eine geschlossene Entwicklungsumgebung vorstellen, die dem Entwickler sehr starke Beschränkungen auferlegt, z.B. Auflösung von 128x128 Pixel, nur 16 Farben, pro Quelltext nur wenige KB Speicher, nur Lua als Sprache, nur ein minimaler Sound- und Musikeditor. Was sich im ersten Moment schrecklich anhört, ist aber mMn. ein Segen für den Einstieg, weil man eben nicht gezwungen wird, über alle Maßen hochwertige Assets zu erstellen. Zumal PICO-8 dafür an anderen Stellen gut auffährt, so ist z.B. das Exportieren als EXE- oder HTML-Dateien(!) mit einem Befehl erledigt ohne den Quelltext anpassen zu müssen; außerdem ist auch noch ein Sprite- und ein Map-Editor integriert, dessen Elemente man sowohl im Editor als auch aus dem laufenden Programm heraus sehr leicht Zugriff bekommt.

    Allerdings wars das auch mit den Erleichterungen; wie man z.B. ein Animationssystem entwickelt oder die Sprites überhaupt mit Objekten und der Umwelt interagieren lässt (Kollisionssystem), das darf man sich alles händisch zusammenknüppeln. Objekte und Methoden gibts in dem Sinne nicht, auch das darf alles erst vom Entwickler implementiert werden.

    Allerdings hat diese Wechselwirkung zwischen "alles selbst coden" und "Assets können kinderleicht erstellt und verwendet werden" einen wirklich tollen Lerneffekt: Man kann sehr leicht Prototypen erstellen, die einem nicht unnötig Steine bei der Implementierung in den Weg legen und Lua (trotz der einfachen Syntax) mächtig genug ist, das zu realisieren. Ich hab einige Beiträge zu PICO-8 gelesen, wonach einige Entwickler tiefergehende Mechanismen in PICO-8 erst wirklich verstanden haben - in meinem Falle sogar tatsächlich die Kollisionserkennung. Es gibt ja auch wahnsinnige Entwickler, die mit diesen Einschränkungen sogar 3D-Engines ähnlich Doom (1993) entwickelt haben...

    Kurz für alle zusammengefasst: Nur 128x128 Pixel, nur 16 Farben, nur Gepiepse. Erwartet also vom Spiel keine grafische Offenbarung^^.

    Das Spiel selbst ist, wie gesagt, eine Art kleines Mini-Metroidvania: Man ist ein kleiner Abenteurer und begibt sich auf die Suche nach dem legendären "Pokal der Hoffnung". (Ihr merkt schon, die Story ist wahnsinnig komplex und existiert nicht bloß zum Selbstzweck...). Zu diesem Zweck bewegt man sich in typischer Jump'n Run-Manier durch die Levels und weicht fliegenden Rader (= Rote Quader) und Rombies (Rote Zombies) aus. Dabei findet man auf dem Weg Artefakte, die einem mehr Fähigkeiten verleihen und damit Orte erreichbar machen, die zuvor unerreichbar waren.

    Vorsicht: Das Spiel ist nicht einfach. Zwar sind alle paar Meter Checkpoints hinterlegt, aber rechnet auf jeden Fall damit, einige Male zu sterben. Keine Sorge, außer dem Verlust einiger Sekunden gibts keine Bestrafung dafür... Aber das Spiel richtet sich definitiv nicht an Jump'n Run-Anfänger^^. Mit etwas Übung sollte man dennoch relativ gut durchkommen.

    Das Spiel ist direkt im Browser spielbar, kann aber auch heruntergeladen und offline gespielt werden. Es ist vollständig kostenlos (wie gesagt, ich habe nicht vor, damit Geld zu verdienen).

    Screenshots:
    (alle verkleinert)
    [​IMG] [​IMG] [​IMG] [​IMG] [​IMG]


    Programmier-Anekdoten für alle, die es interessiert:
    • Eigentlich sollte das Spiel "Mena's Castle" heißen. "Mena" bedeutet lt. Google Translate in irgendeiner Sprache "Rot", wie das Hemd des Charakters, und mir ist kein guter Spieltitel eingefallen, weshalb ich mit Google Translate rumgespielt habe^^. (Dass der Titel übersetzt irgendwas mit "rotes Schloss" ergibt und überhaupt keinen Sinn macht, verschweige ich lieber mal^^.)
    • Das Spiel war so gut wie fertig, mir fehlte im Grunde nurnoch der Titelbildschirm. Dann fiel mir auf, dass der Name "Mena" zu lang war für den Titelbildschirm, den ich unbedingt etwas "wuchtig" und "groß" im Titel haben wollte. Erst hab ich mit allen möglichen Tricks versucht, den Namen irgendwie reinzuquetschen... Bis ich auf die Idee kam "hey, ich kürze einfach den Namen". Schwupps, schon hieß das Spiel ca. zwei Tage vor Release anders, nur damit er im Titelbildschirm Platz hat. :topmodel:
    • Zwar hab ich im Grunde "nur" ca. einen Monat von Grund auf gebraucht, bis ich dieses Spiel fertiggeschrieben hatte. Allerdings gingen dem Spiel viele, viele Prototypen voraus, in der ich elementare Basisfunktionen (z.B. eben die Kollisionserkennung) immer wieder neu geschrieben habe. Quelltextmäßig ist alles einigermaßen sauber meiner Meinung nach (von einer Stelle abgesehen, in der mein alter Programmier-Lehrer vermutlich schreiend und halbnackt durch meine Heimatstadt laufen würde, wenn er den Code zu Gesicht bekäme...), aber bereits bei diesem ansich kleinen Projekt hab ich gemerkt: "Pfuschen" im Quelltext ist ganz, ganz schlimm. Benutzt man irgendwelche "Dirty Hacks" z.B. in der Kollisionserkennung, fliegt einem das früher oder später so dermaßen um die Ohren, dass man den Teil im Quelltext freiwillig neuschreibt statt am Pfusch weiterzumachen... Wenn man nämlich auf den Pfusch aufbaut, wird daraus nur größerer Pfusch, der beim Neuschreiben natürlich ebenfalls in die Tonne wandert...
    • Das letzte Level des Spiels wurde nach ca. einem Tag per Patch ausgetauscht, nachdem mir die ersten drei Leute als Feedback berichteten, dass sie das Spiel an dieser Stelle abgebrochen hatten. Ich wiederhole: Im letzten Level! :topmodel:
    • Ich muss auch ehrlich zugeben, dass bei mir in den letzten zwei, drei Tagen vor Release des Projekts echt nicht angenehm waren. Das sind die Momente, wo man für die letzten 10% des Spiels ähnlich viel Aufwand reinsteckt wie für die ersten 90% des Spiels... Und das hat geschlaucht. Ich war dann wirklich in einer Phase, in der ich das Spiel nurnoch released haben wollte, um es endlich weg von mir zu bekommen^^. Deswegen war auch das letzte Level vor dem Patch quasi wie hingeworfen, was sich natürlich bemerkbar machte^^.

    Tjoar... Auf der einen Seite würd ich mich natürlich über jedes Feedback meines kleinen Spiels freuen, und auf der anderen Seite bin ich dann doch etwas auf die möglichen Reaktionen hier gespannt, so ein kleines Mini-Spielchen zwischen all den MMORPGs, Kickstarter-Projekten etc. zu platzieren :topmodel:

    Direkt im Browser spielen + Downloadlink:
    https://astorek86.itch.io/meas-castle

    Wer den Sourcecode haben will, kann bei Lexaloffle vorbeischauen; dort auf den Reiter "Code" klicken:
    https://www.lexaloffle.com/bbs/?tid=39467

    Spielzeit: Ich gehe von ca. einer halben Stunde aus; im Speedrun schaff ich es in 5:50 Minuten^^.

    Ich wünsche viel Spaß beim Ausprobieren, und Feedback ist natürlich immer gerne gesehen! :)
     
    Zuletzt bearbeitet: 9. September 2020
    der.Otti, Shek und Der_Vampyr gefällt das.
  2. Shek

    Shek
    Registriert seit:
    13. September 2013
    Beiträge:
    957
    Erinnert mich an "I wanna be the guy" :user:
     
  3. Astorek86

    Astorek86
    Registriert seit:
    10. Juni 2016
    Beiträge:
    74
    Stimmt, jetzt wo du's sagst...:rotfl:
    Aber hoffentlich nur grafisch, oder? Vom Schwierigkeitsgrad her sollte das nicht annähernd so unfair sein :teach:
     
Top