Saudações, leitor.
Esta publicação se concentrará em um mecanismo de jogo promissor e bastante jovem que permaneceu imerecidamente à sombra de gigantes como Unity ou Unreal Engine.
Os desenvolvedores são uma associação de entusiastas liderada pelo covil de Adam.
Como o site oficial nos diz: “Duality é um mecanismo de jogo 2D modular que vem com seu próprio editor. É facilmente extensível, escrito em C # e usa o OpenGL para exibir gráficos. ” A dualidade usa uma arquitetura popular orientada a componentes para escrever lógica. Escrevemos um componente, anexamos a um objeto de jogo e tudo funciona, salvando completamente o programador da rotina. Outra vantagem é o suporte a plugins, que qualquer pessoa pode criar e conectar aos seus projetos.
"Clássico", você diz, e você estará certo. A dualidade não é pior do que outras ferramentas, também cuida do gerenciamento de recursos, fornece subsistemas de entrada e saída, gráficos, áudio e simulação física. Se você adicionar o editor conveniente Dualitor a isso, poderá obter um excelente ambiente para o desenvolvimento de jogos independentes.
Então, por que preciso do Duality quando há soluções mais abrangentes como o Unity?
- Gratuito (Licença MIT). Você não precisa pagar, publicar seu código-fonte e executar outras ações que restringem sua criatividade. As fontes de dualidade também estão disponíveis no GitHub.
- Leveza. O editor pesa ~ 100 mb, um jogo totalmente funcional pesa ~ 7 mb.
- Performance. Na versão mais recente no momento v3, uma otimização em larga escala do mecanismo foi realizada. Nos testes realizados para a carga de trabalho estimada, no pior dos casos, o tempo de renderização não excedeu 6 ms e a coleta de lixo foi realizada cerca de cinco vezes por minuto.
- Simplicidade. Se você estiver familiarizado com o mesmo Unity ou Unreal Engine, poderá dominar a Duality sem problemas. A API está bem documentada e fornece interfaces convenientes para que o programador não se distraia com operações de baixo nível.
- Comunidade. Pode não ser contado por milhares de usuários, mas contém desenvolvedores dedicados que ajudam pessoalmente os novatos a aprender o mecanismo. Muito amigável e oportuna. Além disso, vários tutoriais foram criados e foi aberto um fórum que contém uma grande quantidade de informações úteis.
Talvez valha a pena tentar
Eu acho que você quer ver como tudo parece.
O editor. Simples, mas funcional. Ele mostra a familiar Scene View, Project View, Inspector e Camera View. Abaixo está um painel de registro oculto.
E este é um exemplo de código para um componente que controla o movimento de uma nave espacial.
Códigousing Duality; using Duality.Components.Physics; using Duality.Input; namespace Duality_ { [RequiredComponent(typeof(RigidBody))] public class Player : Component, ICmpUpdatable { public void OnUpdate() { RigidBody rb = GameObj.GetComponent<RigidBody>(); if (DualityApp.Keyboard[Key.Left]) rb.ApplyLocalForce(-0.001f * rb.Inertia); else if (DualityApp.Keyboard[Key.Right]) rb.ApplyLocalForce(0.001f * rb.Inertia); else rb.AngularVelocity -= rb.AngularVelocity * Time.TimeMult * 0.1f; if (DualityApp.Keyboard[Key.Up]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * -0.2f); else if (DualityApp.Keyboard[Key.Down]) rb.ApplyLocalForce(Vector2.UnitY * rb.Mass * 0.2f); } } }
Não conheço você, mas estou agradavelmente surpreendido com a simplicidade dessa estrutura. A propósito, um indicador do sucesso do mecanismo são os jogos feitos nele. Como é usado por equipes pequenas, os jogos também não são lançados no nível AAA. Portanto, não há nada para se gabar ainda.
Neste site você pode assistir a jogos prontos .
Também conheço um projeto sério que está atualmente em desenvolvimento e publicado no Steam, mas é melhor escrever sobre ele outra vez.
O que você não deve esperar da Dualidade
O mecanismo de plataforma cruzada é uma das suas fraquezas. Somente a família de sistemas operacionais Windows é totalmente suportada; o restante é suportado por desenvolvedores de terceiros ou não é suportado. Também não há implementação interna da interface do usuário, mas como o Duality é um mecanismo modular, existem plugins que eliminam essa desvantagem.
A próxima grande desvantagem será o problema da API da rede. No momento, não há nenhum módulo de plug-in ou kernel que implementaria recursos para vários jogadores.
E a principal razão pela qual o mecanismo perde para os concorrentes é a pequena comunidade. Existem poucas pessoas que estão desenvolvendo essa boa ferramenta.
Principais recursos do mecanismo:
- Física 2D baseada no Farseer Physics Engine. Entre os componentes internos, existe um corpo rígido, que cobre os requisitos básicos para objetos físicos.
- Animação 2D usando o componente AnimSpriteRenderer. Juntamente com um sistema simples de entrada do usuário, você pode animar facilmente qualquer caractere.
- Suporte para sombreadores de vértices e fragmentos. Se isso não for suficiente, você poderá implementar seu próprio componente para renderização.
- Pré-fabricados, incluindo os aninhados, para que não haja problemas com a aquisição de objetos de jogo.
- Gerenciador de conteúdo conveniente. Os links para recursos são mantidos automaticamente e facilmente usados no código.
- Os TileMaps foram criados como um plug-in separado, mas fazem excelente uso dos recursos do mecanismo para obter o máximo desempenho.
- Extensibilidade do editor. Você pode adicionar sua própria funcionalidade ao editor, escrever comandos e plug-ins necessários especificamente para suas tarefas.
Para concluir esta breve revisão, quero dizer que existem muitos outros mecanismos de jogos que podem não ser inferiores a este e isso é bom. Obviamente, não exorto você a desistir de tudo o que já usa, mas apresento a você um projeto de qualidade. Se você é um desenvolvedor solitário ou uma equipe pequena que procura algo simples e poderoso o suficiente, tente o Duality.
O site oficial.