Ikey Doherty, der Entwickler von Solus Linux, steigt mit einer neuen Open-Source-Game-Engine in das Game-Entwickler-Geschäft ein

Ikey Doherty, der Schöpfer und ehemalige Hauptentwickler von Nur, ist zurück mit einem neuen Projekt. Seine neue Firma, Lispy Snake, Ltd, verwendet Open-Source-Technologie, um Spiele zu erstellen, mit Schwerpunkt auf Linux-Unterstützung.

Ich habe Ikey einige Fragen zu seinem neuen Projekt gestellt. Hier sind seine Antworten.

It’s FOSS: Was hat Sie dazu bewogen, in die Spieleentwicklung einzusteigen?

Ikey: Ehrlich gesagt muss ich Respekt vor älteren Spielen sagen. Die Kreativität, die aus so vielen Einschränkungen entstand, ist ehrlich gesagt erstaunlich. Wenn Sie daran denken, wie begrenzt das NES oder der C64 waren (oder tatsächlich meine Amstrad CPC) – doch wie viel Freude erlebten die Leute von diesen Plattformen. Es ist ein Summen, das ich nicht vermeiden kann. Auch wenn wir weit von dieser Welt entfernt sind, versuche ich immer noch, diese technische Exzellenz und Kreativität so gut wie möglich zu modellieren. Ich bin ein Trottel für gute Geschichten.

Es ist FOSS: Es gibt bereits mehrere Open-Source-Spiele-Engines. Warum haben Sie sich entschieden, Ihre eigenen zu machen? Was ist das Killer-Feature von Serpent?

Ikey: Es gibt eine große Anzahl von Open- und Closed-Source-Programmen, die jeweils über eine großartige Reihe von Funktionen verfügen. Ich bin jedoch ein ziemlich altmodischer Entwickler und es gibt nichts, was ich mehr hasse als eine IDE oder eine codelose “Drag n Drop”-Umgebung. Ich wollte einfach Indie-Spiele mit möglichst wenig Aufwand erstellen und ein Framework verwenden, bei dem ich keine Kompromisse eingehen musste. Wenn Sie einmal gelernt haben, “unter Linux gut zu funktionieren und Open Source zu sein”, haben Sie die Wahl.

Ich sammelte eine Reihe von Projekten, die ich als Grundlage für die ersten Spiele von Lispy Snake verwenden würde, aber ich brauchte ein Framework, um sie alle als wiederverwendbare Codebasis für alle Spiele und Updates zu verbinden.

Ich würde nicht sagen, dass es noch Killer-Features gibt – nur eine Reihe vernünftiger Entscheidungen. Serpent ist in D geschrieben, also sehr performant mit einer niedrigeren Eintrittsbarriere als beispielsweise C oder C++. Es ermöglicht mir, ein Framework zu entwickeln, das meinen Entwicklungsidealen entspricht und die Branchenanforderungen berücksichtigt, wie zum Beispiel ein performantes Multithreading-Entity-Komponentensystem oder das Sprite-Batching-System.

Wenn Sie alle Funktionen und Entscheidungen zusammenbringen, erhalten Sie eine portable Codebasis, die dank ihrer Auswahl an Bibliotheken wie SDL und bgfx mit minimalem Aufwand unsererseits auf allen wichtigen Plattformen läuft. Das bedeutet im Grunde, dass wir OpenGL, DirectX, Vulkan und Metal „umsonst“ bekommen.

Die Möglichkeit, auf die neuesten APIs zu zielen und Indie-Spiele einfach zu erstellen, mit ständig neuen branchenüblichen Funktionen, aus einem Framework, das sich nicht selbst auf Ihren Workflow aufdrängt … das ist eine ziemlich gute Kombination.

Es ist FOSS: Warum haben Sie Ihr Unternehmen LispySnake genannt? Hatten Sie als Kind eine Schlange als Haustier mit Sprachbehinderung?

Ikey: Ganz ehrlich? Frecher Hund wurde genommen. Ich muss Bandicoot lieben. Außerdem übernahmen wir ursprünglich einige Python-Auftragsarbeiten und ich fand den Namen amüsant. Es ist ein ziemlich unsinniger Name wie viele meiner früheren Projekte (wie Dave. Oder Dave2.)

Es ist FOSS: Wie fühlt es sich an, nach vielen Jahren als Betriebssystementwickler an etwas Kleinerem zu arbeiten? Würden Sie sagen, dass Ihnen Ihre Zeit als Betriebssystementwickler einen Vorteil als Spieleentwickler verschafft?

Ikey: OS-Entwickler benötigen ständig eine sehr hohe Ansicht mit der Möglichkeit, den Kontext von Makro zu Mikro und wieder zurück zu wechseln. Viele, viele bewegliche Teile in einem großen Ökosystem.

Serpent ist viel aufgabenorientierter – obwohl Ähnlichkeiten im Workflow hinsichtlich der Definition von Makrosystemen und der Verschachtelung von Mikrofunktionen bestehen, um ein zusammenhängendes Ganzes zu bilden. Mein Hintergrund in der OS-Entwicklung ist hier offensichtlich eine große Hilfe.

Wo es besonders glänzt, ist der Umgang mit dem ‘Mus’. Ich denke, viele Indie-Entwickler (verzeihen Sie, dass ich so weitschweifig bin) sind im Allgemeinen gerne bereit, einfach aus einem vorhandenen Kit zu bauen und es entweder anzunehmen oder die Probleme zu umgehen. Es gibt einige wahre Juwelen wie Factorio, die weit darüber hinausgehen, und ich muss meinen Hut vor ihnen halten.

Wenn wir ein neues Kit bauen, denken wir richtig über Cache-Kohärenz, parallele Leistung, Speicherfragmentierung, Kontextwechsel und dergleichen nach.

Benutzer von Serpent (wenn es in einer stabileren Form veröffentlicht wird) werden wissen, dass das Framework darauf ausgelegt ist, Linux-Funktionen zu nutzen und nicht nur Builds dafür auszuspucken.

It’s FOSS: Kürzlich hast du dein . portiert Schlange Spiel-Engine von C bis D-Sprache. Warum haben Sie diesen Schritt gemacht? Welche Eigenschaften hat D gegenüber C?

Ikey: Ja, ehrlich gesagt, das war ein interessanter Schachzug. Wir arbeiteten ursprünglich an einem Projekt namens lispysnake2d, das ein trivialer Wrapper für SDL sein sollte, um uns eine Mikrospielbibliothek zu geben. Dies verwendete einfach SDL_Renderer-APIs zum Blitten von 2D-Sprites und schien zunächst ausreichend zu sein. Leider war im Laufe der Entwicklung klar, dass wir eine 3D-Pipeline für 2D brauchten, damit wir Shader und Spezialeffekte nutzen konnten. An diesem Punkt nützt Ihnen SDL_Renderer nicht mehr und Sie müssen mit Vulkan oder OpenGL arbeiten. Wir begannen, die Pipelines zu abstrahieren und sahen, wie der Wahnsinn folgte.

Nachdem ich einen Schritt zurückgetreten war, analysierte ich alle Unzulänglichkeiten des Ansatzes und hatte genug von den Portabilitätsproblemen, die definitiv auftreten würden. Ich spreche nicht von Bibliotheken, sondern vom Umgang mit verschiedenen Dateipfaden, Kodierungen, Win32-APIs, DirectX vs. OpenGL vs. Vulkan…etc. Dann hacken Sie die Boilerplate-Zeit, die C-String-Mängel und die Menge an Neuerfindungen ein, die erforderlich ist, um das Verknüpfen mit aufgeblähten „plattformübergreifenden“ Standardbibliotheken im Stil von Bibliotheken zu vermeiden. Es war ein schlechtes Bild.

Habe viel gemacht gehen Entwicklung begann ich mit der Suche nach Alternativen zu C, die nebenläufigkeitsbewusst, stringent und mit einer leistungsstarken plattformübergreifenden Standardbibliothek ausgestattet waren. Dies ist der Teil, in dem Ihnen jeder automatisch sagt, dass Sie Rust verwenden sollen.

Leider bin ich zu dumm um es zu benutzen Rost weil die Syntax meine Augen buchstäblich beleidigt. Ich verstehe es nicht und werde es nie tun. Rust ist eine fantastische Sprache und im akademischen Bereich sehr erfolgreich. Leider bin ich zu praktisch eingestellt und suche Trost in Sprachen im C-Stil, da ich zu lange in dieser Welt gelebt habe. D war also der beste Kandidat, um alle Kästchen anzukreuzen, während er C- und C++-Interoptibilität hatte.

Es hat eine Weile gedauert, die Feature-Parität wiederherzustellen, aber jetzt haben wir ein nebenläufigkeitsfreundliches Framework, das sowohl mit OpenGL als auch mit Vulkan getestet wurde, Sprite-Batching unterstützt und nette APIs hat. Außerdem ist ein Großteil der Neuerfindungen weg, da wir alle Funktionen von SDL, bgfx und der DLang-Standardbibliothek nutzen. Gewinn gewinnen.

Das erste Spiel von LispySnake

It’s FOSS: Wie planen Sie den Vertrieb Ihrer Spiele?

Ikey: Demotechnisch werden wir uns zunächst nur auf Linux konzentrieren, und es sieht so aus, als würden wir dafür Flatpak verwenden. Im Laufe der Zeit, wenn wir Support und Tests für macOS + Windows eingeführt haben, werden wir wahrscheinlich im Steam Store nachsehen. Trotz des Closed-Source-Charakters war Valve im Laufe der Jahre viel freundlicher und unterstützter gegenüber Linux, während Epic Games eine lange Geschichte der starken Anti-Linux-Geschichte haben. Das ist also ein No-Go.

It’s FOSS: Wie können Leute die Entwicklung der Serpent-Spiel-Engine unterstützen und dazu beitragen?

Ikey: Wir haben ein paar verschiedene Methoden, was es wert ist. Am einfachsten ist es Kaufen Sie eine lebenslange Lizenz – das sind 20 $. Dies gewährt Ihnen lebenslangen Zugriff auf alle unsere 2D-Spiele und hilft Ihnen, die Entwicklung unserer Spieletitel und Serpent zu finanzieren.

Alternativ können Sie sponsere mich direkt auf GitHub um bei Bedarf an Serpent und Upstream zu arbeiten. Ein bisschen FOSS-Liebe.

Support mit lebenslanger Lizenz

Sponsern Sie die Entwicklung auf GitHub

Ich möchte Ikey dafür danken, dass er sich die Zeit genommen hat, meine Fragen zu seinem neuesten Projekt zu beantworten.

Hat jemand von euch ein Spiel mit Open-Source-Tools erstellt? Wenn ja, welche Tools und wie waren die Erfahrungen? Bitte lass es uns in den Kommentaren unten wissen.

Wenn Sie diesen Artikel interessant fanden, nehmen Sie sich bitte eine Minute Zeit, um ihn in den sozialen Medien, Hacker News oder . zu teilen Reddit.