Littleorion -Motor
C ++ 3D -Engine, die während des Master -Abschlusses in AAA -Videospielen entwickelt wurde

Highlights
- Szenen erstellen, speichern und laden.
- Erstellen Sie GameObjects und ändern Sie ihr Verhalten mithilfe des Komponentensystems.
- Erkunden Sie die Szene mit einer einheitlichen Kamera.
- Konfigurieren Sie verschiedene Motoreigenschaften: Renderer, Zeitmanagement, ...
Installation
- Laden Sie die letzte Veröffentlichung (oder die gewünschte Version) aus dem Abschnitt "Releases" herunter.
- Extract
Build.zip . - Führen Sie
LittleOrionEngine.exe aus.
Verwendung
Bitte beachten Sie unser Wiki, um zu erfahren, wie Sie den Motor verwenden.
Entwicklungsaufbau
Um dies zu tun, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Computer.
- Eine Grafikkarte mit OpenGL -Unterstützung.
- Visualstudio 2017 oder höher.
Beitragen
Da dies ein akademisches Projekt ist, kann dies nicht direkt zu diesem Repo beitragen. Sie können es gerne geben, es zu geben (https://github.com/unnamed-company/littleorionEngine/fork) und es auf Ihre eigene Weise zu erweitern!
Autoren
Mario Fernández Villalba
| Anabel Hernández Barrera
| Enrique Alexandre González Sequeira
| Joan Ginard Mateo
| Jordi Sauras
| Jordi Romagosa
| Toni Ferrari Juan
|
Luis Moyano
| Marco Rodríguez
| Artemis Georgakopoulou
| Pau Casas Garcia
| Raúl González
| Ricard Vivó
| Vidal Melero
|
Entwicklungsmethodik
Dieses Projekt wurde nach agilen Methodenphilosophie entwickelt. Wenn Sie daran interessiert sind, die Aufgabenverteilung zu kennen, zögern Sie nicht, unser Trello -Vorstand zu besuchen!
Gebaut mit
- SDL 2.0 - Wird verwendet, um die Erstellung und Eingabe der Fenster zu verwalten.
- Glew 2.1.0 - Wird zum Verwalten von OpenGL -Erweiterungen verwendet.
- Mathgeolib 3.0.0 - Früher mathematik.
- Lieber Imgui 1.73 - wurde verwendet, um die GUI zu bauen.
- Imgui FileBrowser - Wird verwendet, um das Dateiverzeichnis mit IMGui zu öffnen.
- Teufel 1.8 - Wird zum Laden von Bildern verwendet.
- Assimp 5.0 - Wird zum Laden von 3D -Modellen verwendet.
- Schriftart Awesome 5 - Wird verwendet, um ausgefallene Symbole anzuzeigen.
- ICON FONT CPP -Header - verwendet, um Schriftarten fantastische Symbole in C ++ zu importieren.
- PCG - Wird verwendet, um gute Zufallszahlen in C ++ zu erzeugen.
- Rapidjson 1.1.0 - Wird verwendet, um JSON -Dateien zu verarbeiten.
- Debug -Draw - verwendet, um grundlegende Formen zu zeichnen.
- PAR_SHAPES - Wird verwendet, um grundlegende Primitive zu erzeugen.
- Imguizmo - wurde verwendet, um Gizmos zu zeichnen.
- PhysFS 3.0.2 - Wird zum Verwalten von Dateisystemen verwendet.
- Bullet Physics - verwendet, um die Physik zu simulieren.
- SPDLog - wurde verwendet, um Dinge zu protokollieren.
Lizenz
Dieses Projekt ist unter der MIT -Lizenz lizenziert - Einzelheiten finden Sie in der Lizenzdatei.
Veröffentlichung Geschichte
- [1.0.1] Die Fehler und Polieren irren
- Viele Fehlerbehebungen.
- Stimmungssteuerung, um die beste Benutzererfahrung zu bieten.
- Leistungsverbesserungen beim Laden von Ressourcen.
- [1.0.0] v1.0.0 Veröffentlichung ist hier!
- Netzmaterialien. Es hat ein eigenes Material, das verschiedene Texturen und Lichtparameter speichert.
- Neues
ComponentLight , das eine Lichtquelle für die Szene darstellt. Es wird entlang der Netzmaterialien verwendet. - Mauspflücken. Spielobjekte können im Szenenfenster auf sie klicken.
- Gizmos. Sie werden verwendet, um die Transformation des ausgewählten Objekts zu ändern.
- [0.2.2] Binärdateien und Serialisierung der Szene
- Besseres Ressourcenmanagement.
- Die Vermögenswerte werden in ein weniger räumlich konsumierendes Format umgewandelt.
- Neuer Cache, der die Doppelarbeit von Ressourcen vermeidet.
- Serialisierung einer Szene, die das Laden und Speichern von Szenen ermöglicht.
- [0.2.1] Beschleunigen des Motors!
- Neue Modulmodulecamera. Es enthält Kameramakerfrustums, die an GameObjects angeschlossen werden können.
- Zwei neue Registerkarten, Szene und Spiel. Der erstere enthält die Szene der Editorkamera, während die später die Szene der Spielkamera enthält.
- Frustum Culling. Mit diesen Verbesserungsnetzen, die sich außerhalb der Kamera befinden, werden frustum im Renderprozess verworfen.
- Kamera klare Modi. Die Kamera kann in eine Skybox oder eine einfache Farbe gelöscht werden.
- Die Textur wird mit einer Textur anstelle von OpenGL -Primitiven gerendert.
- Quadtree und Octree. Mit dieser Verbesserung können wir den Renderprozess noch mehr beschleunigen, indem wir die Anzahl der Schecks verringern.
- Neues Modulmoduledebug. Es enthält nützliche Debug -Funktionen.
- [0.2.0] Und es gab GameObjects
- GameObjects kommen herein. Jedes GameObject repräsentiert eine Entität, die mit Komponenten geändert werden kann.
- Komponenten sind Objekte, die verschiedene Entitäten enthalten, wie Masche, Materialien usw.
- Neues Hierarchiefenster, das die Szenen -GameObject -Hierarchie darstellt.
- Überarbeitete Eigenschaftenfenster. Hier können Komponentenparameter geändert werden.
- [0.1.5] Finale 0,1 Version (dies ist der einzige Lehrer)!
- Verschiedene Fehler behoben.
- Mehrere Refaktoren, um gute C ++ - Praktiken zu verfolgen.
- Super coole Readme.
- [0.1.4] Neues Protokoll, Vorbereitungen für die endgültige 0,1 Alpha -Version!
- Überarbeitetes Protokoll. Es zeigt Nachrichten auf klarere und lesbarere Weise an.
- Debug -Nachrichten werden von Annahme und OpenGL erfasst.
- Filtermeldungen von Soruce!
- Die Modellstruktur kann überschrieben werden, um eine PNG -Datei in das Motorfenster zu schleppen und fallen zu lassen.
- [0.1.3] Wow UI, so viele Konfigurationsoptionen
- Neue wunderschöne GUI.
- Viele neue Konfigurationsoptionen für verschiedene Module (Kamera, Rendern, ...).
- Die Szene wird in einem separaten Fenster gerendert.
- Modelleigenschaften werden in einem neuen Fenster angezeigt.
- Die Geschwindigkeit und der Fokus der Kamera werden in Bezug auf die geladene Modellgröße berechnet.
- [0.1.2] Die Zeit beginnt zu fließen, die bevorstehende neue GUI zeigt im Horizont ...
- Zeitmodul hinzugefügt, das den Zeitfluss steuert. Es implementiert zwei Uhren, die Echtzeituhr und die Spieluhr.
- Die Zeit kann angehalten und foward einen Rahmen gestrichen werden. Auch die Zeitskala kann geändert werden.
- FPS kann begrenzt sein.
- Begann eine neue Implementierung von GUI. Einige neue Informationen zur Kamera -Konfiguration hinzugefügt.
- [0.1.1] In diesem Bereich geht es um Modellbeladung und eine Kamera
- Verbesserte Modellbelastung. Ist möglich, Modelle zu laden, die ihre .fbx -Dateien in das Fenster der Engine schleppen und fallen lassen. Die Kamera wird entsprechend den neuen Modellabmessungen skaliert.
- Verbesserte Kamera -Steuerelemente. Durch Drücken von F fokussieren die Kamera auf dem geladenen Modell. Durch das Drücken von ALT wird die Kamera um das aktuelle Modell um das aktuelle Modell umgekehrt.
- Begrenzungsbox hinzugefügt. Durch Drücken von B aktivieren/deaktivieren Sie das Begrenzungsfeld des aktuellen Modells.
- [0.1.0] Hier kommt die Basisversion!
- Es kann Modelle aus FBX -Dateien mithilfe einer diffusen Textur laden.
- Die Kamera kann im unity-ähnlichen Stil gesteuert werden.
- Engine verfügt über eine grundlegende Benutzeroberfläche mit mehreren Konfigurations- und Debug -Optionen.