-
Was ist coreCore?
- coreCore ist eine experimentelle Methode zum Erstellen von Videospielen in Form eines Action-RPG-Spielentwicklungswerkzeugs, einer Engine und eines Eigenschaftseditors
- Es verwendet ein einfaches Komponentensystem, wobei Komponenten Clojure-Vektoren in der Form
[keyword value] sind
- Verschiedene Entitäten bestehen aus Clojure-Maps
- Seiteneffekte im Spiel werden über Komponenten wie
[:tx/foo param] verarbeitet, was einer Datomic-Struktur ähnelt
- Der gesamte Spielzustand wird in einem einzigen Atom namens
app/state gespeichert, und Entitäten existieren ebenfalls als Atome innerhalb des Haupt-Atoms
- Der gesamte Inhalt der Anwendung wird in
resources/properties.edn gespeichert, mit malli-schemas validiert und kann per GUI bearbeitet werden
-
Screenshots
-
So startet man die Entwicklung
- Den folgenden Befehl eingeben:
- Die Anwendung startet und führt außerdem Folgendes aus:
- Startet einen NREPL-Server
- Beim Beenden der Anwendung (ESC im Hauptmenü) lädt
clojure.tools.namespace geänderte Dateien neu und startet die App erneut
- Tritt ein Fehler auf, muss die JVM nicht neu gestartet werden; stattdessen den Fehler beheben und
dev-loop/restart! aufrufen
- In VIM kann man die F5-Taste mit folgendem Befehl belegen:
nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
-
Code-Lizenz
- Bereitgestellt unter der MIT-Lizenz
-
Asset-Lizenz
- Die verwendeten Assets sind proprietär und nicht Open Source
Zusammenfassung von GN⁺
- coreCore ist ein Werkzeug, mit dem sich Action-RPG-Spiele einfach erstellen lassen und das mithilfe eines einfachen Komponentensystems den Spielzustand verwaltet
- Der gesamte Spielzustand wird in einem einzigen Atom gespeichert, und Eigenschaften lassen sich über eine GUI bearbeiten, was für Entwickler nützlich ist
- Es wird unter der MIT-Lizenz bereitgestellt, die verwendeten Assets sind jedoch proprietär
- Ähnliche Werkzeuge mit vergleichbaren Funktionen sind RPG Maker und Unity
1 Kommentare
Hacker-News-Kommentare
Es ist interessant, verschiedene Ansätze der Spieleentwicklung zu sehen.
Dieses GitHub-Projekt wirkt auf Spieleentwickler lächerlich.
Es wird behauptet, Spieleentwicklung vereinfachen zu können, aber dabei werden viele Fachbegriffe verwendet.
Dieses Projekt scheint gescheitert zu sein.
Dieses Repository erzeugt trotz fast fehlender Dokumentation viele Diskussionen.
Man sieht oft, wie aus dem Wunsch „Ich will ein Spiel machen“ am Ende das Bauen einer Game-Engine wird.
Ich liebe Clojure, frage mich aber, ob eine funktionale Sprache mit unveränderlichen Datenstrukturen für die Spieleentwicklung geeignet ist.
Der Spielzustand wird in einem einzigen Atom gespeichert, und die Entitäten darin wiederum als Atome.
Es wäre interessant, Daten zu „Zeit/Komplexität für die Game-Engine“ vs. „Komplexität/Interessantheit des resultierenden Spiels“ zu analysieren.
Es gibt bereits Core, eine kommerzielle Plattform zur Erstellung von Spielen, die auf Unreal Engine 4 basiert.