Moteur Littleorion
Le moteur C ++ 3D s'est développé pendant la maîtrise dans le développement de jeux vidéo AAA

Points forts
- Créer, enregistrer et charger des scènes.
- Créez des GameObjects et modifiez leurs comportements à l'aide du système de composants.
- Explorez la scène à l'aide d'une caméra en forme d'unité.
- Configurer différentes propriétés du moteur: rendu, gestion du temps, ...
Installation
- Téléchargez la dernière version (ou quelle que soit votre version que vous voulez) dans la section des versions.
- Extraire
Build.zip . - Exécuter
LittleOrionEngine.exe .
Usage
Veuillez vous référer à notre wiki afin d'apprendre à utiliser le moteur.
Configuration du développement
Pour ce faire, assurez-vous que vous avez ce qui suit:
- Un ordinateur.
- Une carte graphique avec prise en charge OpenGL.
- VisualStudio 2017 ou supérieur.
Contributif
Parce qu'il s'agit d'un projet académique n'est pas possible de contribuer directement à ce dépôt. Dit cela, n'hésitez pas à le débarrasser (https://github.com/unnamed-company/littleorionEngine/Fork) et à l'étendre à votre manière!
Auteurs
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
|
Méthodologie de développement
Ce projet a été développé après la philosophie des méthodologies Agile. Si vous êtes intéressé à connaître la distribution des tâches, n'hésitez pas à visiter notre tableau Trello!
Construit avec
- SDL 2.0 - Utilisé pour gérer la création et l'entrée de fenêtres.
- Glew 2.1.0 - Utilisé pour gérer les extensions OpenGL.
- Mathgeolib 3.0.0 - utilisé pour faire les calculs.
- Cher Imgui 1.73 - Utilisé pour construire l'interface graphique.
- IMGUI FileBrowser - Utilisé pour ouvrir le répertoire de fichiers avec IMGUI.
- Devil 1.8 - Utilisé pour charger des images.
- Asimp 5.0 - Utilisé pour charger les modèles 3D.
- Font Awesome 5 - Utilisé pour afficher des icônes de fantaisie.
- Les en-têtes CPP de police icône - Utilisé pour importer des icônes impressionnantes de police en C ++.
- PCG - Utilisé pour générer de bons nombres aléatoires en C ++.
- Rapidjson 1.1.0 - utilisé pour gérer les fichiers JSON.
- Dessin de débogage - Utilisé pour dessiner des formes de base.
- Par_shapes - Utilisé pour générer des primitives de base.
- Imuizmo - Utilisé pour dessiner des gizmos.
- Physfs 3.0.2 - Utilisé pour gérer le système de fichiers.
- Physique des balles - utilisé pour simuler la physique.
- SPDLOG - Utilisé pour enregistrer des trucs.
Licence
Ce projet est autorisé en vertu de la licence MIT - voir le fichier de licence pour plus de détails.
Sortie de l'histoire
- [1.0.1] Erradiquant les insectes et le polissage
- Beaucoup de corrections de bogues.
- Contrôles à l'écoute afin de donner la meilleure expérience utilisateur.
- Améliorations des performances lors du chargement des ressources.
- [1.0.0] V1.0.0 La version est ici!
- Matériaux en maille. Il Mesh a son propre matériel, qui stocke différentes textures et paramètres de lumière.
- Nouveau
ComponentLight , qui représente une source lumineuse pour la scène. Il est utilisé le long des matériaux en maille. - Cueillette de souris. Les objets de jeu peuvent être sélectionnés en cliquant sur eux dans la fenêtre de la scène.
- Gizmos. Ils sont utilisés pour modifier la transformée de l'objet sélectionné.
- [0.2.2] Fichiers binaires et sérialisation des scènes
- Meilleure gestion des ressources.
- Les actifs sont transformés en format moins spatial.
- Nouveau cache qui évite la duplication des ressources.
- Sérialisation d'une scène, qui permet de charger et d'économiser des scènes.
- [0.2.1] accélérer le moteur!
- Nouveau module moduleCamera. Il contient des frustums de caméra qui peuvent être attachés à GameObjects.
- Deux nouveaux onglets, scène et jeu. Le premier contient la scène vue de l'appareil photo de l'éditeur tandis que le dernier contient la scène vue de la caméra de jeu.
- Amélioration du frustum. Avec ces maillots d'amélioration qui sont à l'extérieur de la caméra, le frustum est jeté dans le processus de rendu.
- Modes de caméra. La caméra peut être dégagée dans une Skybox ou une couleur ordinaire.
- La texture est rendue à l'aide d'une texture au lieu de primitives OpenGL.
- Quadtree et Octtree. Avec cette amélioration, nous pouvons accélérer encore plus le processus de rendu en réduisant le nombre de contrôles.
- Nouveau module moduledebug. Il contient des fonctions de débogage utiles.
- [0.2.0] et il y avait des gameobjects
- GameObjects entre. Chaque GameObject représente une entité qui peut être modifiée à l'aide de composants.
- Les composants sont des objets qui contiennent différentes parties entités, comme les mailles, les matériaux, etc.
- Nouvelle fenêtre de hiérarchie qui représente la hiérarchie de la scène GameObject.
- Fenêtre de propriétés remaniées. Ici, les paramètres des composants peuvent être modifiés.
- [0.1.5] Version finale 0.1 (c'est le seul enseignant)!
- Correction de divers bugs.
- Plusieurs refacteurs afin de suivre les bonnes pratiques C ++.
- Readme super cool.
- [0.1.4] Nouveau journal, préparations pour la version finale 0.1 Alpha!
- Journal remanié. Il affiche des messages d'une manière plus claire et plus lisible.
- Les messages de débogage sont capturés à partir d'Asimp et OpenGL.
- Filtrez des messages par Soruce!
- La texture du modèle peut être remplacée par glisser et supprimer un fichier PNG dans la fenêtre du moteur.
- [0.1.3] WOW UI, tant d'options de configuration
- NOUVEAU GRANDE GUI.
- Beaucoup de nouvelles options de configuration pour différents modules (caméra, rendu, ...).
- La scène est rendue dans une fenêtre séparée.
- Les propriétés du modèle sont affichées dans une nouvelle fenêtre.
- La vitesse et la mise au point de la caméra sont calculées concernant la taille du modèle chargé.
- [0.1.2] Le temps commence à couler, une nouvelle GUI imminente montre à l'horizon ...
- Ajout du module de temps, qui contrôle le flux de temps. Il implémente deux horloges, l'horloge en temps réel et l'horloge de jeu.
- Le temps peut être interrompu et a mis un pas à un cadre. L'échelle de temps peut également être modifiée.
- Les FP peuvent être limités.
- A commencé une nouvelle implémentation de GUI. Ajout de nouvelles informations à la configuration de la caméra.
- [0.1.1] Il s'agit de chargement de modèle et d'une caméra
- Chargement du modèle amélioré. Est possible de charger des modèles glisser et supprimer leurs fichiers .fbx dans la fenêtre du moteur. La caméra sera mise à l'échelle en conséquence aux nouvelles dimensions du modèle.
- Amélioration des commandes de la caméra. La pression F concentrera l'appareil photo sur le modèle chargé. En outre, en appuyant sur ALT, l'orbite de la caméra autour du modèle actuel.
- Ajout d'une boîte de limite. Appuyez sur B activer / désactiver la boîte de délimitation du modèle actuel.
- [0.1.0] Voici la version de base!
- Il peut charger des modèles à partir de fichiers FBX à l'aide d'une texture diffuse.
- La caméra peut être contrôlée dans un style d'unité.
- Le moteur a une interface utilisateur de base avec plusieurs options de configuration et de débogage.