Desenvolvimento de jogos com SFML.NET
Neste artigo conheceremos a biblioteca SFML.NET para desenvolvimento de jogos no .NET Framework. Veremos como a biblioteca está estruturada e suas principais classes, com exemplos práticos de utilização de cada uma.
O conhecimento de práticas e ferramentas voltadas para o desenvolvimento de games, algumas das quais serão abordadas neste artigo, permitem ao desenvolvedor ingressar nesse eixo do mercado, tornando-se parte dessa tendência mundial bastante lucrativa.
Além disso, a programação de games leva o programador a aperfeiçoar suas capacidades técnicas de programação, uma vez que um jogo, apesar de bem diferente da maioria das aplicações comerciais com as quais estamos acostumados, também é um software e como tal pode fazer uso da Programação Orientada a Objetos, boas práticas de programação e Padrões de Projeto.
Todos os anos, a indústria de software alcança novos patamares em todo o mundo e novas possibilidades surgem para usuários e desenvolvedores, que se beneficiam da tecnologia tanto para uso pessoal, quanto profissional.
O acentuado crescimento do número de dispositivos inteligentes que utilizam softwares, tais como notebooks, tablets, smartphones, smartwatches, TVs, consoles, etc., acelera ainda mais esse mercado, uma vez que se há o dispositivo, há também a necessidade de programar suas funcionalidades.
A indústria de games, que também faz parte da indústria de softwares e aplicativos, não poderia ser diferente. Dia após dia observamos o crescente número de adeptos aos jogos eletrônicos e o aperfeiçoamento dos gráficos e funcionamento desse tipo de aplicação, que funcionam não só como divertimento, mas também como ferramenta educacional e de auxílio em diversas áreas, como no tratamento de pacientes com dificuldades motoras.
Do ponto de vista do profissional (ou aspirante) dessa área, o mercado de games tem se mostrado bastante rentável e desperta otimismo. Segundo a Abragames (Associação Brasileira de Desenvolvedores Games), a indústria de jogos eletrônicos no Brasil tem apresentado crescimento de 9% a 15% nos últimos cinco anos, o que representa um cenário animador para as empresas que já estão no ramo e para aqueles que desejam entrar.
Iniciar no desenvolvimento de games não é complicado, mas ao mesmo tempo requer um pouco mais de criatividade e habilidades gráficas do que geralmente são necessárias quando se está criando softwares de cadastros e relatórios.
Em grandes projetos geralmente se tem equipes multidisciplinares, compostas por designers, programadores, além de outros profissionais especialistas em som, história, e outras partes importantes do jogo.
Já no que diz respeito às ferramentas, existem atualmente diversas engines e bibliotecas com suporte a várias linguagens de programação, umas mais complexas, com editores próprios e bastante adequadas para jogos maiores que requerem melhores efeitos e física, como a Unity 3D e a Unreal Engine, e outras mais simples e leves, que são usadas dentro do Visual Studio e representam boas escolhas para jogos mais simples e para o aprendizado, como a SFML.NET, que será o foco deste artigo.
Também no Visual Studio, uma outra opção bem interessante para quem está ingressando na área é o MonoGame, versão open source do framework XNA da própria Microsoft.
Ao longo deste artigo conheceremos melhor a biblioteca SFML.NET, suas classes e como trabalhar com alguns dos principais elementos utilizados em jogos, como sprites, janelas, shapes e eventos de interação com o usuário.
SFML.NET
A biblioteca SFML (Simple and Fast Multimedia Library) foi originalmente desenvolvida para a linguagem C++, concorrendo diretamente com outras bibliotecas bastante utilizadas, como SDL e Allegro. Visando expandir o alcance da biblioteca, foram criadas versões para outras linguagens, chamadas de bindings e que estão disponíveis para download na página oficial do projeto.
Os bindings para linguagem C (CSFML) e .NET (SFML.NET) são ditos oficiais, uma vez que são desenvolvidos e mantidos pelo próprio criador da SFML.
Os demais bindings (para Java, Go, OCaml, Pascal, Ruby, Python e várias outras) são desenvolvidos e mantidos pela comunidade e possuem seus próprios sites oficiais, mas são listados no site da própria SFML, de forma a reunir todas as iniciativas acerca dessa biblioteca.
A SFML.NET foi desenvolvida com base na CSFML, o que a torna compatível com outras plataformas e permite que seja usada no Mono (BOX 1). Esse binding não possui ainda uma documentação oficial online, porém, por ser extremamente semelhante à versão em C++ (SFML), a documentação desta pode ser consultada como base e certamente provê bastante informação a respeito da estrutura principal da biblioteca, seus esquemas de nomenclatura e exemplos práticos, que podem ser facilmente convertidos para .NET.
Atualmente patrocinado pela empresa Xamarin, o projeto Mono é uma implementação open source do .NET Framework cujo objetivo é permitir o desenvolvimento de aplicações multiplataforma utilizando os recursos do .NET, que originalmente alcança apenas ambientes Windows.
Com o Mono é possível desenvolver aplicações .NET no Linux e Mac, obtendo resultados muito semelhantes aos que se obtém no Visual Studio em ambiente Windows.
As Listagens 1 e 2 mostram o código equivalente em C++ e C# para criar uma janela e exibi-la na tela, permitindo ao usuário movê-la e fechá-la.
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "My window");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color::Black);
window.display();
}
return 0;
}
"
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo