GQEngine: Uma Engine Simples e Amigável
A GQEngine é uma engine 2D em desenvolvimento, com foco na simplicidade, modularidade e no desenvolvimento por código.
O projeto utiliza uma arquitetura modular baseada em um sistema de plugins, com sua implementação desenvolvida em LuaJIT.
Neste artigo, você conhecerá este projeto que está sendo criado para facilitar a produção de conteúdos didáticos para o Game Quest Studio.
Como a GQEngine Funciona?
A GQEngine utiliza uma arquitetura modular baseada em plugins.
Cada plugin pode fornecer funcionalidade específicas da engine, permitindo que recursos adicionais sejam habilitados conforme a necessidade do projeto.
A implementação utiliza LuaJIT e lua-sdl2 para integração com a SDL2. Dessa forma, a engine mantém sua implmentação em Lua, enquanto a comunicação com a biblioteca gráfica é realizada através do binding.
Entre os sistema atualmente implementados estão:
- Gerenciamento de janelas
- Renderização 2D
- Canvas
- Transformações gráficas
- Sistema de input baseado em ações
- Sistema de cenas e ciclo de vida
Por que usar Lua para o Projeto?
Lua é uma linguagem de programação leve, com sintaxe relativamente simples e baixo custo de integração, características que a tornam adequada para projetos que priorizam simplicidade e facilidade de aprendizado.
A GQEngine utiliza LuaJIT, uma implementação de Lua que utiliza compilação Just-in-Time (JIT) para otimizar a execução do código durante o funcionamento da aplicação.
Lua tambeḿ possui presença no desenvolvimento de jogos e é utilizada em ferramentas e engines como LÖVE, Defold e Roblox.
Sistema de Plugins
As funcionalidade da GQEngine são organizadas através de plugins. Essa estrutura permite separar diferentes sistemas de engine e habilitar funcionalidades adicionais papenas quando necessárias.
Os plugins são divididos entre componentes internos, utilizados pela própria engine, e componentes externos, que podem ser habilitados pelo projeto conforme sua necessidade.
Entre os plugins externos atualmente disponíveis estão o GraphicsPlugin, responsável pela renderização 2D, o InputPlugin, responsável pelo gerenciamento de input, e o ScenesPlugin, responsável pelo gerenciamento de cenas.
Conclusão
A GQEngine encontra-se em uma fase inicial de desenvolvimento, mas sua arquitetura inicial já está definida e os principais sistemas da primeira versão funcional já foram implementados.
O projeto continuará evoluindo com a adição de novos sistemas e o refinamento das APIs existentes. Durante esse processo, a documentação e os exemplos serão atualizados para acompanhar as mudanças da engine.
Leia Também
O que é um Game Loop e como ele Funciona?
O Game Loop é a estrutura central de qualquer jogo. Entenda como ele funciona em três etapas e implemente um em Python com Pygame.
4 Melhores Aplicativos para Jogos no Android
Você quer criar jogos, mas não tem um PC? Conheça 4 apps para criar jogos diretamente no celular e comece a desenvolver hoje mesmo.
O que é um Game Loop e como ele Funciona?
O Game Loop é a estrutura central de qualquer jogo. Entenda como ele funciona em três etapas e implemente um em Python com Pygame.
4 Melhores Aplicativos para Jogos no Android
Você quer criar jogos, mas não tem um PC? Conheça 4 apps para criar jogos diretamente no celular e comece a desenvolver hoje mesmo.