SevenX Engine
Uma engine de jogos 2D moderna e minimalista, baseada em pixels, feita em Rust. Ideal para aprendizado, prototipagem rápida e desenvolvimento de jogos 2D.
✨ Funcionalidades (v0.2.4) 🎉
Core
- 🎮 Sistema de Componentes: Arquitetura flexível baseada em componentes (Transform, Physics, Collider)
- 🎨 Renderização 2D: Controle de baixo nível do buffer de pixels com suporte a transparência
- 📷 Sistema de Câmera: Viewport com zoom, scroll e seguimento suave de alvos
- 🎯 Sistema de Layers: Z-index para controle de profundidade de renderização
Física e Colisão
- ⚡ Sistema de Física: Velocidade, aceleração, gravidade e arrasto configuráveis
- 💥 Detecção de Colisão: AABB (Axis-Aligned Bounding Box) com suporte a triggers
- 🌍 Gravidade Global: Configurável por mundo
Sprites e Animação
- 🖼️ Sprite Sheets: Carregamento e gerenciamento de sprite sheets
- 🎬 Sistema de Animação: Animações baseadas em frames com múltiplas ações e direções
- 💾 Resource Manager: Cache de texturas para melhor performance
Áudio 🔊 NOVO
- 🎵 Sistema de Áudio: Reprodução de música e efeitos sonoros
- 🔉 Controle de Volume: Volume independente para música e SFX
- 💿 Cache de Sons: Gerenciamento eficiente de recursos de áudio
Tilemap e Níveis 🗺️ NOVO
- 🧱 Sistema de Tilemap: Renderização de níveis baseados em grid
- 🚧 Tiles Sólidos: Colisão com tiles para plataformas
- 💾 Serialização: Salvar/carregar níveis em JSON ou TOML
- 🎨 Editor de Níveis: Ferramentas para criar níveis
Partículas ✨ NOVO
- 💥 Sistema de Partículas: Explosões, fumaça, brilhos e efeitos customizados
- 🎆 Emissores: Burst (explosão) e stream (contínuo)
- 🌈 Alpha Blending: Transparência suave
- ⚙️ Configurações: Presets prontos e customizáveis
UI 🖼️ NOVO
- 🔘 Botões: Botões interativos com hover
- 📝 Texto: Renderização de texto bitmap 8x8
- 🎨 Primitivas: Retângulos, bordas e formas básicas
Eventos 📡 NOVO
- 🎯 Sistema de Eventos: Eventos customizáveis com callbacks
- 📬 Fila de Eventos: Processamento assíncrono
- 🎮 Eventos Pré-definidos: PlayerDied, CoinCollected, LevelComplete, etc.
Input e Configuração
- ⌨️ Input Handling: Sistema de captura de eventos de teclado
- 🎮 Suporte a Gamepad: Botões e eixos analógicos com deadzone NOVO
- ⚙️ Engine Config: Configuração customizável de janela, gravidade e cores
🚀 Instalação
Adicione ao seu Cargo.toml:
[]
= "0.2.4"
📖 Exemplo Básico
use ;
;
🎯 Exemplos Avançados
Física e Gravidade
use ;
// Cria um objeto com física
let mut player = new
.with_physics // Resistência do ar
.with_collider
.with_z_index;
Sistema de Câmera
// Seguir o jogador suavemente
if let Some = world.game_objects.iter
.find
// Zoom
engine.get_camera_mut.set_zoom;
Resource Manager
use ResourceManager;
let mut resources = new;
// Carrega e cacheia sprites
resources.load_sprite_sheet?;
resources.load_sprite_sheet?;
// Reutiliza sprites do cache
if let Some = resources.get_sprite_sheet
🏗️ Arquitetura
A SevenX Engine usa uma arquitetura baseada em componentes:
GameObject
├── Transform (posição, rotação, escala)
├── Physics (opcional - velocidade, aceleração)
├── Collider (opcional - detecção de colisão)
├── Sprites (sprite sheets por ação)
└── Animations (animações por direção)
📚 Módulos
animation- Sistema de animação de spritescamera- Controle de viewport e câmeracollision- Detecção de colisão AABBconfig- Configuração da enginegame_object- Entidades do jogogame_state- Trait para estados de jogoinput- Gerenciamento de inputphysics- Sistema de física 2Drenderer- Renderização de pixelsresource_manager- Cache de recursossprite- Sprite sheetstransform- Transformações espaciaisworld- Gerenciamento de objetos
🎮 Exemplos Incluídos
Execute os exemplos com:
🛣️ Roadmap
- Sistema de áudio (música e efeitos sonoros) ✅ v0.2.1
- Carregamento de níveis via arquivos (JSON/TOML) ✅ v0.2.1
- Sistema de partículas ✅ v0.2.1
- Tilemap e tile editor ✅ v0.2.1
- Sistema de UI básico ✅ v0.2.1
- Suporte a gamepad ✅ v0.2.1
- Sistema de eventos customizáveis ✅ v0.2.1
- Melhor suporte a rotação de sprites ✅ v0.2.3
- Sistema de diálogos ✅ v0.2.3
- Save/Load de progresso do jogo ✅ v0.2.3
- Integração com bibliotecas de áudio reais (rodio) ✅ v0.2.3
- Sistema de networking multiplayer
- Shaders customizáveis
- Sistema de conquistas/achievements
- Suporte a controllers adicionais
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
📄 Licença
Este projeto é licenciado sob os termos da licença MIT ou Apache 2.0, à sua escolha.