Esta um mini game engine criada a partir de dois repositórios: "CG" e "Jogos" de JudsonSS. O propósito dessa game engine é para aprender conceitos de computação gráfica e algumas APIs como de gráficos e janelas por exemplo.
Obviamente que não há pretenção em concorrer com motores profissionais a nível de otimização, facilidade de uso ou disponibilidade de ferramentas.
Luna3D/
├── src/ # Código-fonte (.cpp)
│ ├── win/ # plataforma windows
│ └── linux/ # plataforma linux
│ ├── XCB/ # biblioteca XCB
│ ├── Xlib/ # biblioteca Xlib
│ └── Wayland/ # biblioteca Wayland
├── examples/ # Alguns exemplos de código usando a game engine
│ ├── simplewindow/ # Cria um simples janela
│ ├── hellotriangle/ # Cria um simples triangle na tela
│ └── ... # Outros exemplos (Em breve)
├── build/ # Diretório de saída da compilação (ignorado pelo Git)
├── CMakeLists.txt # Automatiza o processo de build
└── README.md # Esta documentação
Para construir este projeto, você precisa ter instalado as seguintes dependências:
- CMake 3.5 or maior
- Compilador C++ com C++20
- Windows 10 SDK
- Graphics Tools
- XLib (X11): libx11-dev, libxfixes-dev, libxcursor-dev, libpng-dev.
- XCB: libxcb1-dev, libxcb-icccm4-dev, libxcb-fixes0-dev, libxcb-errors-dev, libxkbcommon-dev.
- Wayland: libwayland-dev, wayland-protocols, libxkbcommon-dev, zenity.
Dica de Cursor: O Linux utiliza o formato Xcursor. Você pode converter arquivos .cur do Windows usando a ferramenta win2xcur.
- wayland-client
- wayland-cursor
- wayland-protocols
- pkg-config
- xkbcommon
- zenity
- Vulkan SDK
- GLM Headers
- Clone o repositório.
https://github.com/SamuelDevz/Luna3D.git
cd Luna3D- Gere os arquivos de build e compile:
Substitua as flags conforme sua necessidade (veja a tabela abaixo).
cmake -B build -DBUILD_EXAMPLES=ON -DBUILD_DIRECT3D12=ON
cmake --build build --config Release| Opção | Descrição | Padrão |
|---|---|---|
| BUILD_EXAMPLES | Compila os projetos de exemplo. | OFF |
| SHARED_LIBRARIES | Compila como libs dinâmicas. | OFF |
| BUILD_X11 | Build usando Xlib (Linux). | OFF |
| BUILD_XCB | Build usando XCB (Linux). | OFF |
| BUILD_WAYLAND | Build usando Wayland (Linux). | OFF |
| BUILD_VULKAN | Build usando Vulkan (Win/Linux). | OFF |
| BUILD_DIRECT3D11 | Build usando D3D11 (Windows). | OFF |
| BUILD_DIRECT3D12 | Build usando D3D12 (Windows). | OFF |
Contribuições são bem-vindas! Se você tem ideias para novas funcionalidades, melhorias de performance ou correções de bugs, por favor, siga estes passos:
- Faça um "Fork" do repositório.
- Crie uma nova branch para sua feature (
git checkout -b feature/minha-feature). - Faça o commit de suas alterações (
git commit -m 'Adiciona minha-feature'). - Envie para a sua branch (
git push origin feature/minha-feature). - Abra um "Pull Request".
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.