[POO] Herança na Unity

Herança é um conceito do paradigma de programação conhecido como Programação Orientada a Objetos , que tem como objetivo construir e trabalhar com abstrações de objetos do mundo real, em um nível de código. A Herança dá a capacidade de uma classe/objeto herdar comportamentos previamente definidos em outra classe, sem a necessidade de duplicação do código, permitindo a extensão e a sobrescrita de comportamentos já existentes, de acordo com a necessidade do novo objeto/classe. Para definir uma relação de herança no C#, a "palavra" reservada : (dois pontos) deve ser utilizada na definição da classe que estamos criando, indicando de qual outra classe o nosso script deve herdar. public class Jogador : MonoBehaviour { // Classe Jogador que herda da classe MonoBehaviour } Por padrão, todos os scripts criados na Unity herdam de MonoBehaviour, que é a classe base da Unity para Scripts que serão associados aos GameObjects do jogo. Embora essa definição de herança

Desenvolvimento de jogos

Sim! Eu quero desenvolver jogos...e agora?
Se você está procurando por conteúdo para te ajuda a começar a sua jornada de desenvolvimento de jogos, talvez você tenha encontrado um bom lugar para guiá-lo através do processo de desenvolvimento de jogos, focado na perspectiva de um desenvolvedor (programador) de jogos.
Na indústria de jogos, existem diversas habilidades diferentes que são necessárias para criar um bom jogo. Alguma você já tentou desenvolver um jogo? Muitos dos que tentaram isso antes, podem ter escolhido o melhor motor de jogos (game engine), planejado a melhor ideia, programado alguns pedaços de código e desistido.
Esse tipo de coisa acontece simplesmente porque jogos podem levar muito tempo e requerer muito esforço para ser construído. Mas ELES nunca te disseram isso! Certo?

Se você tem pouca ou nenhuma experiência com desenvolvimento de jogos, evite construir "o jogo que você joga", se você tem alguma experiência...evite fazer isso sozinho. Muitos dos grandes jogos que você joga são desenvolvimentos por grandes times com um monte de pessoas, orçamento suficiente, uma gigantesca quantia de experiência em desenvolvimento de jogos e muito know how. Você pode chegar lá, mas se você é um iniciante, apenas comece pequenos aos poucos.

Seu primeiro projeto de jogo deve ser algo pequeno, porém divertido. Deve ser algo que você terá orgulho de pedir para os seus amigos jogarem. Pense em alguma coisa legal, mas foque na mecânica principal, que normalmente é chamada de core loop do jogo.

O que você quer dizer com core loop?
O core loop é provavelmente a mecânica (ou combinação de mecânicas) mais repetitiva, que o jogador executará enquanto estiver jogando.
Pense em um simples jogos de RPG. Este pode ser o core loop:
1. Derrotar um monstro (+exp, +moedas)
2. Subir de nível (-exp, +força)
3. Comprar equipamento (-moeda, +força)
4. Voltar para o passo 1

O core loop pode ser resumido em derrotar um monstro, ganhar moedas e experiência até subir de nível, gastar moedas para comprar equipamentos melhores para derrotar mais monstros e repetir o ciclo.

Pessoas podem jogar um jogo com esse core loop durante horas, dias ou até semanas, com nada mais que isso. Essa abordagem pode fazer o seu jogo parecer bem pequeno, mas vamos seguir com calma. Nós estamos falando sobre o core loop, a principal ação que será repetida por muito tempo durante toda a sessão do jogo.
Lembre-se sempre, mesmo que o seu jogo pareça simples demais, esse não precisa ser o único ou o último jogo que você criará em sua jornada de desenvolvimento de jogos. Isto é apenas o começo. Nós temos que fazer um jogo completo o mais cedo possível, e nós vamos começar construindo pequenos partes jogáveis, e em seguida ver como todas essas partes funcionam em conjunto.

Para mim, a melhor parte do processo de desenvolvimento de jogos é assistir outras pessoas espontaneamente jogando e se divertido com os jogos que eu construí. Se você também concorda comigo, não existe razão para demorarmos para entregar algo jogável e divertido para essas pessoas.

Quando estamos desenvolvendo jogos, o nosso objetivo é entregar algo jogável o mais cedo possível. Quando eu falo em jogável, eu quero dizer algo com o que o jogadores podem interagir (mecânicas) e se divertir. Entregar protótipos jogáveis o mais cedo possível, satisfará os jogadores manterá você engajado em construir algo.

Escopo

Antes de iniciar, defina um escopo tangível, que você você consegue concluir em um intervalo de tempo fixo e predefinido, algo como uma semana ou um mês, e esse será o seu primeiro jogo. Foque em construir algo simples. Seu jogo pode ser somente uma sala com plataformas e um tipo de obstáculo. Não há problema nisso! Nós estamos apenas começando aqui. Vamos fazer isso dar certo passo a passo, com um escopo limitado e um visão clara de onde queremos chegar.

Não tente fazer um jogo que requeira mais tempo do que você tem disponível, senão essa será um experiência frustrante e a sua ideia de jogo terá uma chance ainda maior de ser deixada para trás.

Passo a passo

Quando eu falo para irmos passo a passo, eu quero dizer para quebrarmos o nosso escopo em pequenos pedaços, assistir alguns tutoriais para cada um desses pedaços, construir cada um isoladamente, para mais tarde juntá-los em um único jogo.

Para criar jogos, você precisará de um motor de jogos (game engine), bem...a não ser que você queira construir TUDO do zero, como gráficos, física, sons, gerenciamento de recursos e todas as outras coisas que já estão prontas em uma boa game engine. Ao utilizar uma game engine, você poderá focar no desenvolvimento do jogo (mecânicas e dinâmicas do jogos), sem se preocupar em desenvolver, testar e manter a base de um motor de jogos.

Quando o assunto é game engine, eu realmente gosto de usar a Unity.
Unity é uma excelente ferramenta multiplataforma que pode ser instalada em sistemas operacionais Windows, Max e Linux, e permite desenvolver jogos para outras várias plataformas como iOS, Android, WebGL, Xbox, Playstation, Nintendo Switch e muito mais (plataformas suportadas aqui), usando o mesmo código base, escrito na linguagem de programação C# (C Sharp).

Mas como Eu posso te ajudar na sua jornada, você pode estar se perguntando...

Pequenos passos

Meu objetivo aqui é rotineiramente postar pequenos pedaços de código e projetos simples de exemplo, para explicar (ou pelo menos tentar explicar) como você pode implementar mecânicas básicas, que poderão ser utilizadas por você para avançar na sua jornada e atingir o seu objetivo de desenvolver um jogo.
Todos os exemplos serão criados utilizando Unity e C#, e serão o menor e o mais simples que eu puder, para reduzir a complexidade e permitir que você entenda exatamente o que está sendo feito e como você poderá ser utilizar.

Pronto para começar? Baixe a Unity e eu vejo você em breve.

Comentários

Postagens mais visitadas deste blog

Transição de Fases (navegação entre Cenas) na Unity

GetComponent - Obtendo a referência para outros componentes do GameObject

[POO] Herança na Unity