C# é uma das linguagens de programação mais populares que é utilizada para criar jogos no motor de jogos da Unidade. As experiências (jogos, aplicações AR/VR, etc.) construídas com a Unidade atingiram quase 3 mil milhões de dispositivos em todo o mundo e foram instaladas 24 mil milhões de vezes nos últimos 12 meses. Falámos com Harrison Ferrone, engenheiro de software, criador de jogos, tecnólogo criativo e autor do livro, “Learning C# by Developing Games with Unity 2019”. Falámos sobre porque é que o C# é utilizado para a concepção de jogos, o recente lançamento de Unity 2019.2, e algumas dicas e truques para quem desenvolve jogos com Unity.
Em C# e desenvolvimento de jogos
Porquê é que o C# é largamente utilizado para criar jogos? Como se compara com C++? Como é que C# está a ser utilizado noutras áreas, tais como o desenvolvimento móvel e web?
Penso que a Unity escolheu avançar com C# em vez de Javascript ou Boo devido à sua curva de aprendizagem e à sua história com a Microsoft. .
Na minha experiência, C# é mais fácil de aprender do que línguas como C++, e que a acessibilidade é um grande atractivo para designers de jogos e programadores em geral. Com o desenvolvimento móvel de Xamarin e aplicações web ASP.NET na mistura, não há realmente como parar a linguagem C# em breve.
O que são scripts C#? Como são úteis para criar jogos com Unity?
C# scripts são os ficheiros de código que armazenam os comportamentos em Unity, alimentando tudo o que o motor faz. Embora existam muitas ferramentas novas que permitirão a um programador fazer um jogo sem elas, os scripts continuam a ser a melhor forma de criar acções e interacções personalizadas dentro de um espaço de jogo.
Dica do editor: Para começar a criar um script C# em Unidade, pode percorrer o Capítulo 1 do livro de Harrison Ferrone Learning C# by Developing Games with Unity 2019.
Em que razão Harrison escreveu o seu livro, Learning C# by Developing Games with Unity 2019
Conta-nos a motivação por detrás da escrita do seu livro Learning C# by Developing Games with Unity 2019. Porque é que desenvolver jogos com Unidade é uma boa maneira de aprender a linguagem de programação C#? Porque prefere Unidade a outros motores de jogos?
A minha motivação principal para escrever o livro era dupla. Primeiro, sempre quis ser escritor, por isso casar o meu amor pela tecnologia com um sonho para toda a vida foi um desmancha-prazeres. Segundo, eu queria escrever um livro para principiantes que se mantivesse fiel a um público principiante, tendo-os sempre em mente.
Em termos de escolher jogos como meio de aprendizagem, descobri que fazer algo interessante e inovador enquanto se aprende um novo conjunto de habilidades leva a uma maior absorção do material e a um maior prazer geral. A unidade tem sido sempre o meu motor de go-to porque a sua interface é altamente intuitiva e fácil de iniciar.
Você tem 3 anos de experiência na construção de aplicações iOS em Swift. Tem também uma série de artigos e tutoriais sobre o mesmo no website de Ray Wenderlich. Recentemente, começou a ramificar-se em C++ e Unreal Engine 4. Como entrou no design de jogos e no desenvolvimento de Unity? O que o levou a interessar-se pela construção de jogos?
Entrei primeiro no design de jogos e desenvolvimento de Unidade, antes de toda a experiência de iOS e Swift. Era a minha especialização na universidade, e apesar de não ter conseguido encontrar um emprego na indústria dos jogos logo após a minha licenciatura, continuei a agarrá-lo como uma paixão.
No desenvolvimento de jogos
O último lançamento de Unity, Unity 2019.2 tem uma série de características interessantes tais como ProBuilder, Shader Graph, e efeitos, Animação 2D, Burst Compiler, etc. Quais são algumas das suas características favoritas nesta versão? Quais são as suas expectativas em relação ao Unity 2019.3?
Estou realmente entusiasmado com ProBuilder nesta versão, pois é uma enorme poupança de tempo para alguém tão artisticamente desafiado como eu. Penso que ferramentas como esta irão nivelar o campo de jogo para programadores independentes que podem não ter acesso ao ambiente ou construtores de níveis.
Quais são algumas dicas e truques essenciais que um programador de jogos deve ter em mente quando trabalha na Unidade? O que é e o que não é?
Eu diria que a maior coisa a ter em mente quando se trabalha com a Unidade é a arquitectura de componentes em que é construída. Quando estiver a escrever os seus próprios guiões, pense em como podem ser separados nas suas funções individuais e estruturá-los dessa forma – com propósito. Não há nada pior do que ter um enorme e inchado script em C# que faz tudo sob o sol e anexá-lo a um único objecto de jogo no seu projecto, depois aperceber-se de que precisa realmente de ser separado nas suas partes componentes.
Quais são os maiores desafios hoje em dia no campo do desenvolvimento de jogos? Quais são os seus conselhos para quem desenvolve jogos usando C#?
Atingir o público certo é sempre o desafio número um em qualquer indústria, e o desenvolvimento de jogos não é diferente. Isto é especialmente verdade para os criadores de jogos indie, uma vez que têm de estar sempre atentos a para quem estão a fazer o seu jogo e de conceber e programar propositadamente os seus jogos em conformidade. Quanto a conselhos, digo sempre a mesma coisa – aprender padrões de design e metodologias de desenvolvimento ágeis, eles abrirão novos caminhos para a programação profissional e gestão de projectos.
Ferrugem foi tocada como um dos sucessores da família de linguagens C. O actual estado de desenvolvimento do jogo em Rust é também bastante encorajador. Quais são as suas ideias sobre a Ferrugem para o desenvolvimento de jogos? Acha que os principais motores de jogo como o Unity e o Unreal irão apoiar a Ferrugem para o desenvolvimento de jogos no futuro?
Não tenho qualquer experiência com Ferrugem, mas os principais motores como o Unity e o Unreal dificilmente irão adoptar uma nova linguagem devido ao enorme custo associado a uma mudança dessa magnitude. No entanto, isso também deixa em aberto a possibilidade de outro motor ser desenvolvido em torno de Ferrugem no futuro, que vise jogos, telemóveis, e/ou desenvolvimento web.
Sobre o Autor
Harrison Ferrone nasceu em Chicago, IL, e foi criado em todo o lado. Na maioria dos dias, pode encontrá-lo a criar conteúdos instrucionais para LinkedIn Learning e Pluralsight, ou edição técnica para o website de Ray Wenderlich. Após alguns anos como criador de iOS em pequenas start-ups, e uma empresa da Fortune 500, entrou numa carreira docente e nunca mais olhou para trás. Ao longo de tudo isto, comprou muitos livros, adquiriu alguns gatos, trabalhou no estrangeiro, e perguntou-se continuamente porque é que a Neuromancer não está em mais programas de curso. Pode segui-lo no Linkedin, e no GitHub.