Dualidade - um mecanismo fácil e rápido para o igrostroy no Windows (Ext.)

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.

Dualitor


E este é um exemplo de código para um componente que controla o movimento de uma nave espacial.

Código
using 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.

Source: https://habr.com/ru/post/pt441608/


All Articles