
Diese Engine wird im Rahmen der Kohi Game Engine-Serie auf YouTube (jetzt live auf Twitch) hergestellt, wo wir mit C und Vulkan eine Game-Engine von Grund auf herstellen.
Der Name Kohi (コーヒー, ausgesprochen "Koh-hee") ist eine Vereinfachung des japanischen Wortes für "Kaffee", was angesichts der Tatsache, wie sehr ich das Zeug liebe.
Die ursprüngliche YouTube-Serie befindet sich hier: https://www.youtube.com/watch?v=dhpuu-djobm&list=plv8ddw9k0jpg1beo-rs-0mys423cvlvtj.
Der Twitch Stream passiert hier: https://twitch.tv/travisvroman.






Kohi war von Anfang an ein 3D -Motor, wobei das meiste davon von Grund auf neu gebaut wurde. Es wird viele Erklärungen und Erkundungen auf dem Weg geben. Die Serie beginnt eher ein Tutorial, um in Betrieb zu nehmen, wobei die Erklärungen höher werden, wenn sich die Dinge fortschreiten, um das Tempo aufrechtzuerhalten. Wir wechseln schließlich zum Live-Streaming auf Twitch, wobei die meisten Codierungen im Stream mit einigen Offline-Arbeiten durchgeführt werden, die weniger interessant sind, offline.
Windows, Linux und MacOS werden offiziell unterstützt. Die Unterstützung von Android und iOS -Laufzeit kann auch die Straße hinzufügen.
Während die höchsten Anstrengungen unternommen werden, um Abhängigkeiten zu reduzieren, verfügt jede Plattform für Dinge, die für dies funktioniert.
Installieren Sie diese über Package Manager:
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-devInstallieren Sie diese über Homebrew oder einen anderen Paketmanager:
gitmakeSie müssen Clang 13+ und die Vulkan SDK installiert haben:
Das Audio -Plugin erfordert eine Installation von Openal.
sudo apt install openal für Ubuntu oder sudo pacman -S openal on Arch).brew install openal-soft . Hinweis auf M1-Macs Dies installiert /opt/homebrew/opt/openal-soft/ , wobei die Verzeichnisse include , lib und 'bin gefunden werden können. Das Skript für build-all.sh enthält diese Version der Installation. Holen Sie sich, um zu beginnen, alle Voraussetzungen für Ihre aktuelle Plattform (siehe oben). Danach klonen Sie das Repository: git clone https://github.com/travisvroman/kohi .
Beachten Sie, dass Sie frei sind, andere Compiler (wie GCC) zu verwenden, aber sie werden zu diesem Zeitpunkt nicht offiziell unterstützt (obwohl es nicht viel Arbeit sein sollte, um sie einrichten zu lassen).
Weitere Informationen finden Sie in den Setup -Videos in der Serie für Windows oder Linux. Das MacOS -Setup erfolgt deutlich später in der Serie von Video 76, wenn die Unterstützung für diese Plattform offiziell hinzugefügt wird.
Es stehen 2 Build -Typen zur Verfügung, Debuggen und Veröffentlichung. Debugg enthält Debug -Symbole und ist optimal für die Entwicklung und Erkundung, während die Veröffentlichung ideal für die Leistung ist. Es gibt auch eine "saubere" zur Reinigung der erstellten Dateien, was beim Wechsel zwischen Debug/Release oder wenn seltsame Verknüpfungsfehler aufgrund fehlender Dateien (dh Wechseln der Filiale) auftreten.
Öffnen Sie eine Eingabeaufforderung oder eine PowerShell-Instanz und führen Sie die Datei build-debug.bat für einen Debug-Build oder build-release.bat für einen Release-Build aus. Es gibt auch eine clean.bat .
Öffnen Sie ein Terminal und führen Sie die build-debug.sh Datei für einen Debug-Build aus oder build-release.sh für einen Release-Build. Es gibt auch eine clean.sh .
Im Moment ist "testbed" die ausführbare Datei, die Kohi verwendet. Es sollte mit dem Arbeitsverzeichnis /bin ausgeführt werden. In der Eingabeaufforderung/PowerShell in Windows oder einem Terminal in Linux/macOS, cd bin , um in den Bin -Ordner zu gelangen, führen Sie dann testbed.exe unter Windows aus oder testbed einfach auf Linux/macOS.
Diese Strukturaufschlüsselung basiert auf dem Stammordner des Repositorys. Einige Dateien/Ordner werden in dieser Beschreibung weggelassen, da sie für das Gesamtbild nicht wichtig sind.
kohi.core - Shared Library/.dll. Enthält Typen, Container, String Lib, Math Lib, Utils usw. sowie die Plattformschicht (Win32, Linux, macOS).kohi.core.tests - Eine kleine Sammlung von Unit -Tests für die Kernbibliothek. Muss erweitert werden.kohi.runtime - Shared Library/.dll. Enthält die Kernmotorlogik sowie viele der Kernmotorensysteme.kohi.plugin.audio.openal - Shared Library/.dll. Enthält das Audio -Plugin, das Openal als Audio -Backend verwendet.kohi.plugin.renderer.vulkan - Shared Library/.dll. Enthält das Vulkan -Renderer -Plugin, das als Renderer -Backend des Motors für Vulkan dient.kohi.plugin.ui.standard - Shared Library/.dll. Enthält die Kohi-Standard-Benutzeroberfläche, die eine allgemeine Sammlung von Steuerelementen wie Schaltflächen, Beschriftungen, Textboxen usw. enthält. Dies ist eine UI zurückgehalten.testbed.assets - enthält alle Vermögenswerte, die von der Testbed -Anwendung geladen werden sollen.testbed.kapp - application/.exe. Die ausführbare Anwendung, lädt testbed.klib, konfiguriert/verwendet Plugins und andere Kohi -Bibliotheken.testbed.klib = Shared Library/.dll. Enthält den für die Anwendung spezifischen Anwendungscode (oder "Spielcode"). Heiß-reladierbar.kohi.tools.versiongen - application/.exe. Ein kleines Dienstprogramm, das eine Version mit übergaberten Major- und Minor-Versionsnummern sowie automatisch generierte Build- und Revisionsnummern basierend auf Datum und Uhrzeit generiert. Wird an Versionsanlagen von Kohi und Plugins verwendet.kohi.tools - Eine Sammlung von Befehlszeilen -Tools. Meistens leer im Moment, wird aber zu Beginn der Redakteurentwicklung aufgewendet..vscode Ein Ordner, der VS-Code-spezifische Projekt-Setup enthält. Siehe hier.
Das Ziel hier ist einfach, eine Ressource bereitzustellen, die ich beim Lernen bei der Entwicklung von Spielen wünschte. Ein vollständiger Leitfaden zum Aufbau einer Spielmotor von Grund auf, einschließlich nicht nur Entwurfsentscheidungen, sondern warum diese Entscheidungen getroffen wurden. Es sollte auch beachtet werden, dass dies zwar eine Möglichkeit ist, eine Game -Engine zu bauen, aber nicht die einzige Möglichkeit ist, einen zu bauen.
Natürlich gibt es auch das Ziel, eine Spielmotor zu haben, die Spiele machen kann. Sobald das Projekt weit genug ist, wird auch auf meinem YouTube -Kanal ein Spiel als Serie durchgeführt.
Es ist wichtig zu beachten, dass dieser Motor nicht länger als produzierbar ist und nicht. Es ist ein Lernwerkzeug und als solche noch nicht für den Einsatz in Produktionsprodukten. Dies wird sich irgendwann ändern, aber im Moment ist es nicht produktionsbereit.
Im Verlauf des Projekts sind die Community -Beiträge durch Pull -Anfragen zu Github willkommen.
Die Funktionen sollten über einen Zweignamen im Format der feature/<feature name> beigetragen werden, wobei <feature name> entweder durch den Namen einer Funktion oder im Idealfall die Anzahl eines gemeldeten Feature -Problems (z. B. feature/80 oder feature/terrain ) ersetzt wird.
Fehlerbehebungen müssen über einen Zweignamen im Format von bugfix/<issue#> beigetragen werden, wobei <issue#> durch die Anzahl eines gemeldeten Feature -Problems ersetzt wird (Beispiel: bugfix/80 ). Fehlerbehebungen müssen daher über ein zugeordnetes Problem auf GitHub erstellt werden.
Code sollte mit dem allgemeinen Stil des Code im Repo übereinstimmen. In naher Zukunft wird hier irgendwann ein Codestil -Leitfaden veröffentlicht.
Alle Beiträge unterliegen einer Überprüfung und können angenommen oder nicht akzeptiert werden oder werden Änderungsanfragen vor dem akzeptierten Annehmen gestellt.
Ich entwickle Kohi in meiner Freizeit. Ich habe momentan keine Sponsoren. Wenn Sie meine Arbeit mögen, können Sie mich an diesen Orten gerne unterstützen:
Ich würde auch sehr schätzen Folgen/Abonnements auf YouTube und Twitch. Bitte verbreiten Sie das Wort!
Ihre Unterstützung wird sehr geschätzt und wird wieder in das Projekt investiert.