Motor Littleorion
Motor C ++ 3D desenvolvido durante o mestrado em desenvolvimento de videogames AAA

Destaques
- Criar, salvar e carregar cenas.
- Crie GameObjects e modifique seus comportamentos usando o sistema de componentes.
- Explore a cena usando uma câmera semelhante à unidade.
- Configurar diferentes propriedades do motor: renderizador, gerenciamento de tempo, ...
Instalação
- Faça o download do último lançamento (ou qualquer que desejar) na seção Releases.
- Extrair
Build.zip . - Execute
LittleOrionEngine.exe .
Uso
Consulte o nosso wiki para aprender a usar o mecanismo.
Configuração de desenvolvimento
Para fazer isso garante que você tenha o seguinte:
- Um computador.
- Uma placa gráfica com suporte ao OpenGL.
- VisualStudio 2017 ou acima.
Contribuindo
Porque este é um projeto acadêmico não é possível contribuir diretamente para este repositório. Disse isso, sinta-se à vontade para bifurcar (https://github.com/unnamed-company/littleorionengine/fork) e expandi-lo à sua maneira!
Autores
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
|
Metodologia de Desenvolvimento
Este projeto foi desenvolvido seguindo a filosofia de metodologias Agile. Se você estiver interessado em saber a distribuição das tarefas, não hesite em visitar nosso quadro Trello!
Construído com
- SDL 2.0 - usado para gerenciar a criação e a entrada de janelas.
- GLEW 2.1.0 - Usado para gerenciar extensões OpenGL.
- Mathgeolib 3.0.0 - Usado para fazer a matemática.
- Caro Imgui 1.73 - usado para construir a GUI.
- IMGUI FileBrowser - usado para abrir o diretório de arquivos com o IMGUI.
- Diabo 1.8 - usado para carregar imagens.
- Assimp 5.0 - usado para carregar modelos 3D.
- Fonte Awesome 5 - Usado para exibir ícones sofisticados.
- Cabeçalhos de Icon Fonte CPP - Usado para importar ícones impressionantes da fonte em C ++.
- PCG - usado para gerar bons números aleatórios em C ++.
- Rapidjson 1.1.0 - usado para lidar com arquivos JSON.
- Debug Draw - usado para desenhar formas básicas.
- par_shapes - usado para gerar primitivas básicas.
- IMGUIZMO - Usado para desenhar aparelhos.
- Physfs 3.0.2 - usado para gerenciar o sistema de arquivos.
- Física da bala - usada para simular a física.
- spdlog - usado para registrar coisas.
Licença
Este projeto está licenciado sob a licença do MIT - consulte o arquivo de licença para obter detalhes.
História do lançamento
- [1.0.1] erradicando os bugs e polimento
- Muitas correções de bugs.
- Controles sintonizados para proporcionar a melhor experiência do usuário.
- Melhorias de desempenho ao carregar recursos.
- [1.0.0] A versão v1.0.0 está aqui!
- Materiais de malha. A malha possui seu próprio material, que armazena diferentes texturas e parâmetros de luz.
- Novo
ComponentLight , que representa uma fonte de luz para a cena. É usado ao longo dos materiais de malha. - Escolha do mouse. Os objetos do jogo podem ser selecionados clicando neles na janela da cena.
- Gizmos. Eles são usados para modificar a transformação do objeto selecionado.
- [0.2.2] Arquivos binários e serialização da cena
- Melhor gerenciamento de recursos.
- Os ativos são transformados em um formato menos consumidor de espaço.
- Novo cache que evita a duplicação de recursos.
- Serialização de uma cena, que permite carregar e salvar cenas.
- [0.2.1] Acelerando o motor!
- Novo Module Modulecamera. Ele contém a câmera frustums que podem ser anexados aos objetos do GameObjects.
- Duas novas guias, cena e jogo. O primeiro contém a cena vista da câmera do editor, enquanto o posterior contém a cena vista na câmera do jogo.
- Frustum abate. Com essas malhas de melhoria que estão fora da câmera frustum, são descartadas no processo de renderização.
- Modos limpos da câmera. A câmera pode ser limpa em uma caixa de céu ou em uma cor simples.
- A textura é renderizada usando uma textura em vez de primitivas OpenGL.
- Quadtree e Octtree. Com essa melhoria, podemos acelerar ainda mais o processo de renderização, reduzindo o número de cheques.
- Novo módulo ModuLedeBug. Ele contém funções de depuração útil.
- [0.2.0] e havia objeto de gameObjects
- GameObjects entra. Cada GameObject representa uma entidade que pode ser modificada usando componentes.
- Os componentes são objetos que contêm peças de entidades diferentes, como malhas, materiais, etc.
- Nova janela de hierarquia que representa a cena GameObject Hierarchy.
- Janela de propriedades renovadas. Aqui os parâmetros do componente podem ser modificados.
- [0.1.5] Versão final 0.1 (esta é a única professores)!
- Corrigido vários erros.
- Vários refatores para seguir boas práticas de C ++.
- Readme super legal.
- [0.1.4] Novo log, preparativos para a versão final de 0,1 alfa!
- Log renovado. Ele exibe mensagens de uma maneira mais clara e legível.
- As mensagens de depuração são capturadas de Assimp e OpenGL.
- Filtre as mensagens de Soruce!
- A textura do modelo pode ser substituída arrastando e soltando um arquivo PNG na janela do motor.
- [0.1.3] Uau UI, tantas opções de configuração
- Novo GUI lindo.
- Muitas novas opções de configuração para diferentes módulos (câmera, renderização, ...).
- A cena é renderizada em uma janela separada.
- As propriedades do modelo são mostradas em uma nova janela.
- A velocidade e o foco da câmera são calculados em relação ao tamanho do modelo carregado.
- [0.1.2] O tempo começa a fluir, iminentes novos shows de GUI no horizonte ...
- Módulo de tempo adicionado, que controla o fluxo de tempo. Ele implementa dois relógios, o relógio em tempo real e o relógio do jogo.
- O tempo pode ser pausado e escalonado em um quadro. Também a escala de tempo pode ser alterada.
- O FPS pode ser limitado.
- Iniciou a nova implementação da GUI. Adicionado algumas informações novas à configuração da câmera.
- [0.1.1] Trata -se de carregamento do modelo e uma câmera
- Carregamento de modelo aprimorado. É possível carregar modelos arrastando e soltando seus arquivos .fbx na janela do motor. A câmera será dimensionada de acordo com as novas dimensões do modelo.
- Controles de câmera aprimorados. Pressionar F focará a câmera no modelo carregado. Além disso, pressionar o ALT fará com que a câmera orbite em torno do modelo atual.
- Adicionado caixa delimitadora. Pressionar B ativará/desativará a caixa delimitadora do modelo atual.
- [0.1.0] Aqui vem a versão base!
- Ele pode carregar modelos de arquivos FBX usando uma textura difusa.
- A câmera pode ser controlada em estilo de unidade.
- O mecanismo possui interface do usuário básico com várias opções de configuração e depuração.