Cave Engine 1.4.1 já está disponível. Esta atualização foca em desempenho, melhorias no fluxo de trabalho e novas APIs que tornam seu desenvolvimento mais rápido e escalável. Se você está criando jogos 3D para desktop com Python, esta versão melhora diretamente a eficiência em tempo de execução, a usabilidade do editor e a estabilidade geral. Caso ainda não saiba, Cave Engine é um motor de jogo 3D de alta performance criado para desenvolvimento desktop, combinando um núcleo em C++ com scripting em Python para iteração rápida. Ele é voltado para desenvolvedores que querem controle total sobre renderização, sistemas e performance sem sacrificar a produtividade.
Com a adoção crescendo e uma base de usuários em rápida expansão, as atualizações estão saindo com mais frequência, e a 1.4.1 reflete esse ritmo. A última versão foi há menos de 2 semanas. :)
Esta é uma versão menor, mas que entrega ganhos significativos em renderização, ferramentas e consistência da API. Também reflete o feedback direto de centenas de novos usuários que entraram no ecossistema nas últimas semanas. Vamos direto ao que mudou.

Suporte a Texturas DDS
Cave agora suporta a importação de texturas .dds, incluindo a maioria dos formatos principais e variantes comprimidas. Isso oferece mais flexibilidade ao trabalhar com pipelines de textura otimizados e ferramentas externas que já exportam formatos DDS.
Matrizes de Transformação Agora São Cacheadas
As matrizes de transformação agora são cacheadas por padrão em todo o motor, incluindo TransformComponent, TerrainComponent e ossos de Armature. Isso melhora tanto os cálculos de renderização quanto de física.
Em testes internos de estresse com mais de 10.000 entidades únicas, essa mudança sozinha resultou em um ganho médio de cerca de 10 FPS. O motor agora consegue prever melhor quando as transformações precisam ser recalculadas, reduzindo trabalho desnecessário a cada frame.
Mudanças na API Python (Atualização Necessária)
Por causa dessa otimização, os getters de transformação não retornam mais referências.
Isto não funciona mais:
transf.getPosition() = cave.Vector3(1,0,0)
Você deve agora definir valores explicitamente:
transf.setPosition(cave.Vector3(1,0,0))
O método getPositionCopy() foi removido, já que getPosition() já retorna uma cópia.
Essa troca foi necessária para garantir a consistência do cache e liberar os ganhos de performance. Fique atento que, ao portar um projeto existente de versões antigas do Cave, isso pode quebrar seu código, então será necessário aplicar as correções indicadas acima.
Nova Interface do Profiler
A interface do Profiler foi redesenhada para melhorar a clareza e usabilidade. Agora você pode identificar gargalos de performance mais rapidamente e com dados mais precisos. Confira a Aba Profiler no lado direito:

Internamente, o sistema de profiling também recebeu melhorias. Você deve esperar medições mais precisas e melhor visibilidade sobre o que impacta o tempo do seu frame.
Avaliação de Render Graph Mais Rápida
A avaliação do render graph foi otimizada com caching adicional e melhorias em threading. Cenas grandes antes consumiam muito mais CPU do que o desejado. Com esta atualização, a avaliação está significativamente mais rápida e eficiente. Essa melhoria está diretamente ligada ao sistema de cache de transformações.
Coleta Crítica de Dados de Análise (Analytics)
Cave agora coleta análises básicas de uso para melhorar a estabilidade e acelerar a correção de bugs.
Essa decisão foi discutida e votada com a comunidade, e a maioria dos usuários (92,8% a favor) concordou com a abordagem. Os dados coletados são estritamente técnicos e não incluem seus projetos, assets, códigos, nem qualquer conteúdo pessoal.
Os dados coletados incluem:
- Padrões de uso do motor (se abriu e fechou corretamente, se o jogo iniciou e parou sem problemas)
- Relatórios de crash
- Status de exportação
Isso permite maior visibilidade dos problemas no mundo real e ajuda a priorizar correções efetivamente. O objetivo principal aqui é priorizar, corrigir e melhorar quaisquer problemas que você possa enfrentar com o Cave, mais rapidamente.
Você também encontrará um botão Enviar Feedback no canto superior direito do Editor. Você pode enviar seu feedback a qualquer momento diretamente pelo motor.
Nova API Python: cave.ui.textAsProp(...)
Uma nova API está disponível para desenvolvimento de ferramentas dentro do Editor.
Você pode agora exibir texto como se fosse um campo de propriedade. Isso melhora a experiência do usuário em ferramentas customizadas e permite uma integração mais consistente com a interface do Editor.
Melhor Desenho de Bezier para Debug
O método da cena addDebugBezier(...) agora renderiza curvas de Bezier com visuais e performance melhorados.
Você verá:
- Setas direcionais se movendo ao longo da curva
- Renderização mais suave
- Melhor performance com grandes quantidades
Agora você pode trabalhar com centenas de Beziers de debug numa cena sem problemas de performance. Esses Beziers continuam sendo somente para debug e não são incluídos nas builds finais ou no jogo durante o modo Play.
PathComponent – Novos Métodos
O PathComponent recebeu vários novos métodos na API Python:
-
generateDerivativePath(self, outPath: PathComponent, width: float = 1) Gera um novo caminho deslocando as arestas para ambos os lados enquanto preserva a conectividade.
-
balanceEdgeDirections(self) Reatribui direções das arestas para reduzir conflitos de direção nas conexões dos nós.
-
mergeByDistance(self, distance: float = 0.001) Une pontos que estejam dentro de uma distância especificada.
-
clear(self) Remove todos os pontos e arestas do caminho.
Essas adições expandem os fluxos de trabalho de geração procedural e manipulação de caminhos.
Melhoria na Edição de Documentação
A edição de documentação está mais direta. Ao abrir a aba "Edit" de um Asset Documentation, você pode modificar o documento completo inline, sem precisar abrir uma janela separada. Isso reduz atritos e melhora o fluxo de escrita dentro do Editor.
Otimização de Mesh e ImageTexture
Foram aplicadas melhorias de performance nos sistemas centrais:
- O método
mergeByDistance(...)do Mesh agora é O(n) em vez de O(n²) - O carregamento de
ImageTextureestá mais rápido
Essas mudanças reduzem o tempo de processamento em cenas grandes e projetos com muitos assets.
Correções de Bugs
- Corrigidos crashes aleatórios de GPU causados pelo Dear ImGui
- Corrigidos crashes em OpenGL
- Corrigida janela de onboarding que aparecia repetidamente após ser concluída
Notas Finais
O Cave Engine continua evoluindo rapidamente, impulsionado pelo uso real e feedback direto da comunidade. Esta versão foca em desempenho, estabilidade e melhores ferramentas, impactando diretamente seu fluxo de trabalho diário.
Se você já usa o Cave, atualize agora e aproveite as melhorias.
Se você está avaliando engines para desenvolvimento 3D desktop com Python, esta versão fortalece o Cave como uma opção séria e pronta para produção. Neste caso, você pode ver os Preços e Planos do Cave Engine 1.4.1 aqui:
Saiba Mais sobre Cave Engine
FAQ
Cave Engine é bom para jogos 3D de desktop?
Sim. Cave foi criado especificamente para desenvolvimento 3D desktop de alta performance com núcleo em C++ e scripting Python.
O cache de transformações vai quebrar meu código?
Somente se você dependia de retorno por referência. Agora deve usar setters como setPosition().
Os dados de analytics são seguros?
Sim. Apenas dados técnicos são coletados. Nenhum arquivo pessoal, asset ou código é incluído.
Cave Engine está mais rápido após esta atualização?
Sim. Cache de transformações, otimização no render graph e melhorias em mesh contribuem para melhor performance.
Spoilers
Para o Cave 1.6, aqui vai um pequeno spoiler:
