20 pontos por GN⁺ 2025-04-19 | 2 comentários | Compartilhar no WhatsApp
  • Um engine de jogos focado em 2D, leve e de alto desempenho, com suporte a recursos 3D
  • Baseado em scripts Lua para controlar toda a lógica do jogo, com builds rápidos e hot reload para acelerar o desenvolvimento
  • Disponível gratuitamente, sem custo de licença nem royalties
  • Suporte multiplataforma robusto, permitindo publicar em várias plataformas com um único desenvolvimento
  • Oferece ferramentas amigáveis para artistas, como editor de cenas e ferramentas de GUI, facilitando a produção visual
  • Expansível e pronto para uso em produção com extensões nativas em C/C++ e integração com diversos SDKs

Principais recursos do Defold

  • Não requer instalação: pode ser usado imediatamente, sem instalação nem configuração
  • Editor visual e de código: permite trabalho criativo por meio de editor visual e editor de código
  • Depurador Lua: oferece ferramenta para depurar scripts Lua
  • Editores de cena e partículas: fornece vários editores para desenvolvimento de jogos 2D e 3D
  • Sem custos: não há custo inicial, taxa de licença, royalties nem custo de runtime

Suporte multiplataforma

  • Várias plataformas: é possível publicar jogos nas principais plataformas, como PlayStation, Nintendo Switch, Android, iOS, macOS, Linux, Windows, Steam, HTML5 e Facebook
  • Sem ferramentas externas: oferece suporte a todas as plataformas a partir de uma única base de código, sem ferramentas externas

Estrutura do engine: foco em 2D, com 3D também

  • O Defold é otimizado para desenvolvimento de jogos 2D, mas também traz recursos 3D integrados
  • Arquitetura baseada em componentes para reforçar desempenho e modularidade
  • Componentes 2D: sprites 2D, modelos Spine, editor de tilemap
  • Componentes 3D:
    • Carregamento de modelos 3D e animações
    • Criação e modificação de meshes 3D em runtime
    • Materiais personalizados e shaders baseados em GLSL
  • Efeitos de partículas
    • Editor de partículas com pré-visualização em tempo real
    • Ajuste de parâmetros com editor de curvas
    • Suporte a emissores de partículas 2D/3D

Recursos de animação

  • Sistema de animação poderoso para uso com sprites, modelos, GUI e mais
  • Animação flipbook: usada em sprites, nós de GUI e partículas
  • Animações de Spine e de modelos
    • Suporte a blending
    • Tratamento de eventos por keyframe
    • Aplicação de cinemática inversa e controle por script
  • Animação de propriedades
    • Todas as propriedades de sprites e GUI podem ser animadas
    • Animação de propriedades personalizada baseada em script
    • Uso de funções de easing personalizadas ou predefinidas

Ferramentas amigáveis para artistas

  • Editor de GUI
    • Composição em camadas com texto, imagens, nós de pizza e mais
    • Recursos de clipping e máscara
    • Suporte a layout automático e rotação de tela
    • Texturas 9-slice, fontes bitmap/campo de distância
    • Reutilização de elementos de UI com templates
  • Editor de cenas
    • Editor visual para montagem e posicionamento de assets
    • Composição de game objects baseada em prefabs
    • Agrupamento de objetos em hierarquia

Simulação física

  • Integração completa com engines de física 2D/3D baseados em Box2D e Bullet
  • Objetos estáticos/dinâmicos/cinemáticos
  • Detecção de colisão por forma e raycast
  • Detecção precisa de colisão em tilemaps
  • Suporte a triggers, joints e motores

Tudo é possível com scripts Lua

  • Scripts Lua
    • Inclui editor de código, syntax highlighting, autocompletar e LSP
    • Depurador embutido e inspeção de variáveis
    • Pipeline de renderização totalmente scriptável
    • Tipagem possível com a linguagem Teal
  • Estilo de código reativo
    • Suporte a estilo reativo em Lua mantendo alto desempenho
    • Estrutura de comunicação assíncrona entre game objects

Suporte multiplataforma

  • Verdadeiramente multiplataforma
    • Publicação com um clique a partir da mesma base de código
    • Steam, Facebook Instant e outros são suportados por extensões
    • O editor oferece suporte a macOS, Windows e Linux
    • Publicação mobile possível sem Xcode ou Android Studio
    • Suporte a WebGL, OpenGL, Vulkan e Metal
  • Muito leve
    • Gerenciamento automático de recursos incluindo apenas os assets usados
    • Empacotamento de atlas de sprites
    • Configuração de compressão de textura por plataforma
    • Batching dinâmico no pipeline de renderização

Desempenho e estabilidade

  • Tamanho de binário muito menor que o de outros engines
    • Cerca de 10% do tamanho de binário de Unity 6 e Godot 4.3 (Android, iOS, HTML5 e Windows)
  • Excelente desempenho
    • Capaz de renderizar dezenas de milhares de objetos (exemplo: Bunnymark)
    • Funciona suavemente até em hardware antigo e navegadores mobile
  • Versão estável
    • Ciclo de lançamento de 4 semanas, incluindo 2 semanas de beta
    • Quase não há mudanças que quebrem compatibilidade retroativa
    • Falhas do engine acontecem muito raramente

Fluxo de trabalho rápido

  • Hot reload
    • Aplicação em tempo real de assets e lógica
    • Suporte a hot reload e depuração sem fio em dispositivos
    • Possibilidade de tratamento de reload personalizado via hooks Lua
  • Workflow personalizado
    • Uso de pipeline de build independente
    • Suporte a build headless integrado a CI
    • Compartilhamento de bibliotecas entre projetos
    • Asset Portal com recursos oficiais e da comunidade
    • Todos os dados são gerenciados como arquivos de texto, facilitando merges
  • Build e refatoração
    • Todos os builds, incluindo HTML5, são concluídos em poucos segundos
    • Suporte a carregamento assíncrono e síncrono
    • Refatoração automática de assets
  • Otimização e depuração
    • Profiler visual em tempo real
    • Amostragem remota de frames baseada na web
    • Possibilidade de capturar vídeo do jogo
    • API de logs de crash nativos

Adicione recursos com extensões nativas

  • É possível expandir os recursos do engine Defold com C, C++, ObjectiveC, Java e JavaScript
  • Geração automática de engine customizado na nuvem
  • Exemplos de uso
    • Computação de alto desempenho e processamento de dados
    • Acesso a hardware, como câmera mobile
    • Integração com SDKs externos, como publicidade e analytics

Uso em produção e integração com terceiros

  • O Defold é um engine de jogos pronto para produção, com integração a SDKs confiáveis
  • Notificações push: Google, Apple
  • Compras no app: Google, Apple, Amazon, Facebook
  • Serviços de jogos: Facebook SDK, Google Play, Firebase
  • Publicidade: suporte a mediação como AdMob e IronSource
  • Rede: WebSockets, Nakama, PlayFab, Colyseus e mais
  • Mais extensões podem ser encontradas no Asset Portal

Por que Defold?

  • O Defold não afirma ser ideal para todos os jogos
  • Mas, para alguns jogos, pode ser a melhor escolha
  • Tem pontos fortes especializados em produtividade de desenvolvimento, leveza, multiplataforma e iteração rápida

2 comentários

 
viel214 2025-04-21

Não é apenas Lua, é LuaJIT, então é muito rápido.

 
GN⁺ 2025-04-19
Comentários do Hacker News
  • Eles escolheram uma solução de licenciamento interessante. Gosto do fato de chamarem de licença de código disponível, em vez de código aberto

    • É possível fazer modificações proprietárias no motor sem precisar divulgá-las (diferente da GPL)
    • Jogos feitos com o motor podem ser monetizados livremente, e isso oferece uma garantia de que não haverá isca e troca
    • O motivo de não ser Apache 2.0 é que isso permitiria monetizar o próprio motor de jogo
    • Parece algo justo e pensado com cuidado. Meus parabéns à equipe
  • Muitos elogios por chamarem de "código disponível" e não usarem "código aberto" de forma incorreta. Também foi bom destacarem os acréscimos feitos sobre a licença baseada em Apache

  • Tenho carinho pelo Defold. Ele é único na área de desenvolvimento de jogos. Por exemplo, o editor de GUI embutido é escrito em Clojure

    • Pelo que sei, ele começou em um estúdio sueco de desenvolvimento de jogos (possivelmente a King)
    • Ferramentas de build/lançamento para plataformas de console podem ter custo para desenvolvedores de jogos, porque os próprios SDKs das plataformas impõem restrições
    • A organização Defold parece estar fazendo um esforço sério para ser justa com desenvolvedores de jogos em questões como licenciamento
  • O Defold existe há bastante tempo. Não sei por que isso está na página principal agora. De qualquer forma, o Defold é bom. Comunidade, documentação etc. ficam abaixo do Godot

    • Outras opções incluem MonoGame (Stardew Valley foi feito com ele) e motores grandes como Unity e Unreal
    • Isso varia muito dependendo de quanto você quer investir em aprendizado, do conjunto de recursos desejado, dos trade-offs ou plataformas a considerar e da linguagem/estilo de programação que pretende usar
  • Lembro da sensação quando o Unity apareceu pela primeira vez. Parecia algo que ia dar certo

    • A sensação aqui é parecida. Dá para perceber pelo espírito da comunicação e da linguagem que a equipe tem algo bom em mãos
    • O fato de a exportação multiplataforma ser muito abrangente hoje é um grande diferencial. Um dos maiores obstáculos do Godot era o suporte a consoles
    • Minha única reclamação era que ele só suportava Lua. Se fosse C#, seria mais interessante para mim. Mas pelo menos não exige recompilar C++ inteiro como alguns motores
  • Há um envio relacionado em andamento. É sobre um jogo escrito em 60k LOC de Lua usando este motor

  • Descobri que não está no Nixpkgs

  • Gostaria de ver uma comparação mais profunda com o Godot em termos de funcionalidades. Pelo menos em recursos 3D, este último parece muito mais avançado

  • Acompanhei esse motor alguns anos atrás. Era o motor de jogo da King, e eles o liberaram quando deixaram de investir nele internamente

  • Em comparação com o Löve 2D, fico curioso sobre como ele se diferencia além de vir com uma IDE. O Defold parece oferecer suporte a mais plataformas, mas empacotar jogos para vários consoles pode envolver dependências bastante fechadas