As habilidades do Unity serão transferíveis?

16

Atualmente, estou aprendendo a Unity e trabalhando em um livro de texto sobre matemática para videogames.

Meu objetivo é criar um jogo de corrida para WebGL (usando Three.js e talvez Physic.js).

Estou ciente de que o programa Unity o protege de muito do que está acontecendo e de muito trabalho duro para desenvolver até mesmo um simples videogame, mas se eu passar por vários tutoriais do Unity, muitos habilidades que eu aprendo traduzir para outras estruturas / mecanismos?

Sou bastante proficiente em design de níveis com o WebGL e sou um bom modelador 3D. Minhas fraquezas são definitivamente AI e Física.

Enquanto estou rapidamente escorando na minha matemática, e enquanto a Física é inegavelmente interessante, há apenas muitas horas durante o dia e há uma abundância de motores por aí para cuidar desse tipo de coisa.

A IA me atrai muito mais e é muito mais necessária. A IA muda drasticamente de jogo para jogo, é aprimorada fortemente durante o desenvolvimento e a física é muito mais constante.

Os conceitos de IA inclinados no Unity me permitem transferir esse conhecimento praticamente para qualquer lugar? Ou vou apenas remar o Unity Creek com essas habilidades?

Starkers
fonte
4
Designer de nível com WebGL?
Ben
3
AI é definida por um algoritmo e implementada em código. Qualquer lógica que você escreve em um script pode ser facilmente transferida para outros idiomas e plataformas. Como exemplo, o algoritmo A * pathfinding não tem nada específico sobre o Unity.
MLM
1
De qualquer forma, o uso de uma estrutura robusta como o Unity ajudará a evitar a tentação de reinventar a roda e a se concentrar na criação da jogabilidade única e divertida que você deseja. Isso também significa que você terá uma riqueza de conhecimentos da comunidade para recorrer quando se deparar com um problema. Embora os detalhes variem muito, as idéias básicas de trabalhar em um motor são transferíveis - cortar os dentes em um deles ajudará no aprendizado de futuros motores. E, como aponta o MLM, qualquer código que você escrever será possível implementar em qualquer lugar.
DMGregory
@WebGL Quero dizer, criar um nível a partir do zero para um jogo de navegador 3D, sem interface.
Starkers

Respostas:

27

Falando de maneira muito ampla, existem dois tipos de habilidades:

  1. "Eu posso fazer essa coisa brilhar clicando nesse botão." Este é o conhecimento do domínio da unidade; é algo que você aprendeu sobre como usar o Unity e provavelmente não o ajudará muito ao aprender a interface de outro sistema. (Embora seja provável que outro sistema tenha alguma maneira de tornar um objeto brilhante, ele provavelmente terá um sistema completamente diferente para configurar essa aparência - aprender o caminho do Unity não ensinará automaticamente o caminho do outro sistema)
  2. "Se eu quiser ter certeza de que o jogador percebe esse objeto, posso torná-lo brilhante." Este é o conhecimento do domínio do jogo; é algo que você aprendeu sobre como os jogos funcionam e como os jogadores interagem com os jogos, independentemente de como determinado mecanismo ou SDK implementa as coisas.

Se você está aprendendo algoritmos, ou se está aprendendo quando e por que técnicas específicas devem ser usadas, está criando habilidades altamente transferíveis, relevantes para todos os jogos. Se você está apenas aprendendo a manipular a interface de um mecanismo, provavelmente está criando habilidades menos transferíveis.

Trevor Powell
fonte
7

Sim. Aprender algoritmos é aprender algoritmos. As implementações podem mudar, mas você ainda entenderá a estratégia geral.

No entanto, também é verdade que você aprenderá com um alto nível de abstração. Isso significa que mudar para outros mecanismos, ou nenhum mecanismo, pode exigir que você aprenda os detalhes mais refinados do algoritmo e os detalhes mais detalhados da implementação.

No geral, é sempre uma boa estratégia para aprender coisas novas. Mesmo que apenas melhore sua compreensão geral do tópico, ele facilita o aprendizado e a implementação em uma tecnologia diferente.

MichaelHouse
fonte
3

Depende.

Existem alguns aspectos que podem ser transferidos, como a capacidade de projetar um jogo coerente que funcione. Mas isso vem do aprendizado de usar qualquer mecanismo de jogo / SDK.

Mas tudo depende de:

-Seu nível de uso Se você está pegando emprestado scripts e, na maior parte das vezes, sabe apenas coisas visuais, é provável que a única coisa que continue sendo transportada seja a familiaridade com algumas das ferramentas.

-O software em que você criou algum tipo de experiência em relação ao novo software. Passando de algo como GameMaker para algo como CryEngine, UDK, Unity não funciona realmente bem, a menos que:

- Você tem experiência em várias linguagens de programação. O Unity usa o Unityscript, que é sua própria bastardização de c # e java.

Se você é novo, como você parecia ter indicado, eu começaria com o básico do GameMaker. Familiarize-se com a interface de arrastar e soltar e com uma programação muito básica de jogo, e aprenda como escrever seus próprios scripts com a linguagem GameMaker. Enquanto isso, comece a aprender linguagens de programação (java, C, C ++, C #, ... etc), cujos conceitos serão incrivelmente úteis para quando você começar a aprender a linguagem de mecanismo primária.

Se você realmente interessa a IA, não pode enfatizar o suficiente a importância de aprender linguagens de programação e a lógica por trás delas. As IAs são difíceis, realmente difíceis, e há muita coisa envolvida na escrita dos scripts para elas. Dito isto, esses conceitos por trás da escrita de boas IAs devem continuar, mas não necessariamente os métodos exatos de fazê-lo, já que todo mecanismo de jogo / SDK é diferente.

Sei que você provavelmente não quer ouvir isso e não estou tentando desencorajá-lo. Mas você tem um longo caminho pela frente. Olhando de fora, estudar o design de jogos parece muito divertido, e às vezes é, mas há muito a saber e ainda mais trabalho a ser feito.

Espero que isso ajude a orientá-lo na direção certa.

Fonte: Estudante de Design / Programação de Jogos de Vídeo com experiência em Unity, UDK e GameMaker. Experiência também útil: C, C ++, Java, Estruturas de dados OOP, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... você entendeu.

Se seu conhecimento é muito limitado, comece com algo como GameMaker ou Project Spark. Isso realmente o ajudará a entender o básico.

UberPwnd
fonte
Espero não ter aparecido como um idiota pomposo. Eu definitivamente não quis dizer isso dessa maneira. De qualquer maneira, boa sorte em sua jornada!
UberPwnd
Ele não indicou exatamente na pergunta aqui, mas uma olhada em seu perfil deixa bem claro que ele definitivamente não precisa começar com o GameMaker (por exemplo, gamedev.stackexchange.com/questions/75627/… ), quero dizer, mesmo que ele fosse totalmente ecológico com a programação, eu seria cético em relação a esse conselho, mas ele nem está na área cinzenta.
Jhocking 29/05
@UberPwnd De jeito nenhum! Muito obrigado
Starkers