Beiträge von ZeHa im Thema „Pico-8: Virtuelle Spielkonsole“

    Hier gibt es einen Vortrag von unserer Spieleentwicklungs-Truppe zum Thema "Einstieg in die Spieleentwicklung", dort wird in der ersten Haelfte des Vortrags (ca. 20 Minuten) ein kleines Tutorial ueber PICO-8 abgehalten:

    Bitte melde dich an, um dieses Medienelement zu sehen.

    Naja man muss aber zumindest sagen, dass Simon's BASIC etwas zeitgenoessisches ist von damals, und PICO-8 ist ein sehr moderner Ansatz. Diese beiden kann man auch nicht direkt miteinander vergleichen. Ausserdem finde ich, muss man immer auch den Hintergedanken im Kopf haben, dass man damit jemandem vor allem den Einstieg leicht machen kann. Natuerlich wuerdest Du damit nie ein "Caren" entwickeln koennen, und deshalb ist es fuer Dich vermutlich auch uninteressant. Aber wenn ein Anfaenger damit ein Boulder Dash ohne Scrolling, ein Pacman, ein Dig Dug oder ein Jumpman hinbekommen wuerde, dann waere das an sich schon etwas richtig cooles. Gibt ja auch heute noch einige, die gerne BASIC lernen wuerden, also waere solch ein System schon auch eine feine Sache denke ich.

    Es gibt halt SEUCK und es gibt den GameMaker, aber gerade ersteres ist halt auf ein ganz bestimmtes Genre "festgefahren", bei GameMaker muss ich erst noch schauen. Aber wenn man eben sowas wie PICO-8 bauen will, darf die "Engine" halt nicht schon ein fertiges Spiel abdecken, welches dann nur noch durch Grafiken gecustomized wird. Da muesste sich die Engine mehr so auf die "Lib" beschraenken, also sprich, Sprite 1-8 auf X/Y positionieren, Sprite-Aussehen festlegen, Joysticks abfragen, Char-Hintergrund setzen und abfragen, solche Dinge. Vielleicht waere da schon was moeglich, aber dann muesste man halt echt auch noch ne komplette Programmiersprache entwerfen (oder eine vorhandene wie Lua nehmen) und dazu auch noch nen Compiler schreiben usw...

    Davon gehoert habe ich schon. Aber es noch nicht im Detail angeschaut. Aber ja, das koennte evtl. ein Indiz dafuer sein, was mit solch einem "PICO-64" machbar waere, rein technisch gesehen. Im Grunde laeuft es ja darauf hinaus, eine allgemeine Engine zu schreiben, welche die 8 Sprites anzeigt, welche einen Charset-Bildschirm darstellen kann, und welche mithilfe einer BASIC-artigen Sprache "geskriptet" werden kann. Wenn man damit dann wirklich was erstellen koennte, was auch wirklich jemand spielen wuerde, dann waere das bestimmt ne feine Sache.

    Werde es mir nochmal genauer ansehen, danke :)

    Will man denn wirklich sowas auf oder für den C64 haben?

    Naja es gibt nach wie vor Leute unter uns, die nicht programmieren koennen, die aber Bock haetten, es zu lernen. Fuer solche Anfaenger waere das ein super Teil. Direkt auf dem C64 ein kleines Spielchen a la Pacman oder Jumpman coden, und alle Tools zur Grafik- und Sound-Erstellung bereits integriert haben, das waere doch ein Traum. Und je nachdem wie gut das ganze funktionieren wuerde, wuerden sicherlich auch fortgeschrittene noch damit was anfangen koennen.

    Naja da existiert jetzt noch kein wirkliches Konzept oder so ;)

    Aber ich sage mal so, ich habe mir ueberlegt, dass es eine feine Sache waere, wenn es ein Modul gaebe, das man hinten in den C64 steckt und dann eine PICO-8-inspirierte Entwicklungsumgebung hat, aber halt zugeschnitten auf die Moeglichkeiten des C64. Wenn die Sprache zudem irgendwie BASIC-orientiert sein koennte waere das auch irgendwie cool, denn dann koennte man das als eine Art "New BASIC" bezeichnen. Eine Alternative zum integrierten BASIC sozusagen. Dazu dann Sprite-Editor, Charset-Editor, Sound-Editor und Musik-Editor alles im Modul integriert. Und am tollsten waere es, wenn die Programme, die man damit erstellt, dann auch auf einem normalen C64 ohne das Modul laufen wuerden.

    Nur glaube ich halt, aufgrund meiner bisherigen Programmier-Erfahrungen auf dem C64, dass der viel zu speziell und zu langsam ist, um solch ein "flexibles" System zu ermoeglichen. Denn auf dem C64 wird einfach anders entwickelt. Da gibt es verschiedene Bildschirm-Modi, da gibt es Raster-IRQs, da gibt es viele Assembler-Tricks, die man einsetzt, um fuers Scrolling nicht die gesamte Frame-Zeit zu benoetigen usw.

    Also muesste man das ganze eigentlich in gewisser Weise einschraenken. Ein fester Raster-IRQ am Ende des sichtbaren Bildschirms, kein Sprite-Multiplexing, kein Scrolling, so in die Richtung. Und dann ist halt die Gefahr, dass es so eingeschraenkt wird, dass es am Ende doch keiner nutzen will. Okay, fuer Anfaenger waere es sicherlich nach wie vor eine tolle Sache. Aber dann wuerden die Spiele, die man damit machen kann, halt vielleicht eher so Richtung Pacman-Klone gehen usw.

    Aber ich habe mir jetzt noch nicht konkret Gedanken zur Umsetzung gemacht. Aber ich stelle es mir muehsam vor, ueberhaupt rauszufinden, was moeglich ist und was nicht, weil man da eigentlich schon direkt mit der Entwicklung beginnen muesste, zumindest ich (andere koennen das vielleicht besser einschaetzen, das mag sein). Und auch insgesamt waere solch ein Projekt vom Aufwand her vermutlich jenseits von Gut und Boese - und kombiniert mit der Problematik, dass es am Ende fuer die Katz sein koennte (weil sich das evtl. eines Tages als nicht machbar herausstellt), habe ich da bislang auch noch nicht weiter dran gearbeitet an der Idee.

    Naja ich sag mal solange man ein Spiel wie Boulder Dash (z.B. ohne Scrolling) oder Wizard of Wor damit hinbekommen koennte, waere das fuer den C64 eine richtig tolle Sache. Habe mir da wie gesagt selbst schon Gedanken gemacht. Aber ich glaube selbst das koennt schwierig werden.

    Aber klar, ein 1:1-Port von PICO-8 waere so oder so nicht moeglich. PICO-8 kann ja Wolfenstein...

    Darueber habe ich auch schon nachgedacht... ist gar nicht so einfach zu beantworten. Die Ressourcen auf dem C64 sind nochmal auf eine ganz andere Art und Weise begrenzt, allein schon die Ausfuehrgeschwindigkeit des Codes. Man muesste den Code auch kompilieren anstatt interpretieren usw... waere schon cool, so ein aehnliches System auch fuer den C64 zu haben.

    Es gibt ein Pico8-Wiki, dort schlage ich in der Regel nach, um die speziellen Befehle der Pico8-API zu finden. Die Sprache selbst ist Lua, allerdings soweit ich weiss in einer leicht abgespeckten Version.

    Was 4 Spieler angeht: Das Pico8-System unterstützt definitiv 4 virtuelle Gamepads. Soweit ich weiss, kann man diese dann auch in Form von 4 angeschlossenen USB-Controllern nutzen. Ob ich das mal tatsächlich ausprobiert habe, weiss ich allerdings nicht mehr genau.

    Ja Pygame ist eine Anbindung der SDL-Library an Python und beides existiert auch auf dem Raspberry Pi. Ich habe sowohl Shotgun als auch Frogs zunächst in einer Pygame-Version entwickelt, und auch Heimat Games ist ein komplett in Pygame entwickeltes Spiel. Die laufen auch super auf einem Raspberry Pi.

    Allerdings ist Pygame und Pico-8 wie gesagt nur bedingt vergleichbar. Das eine ist eine Lib und eine Programmiersprache, das andere ist eine Art "Emulator" mit eingebauter Entwicklungsumgebung.

    Ich fände es nach wie vor geil, wenn man solch ein Entwicklungssystem auch für den C64 entwickeln könnte. Allerdings halte ich das für schwierig bzw. könnte mir vorstellen dass man da viel zu schnell an die Grenzen gelangt und somit nicht wirklich was ordentliches damit erstellen könnte.

    Man kann sogar für 4 Spieler programmieren. Ich weiss nicht ob ich jemals ein "ernsthaftes" Projekt dafür angehen würde, aber als Experimentierplattform finde ich es nach wie vor genial.

    Habe neulich allerdings auch eine Art "inoffiziellen Nachfolger" entdeckt namens TIC-80, das wollte ich mir auch mal ansehen. Allerdings ist da halt die Community deutlich kleiner. Ähnlich wie beim Raspberry Pi, wo es auch viele verbesserte Nachfolger und Alternativen gibt, allerdings die Community und somit auch Support und Treiber usw. eben bei weitem nicht so gut ist wie beim Original.

    Es ist halt eine standardisierte Plattform, und vieles geht einfach noch viel schneller und simpler als bei Pygame am PC. Andererseits gibt es natürlich für alles Alternativen, und es ist ja nicht so, dass niemand Pygame verwenden würde ;)

    Du kannst damit prinzipiell alles programmieren (es gibt sogar 3D-Engines, die darin implementiert wurden). Der Karteneditor, den Du in meinem Video sehen kannst, hat in Wirklichkeit eine viel groessere Flaeche zur Verfuegung, man kann dort im Editor also bereits scrollen und theoretisch riesige Maps bauen. Nun wird diese ja mit dem MAP()-Befehl auf den Bildschirm gezeichnet, und dort kannst Du mithilfe von 4 Parametern angeben, welcher Ausschnitt wo auf den Bildschirm gezeichnet werden soll. Scrolling ist also prinzipiell ueberhaupt kein Problem. Nur in meinem kleinen Beispiel habe ich natuerlich darauf verzichtet :D

    Danke ;) vielleicht mache ich sowas auch nochmal in ausführlich und ohne "Fehler" (sind ein paar Stellen drin die ich gleich hätte richtig machen können, habe z.B. auch versehentlich erst die Zeichen-Routine "_render" genannt obwohl diese "_draw" heissen muss - aber war wie gesagt nur ein Schnellschuss gestern)

    Ich habe gerade fuer einen Kumpel ein kurzes Video aufgenommen um zu demonstrieren, wie einfach es ist, innerhalb von PICO-8 etwas zu entwickeln. Das Video ist ohne gesprochenen Kommentar, daher als selbsterklaerend zu betrachten. Es war nur eine sehr schnelle Aktion, aber damit noch ein paar andere vielleicht was davon haben, verlinke ich es hier.

    Es geht knapp 6 Minuten und es wird von Null an ein kleines Spielchen programmiert:
    Bitte melde dich an, um dieses Medienelement zu sehen.