SEEDS - Sandbox-Planetengame mit integriertem RISC-V Linux-Emulator
Show HN: Our space game has a built-in RISC-V emulator that runs Linux

SEEDS ist ein Open-World-Sandbox-Spiel, in dem du einen lebensfeindlichen Planeten terraformst, Maschinen baust und ein Ökosystem erschaffst. Das Besondere: Ein vollwertiger 64-Bit-RISC-V-Emulator läuft direkt im Spiel und führt einen unmodifizierten Linux-Kernel mit Alpine Linux aus. So kannst du eigene Programme schreiben, im Spiel ausführen und sogar kleine Arcade- und Puzzlespiele auf den Monitoren deiner Basis genießen. Aktuell in Early Access, mit Survival- und Story-Modus in Entwicklung. Jetzt auf Steam vormerken!
Der In-Game-Computer ist eine komplette 64-Bit-RISC-V-VM, die einen unmodifizierten Linux-Kernel und eine leicht angepasste Alpine-Linux-Distribution ausführt – und bereits jetzt kannst du darauf kleine Spiele spielen oder eigene Programme in deiner Lieblingssprache schreiben.
- verst
Ich habe das auf der Steam-Seite gesehen:
> unsere komplett hauseigene Game-Engine PasVulkan, die SEEDS antreibt, sowie unser RISC-V-Emulator PasRISCV sind beide Free and Open Source Software (FOSS)
Kannst du bitte auf PasVulkan und PasRISCV verlinken?
- nor-and-or-not
Ein paar Dinge zu unserem RISC-V 64-Bit-Emulator. Bitte verzeiht mir, falls ich ein paar Fehler mache, aber ich bin kein Experte auf diesem Gebiet.
Erstens emuliert PasRISCV nicht nur Userspace (RV64GC-Usermode), sondern eine komplette, moderne Maschine (SMP/MultiHART, RV64, volles RVA23.1 inklusive Hypervisor, Crypto, Vector-Zeug usw.), die in der Lage ist, einen normalen Linux-Kernel zu booten (entweder per direktem OpenSBI -> Kernel-Boot, aber derzeit muss dann alles im initrd sein), oder per U-Boot (OpenSBI -> U-Boot -> Kernel).
Der Emulator verwendet einen Hybrid aus Interpreter mit einem Tracing-JIT. Derzeit ist der JIT auf Host-x86-64 beschränkt. Etwa 99% aller Instruktionen werden vom JIT unterstützt. Zum Beispiel wird die Host-FPU an den Gast durchgereicht. Aber PasRISCV unterstützt auch einen optionalen strengeren FPU-Modus, bei dem mit Soft-Floats und nur mit Interpreter gearbeitet wird, weil IEEE754-2008 spezifische Regeln hat, die auf der x86-Architektur nicht existieren.
Festplatten-Images werden entweder über VirtIO-Block oder NVMe via PCIe bereitgestellt. Wir können Festplatten entweder im normalen Lese-Schreib-Modus oder auch im Nur-Lese-Modus verwenden. Das erlaubt uns, eine Root-Partition zu haben, die wir mit Spiel-Updates überschreiben können, und eine User-Partition, wo benutzerdefiniertes Spieler-Zeug gespeichert wird. Wir können auch Host-Verzeichnisse als externe Pfade/Mounts über VirtIO-9P oder VirtIO-FS einbinden, was besonders für die Entwicklung nützlich ist, weil wir so Gast-Tools direkt auf dem Host-System kompilieren können.
Um Grafiken auf unserem virtuellen Spielbildschirm(en) anzuzeigen, verwenden wir derzeit ein Framebuffer-Gerät (via […]
- sippeangelo
Hast du dazu einen Blogbeitrag? Der Link führt zur Startseite und erwähnt nichts! Klingt super interessant, aber die Landing-Page liest sich wie Survivalcraft im Weltraum #1001