Suche Mitstreiter für Lernprojekt Game Engine



  • Hi Leute,

    seit einigen Jahren programmiere ich in meiner Freizeit eine 3D-Engine. Angefangen hat es als Lernprojekt, um die Zusammenhänge zwischen OpenGL und allgemeiner Softwarearchitektur besser zu verstehen. Mittlerweile hat sich daraus eine recht solide Codebase entwickelt, mit der man auch schon etwas anstellen kann. Ich habe bereits die Grundlagen geschaffen und nehme mir auch einiges an Zeit, den Code zu refactoren, um Kommentare zu ergänzen, zu optimieren usw. Allerdings merke ich auch, dass ich langsam an einen Punkt komme, an dem ich es zeitlich einfach nicht mehr hinbekomme, alles allein zu bestreiten und deswegen suche ich hier Leute, die Spaß haben an der Konzeption der Architektur, Implementierung oder einfach nur Code Reviews. Ziel dabei ist es nicht, in absehbarer Zeit die beste, schnellste, tollste Engine zu programmieren, die alle anderen Produkte in den Schatten stellt, das halte ich für utopisch, sondern viel mehr, gemeinsam eine Architektur zu planen und zu bauen, über Probleme der Implementierung zu sinnieren und letzlich Spaß bei der Sache zu haben.

    Bislang existiert keine Webseite, nur ein privates Git-Repository, das ich natürlich gern mit geneigten Interessenten teilen will. Zur besseren Übersicht mal ein kleiner stichpunktartiger Abriss des Projektes:

    - Source komplett in C++, Buildsystem basiert auf CMake
    - Verwendung auscchließlich moderner Sprachfeatures (ab C++11)
    - Komponentenbasierte Struktur; Jede Einzelkomponente ist hier für einen bestimmten Bereich zuständig.
    - Abstraktion der Schnittstellen; Renderer, File System usw sind erweiterbar.
    - Derzeit existiert nur eine OpenGL-Implementierung, aber der Ausbau für weitere Systeme ist durch Layering möglich.
    - Sehr flexibles Resourcen-System, angelehnt an Asset Pipelines von XNA.
    - Laden von Bitmaps, Textur-Atlas, JSON files, 3D-Modellen und Bitmap fonts ist bereits implementiert.
    - Eingaben von Maus und Tastatur sind implementiert, Schnittstellen für weitere Peripheriegeräte ist vorhanden.
    - Ein Szenenmanager für den hierarchischen Aufbau von Entities/Nodes ist vorhanden.
    - Es existieren einige rudimentäre Tests und Beispiele für die Komponenten.
    - Die Implementierung unterstützt multi-threading.
    - Es existieren diverse Klassen zur Handhabung von z.B. Kameras, Meshes, GPU-Objekten, Bitmaps usw...

    Die Liste ist sicher nicht vollständig, aber ich denke, das reicht erstmal, um einen kleinen Überblick über den Status Quo zu bekommen. Mittelfristig wäre es toll, ein kleines Beispiel-Spiel zu entwickieln, um auch die Usability der Engine konkret testen zu können.

    Auf der Roadmap stehen noch größere Baustellen wie Audio-Ausgabe oder Vulkan-Implementierung, die ich bislang nicht wirklich angegangen bin. Auch die Gamepad-Unterstüzung ist etwas, was ich gern noch einbauen würde.

    Nochmal zusammengefasst, was und wen ich suche:

    - Erfahrung mit C++, besonders aktuelle Sprachfeatures,
    - schomal mindestens was von Software-Design gehört,
    - Lust auf Code Reviews,
    - Spaß an Teamarbeit und Lernen von neuen Dingen,
    - mal ein Versionierungssystem benutzt 😉
    - generell Interesse an Grafikprogrammierung, Audio-Processing oder was noch alles dazugehört

    Also, ich hoffe, dass das nicht zu abschreckend klingt. Natürlich muss nicht alles davon zu 100% erfüllt sein, es soll ja eben ein Spaßprojekt sein und zur Abwechslung vom schnöden Berufs-/Uni- oder weiß der Geier Alltag dienen. Bestimmt hab ich auch einiges vergessen, zu erwähnen, in dem Fall fragt einfach gern nach. Freue mich über jeden potenziellen Interessenten 🙂



  • Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum Projekte verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Link zu GitHub oder so?