¿Las habilidades de Unity serán transferibles?

16

Actualmente estoy aprendiendo Unity y trabajando en un libro de texto de matemáticas de videojuegos.

Mi objetivo es crear un juego de carreras para WebGL (usando Three.js y quizás Physic.js).

Soy muy consciente de que el programa de Unity te protege de muchas de las cosas que están sucediendo y de una gran parte del trabajo duro relacionado con el desarrollo de un videojuego simple, pero si utilizo un montón de tutoriales de Unity, muchas de las Qué habilidades aprendo se traducen a otros frameworks / motores?

Soy bastante competente en diseño de niveles con WebGL, y soy un buen modelador 3D. Mis debilidades son definitivamente la IA y la física.

Mientras estoy apuntalando rápidamente mis matemáticas, y si bien la física es innegablemente interesante, solo hay tantas horas en el día y hay una gran cantidad de motores para ocuparse de este tipo de cosas.

La IA me atrae mucho más y es mucho más necesaria. La IA cambia drásticamente de un juego a otro, se modifica mucho durante el desarrollo y la física es mucho más constante.

¿Los conceptos de inteligencia artificial en Unity me permitirán transferir este conocimiento prácticamente a cualquier lugar? ¿O simplemente remaré en Unity Creek con estas habilidades?

Starkers
fuente
44
Diseñador de niveles con WebGL?
Ben
3
La IA se define mediante un algoritmo y se implementa en código. Cualquier lógica que escriba en un script podría transferirse fácilmente a otros idiomas y plataformas. Como ejemplo, el algoritmo de búsqueda de ruta A * no tiene nada específico de Unity.
MLM
1
En todo caso, usar un marco robusto como Unity te ayudará a evitar la tentación de reinventar la rueda y a concentrarte en crear el juego único y divertido que quieras. También significa que tendrás una gran experiencia en la comunidad a la que recurrir cuando te encuentres en un obstáculo. Aunque los detalles varían mucho, las ideas básicas de trabajar en un motor son transferibles: cortar los dientes en uno ayudará a aprender cualquier motor futuro. Y como MLM señala, cualquier código que escriba usted mismo será posible de implementar en casi cualquier lugar.
DMGregory
@WebGL Me refiero a crear un nivel desde cero para un juego de navegador 3D, sin interfaz.
Starkers

Respuestas:

27

Hablando de manera muy amplia, hay dos tipos de habilidades:

  1. "Puedo hacer que esto sea brillante haciendo clic en ese botón". Este es el conocimiento del dominio de la Unidad; es algo que has aprendido sobre cómo usar Unity, y probablemente no te ayudará mucho cuando aprendas la interfaz de otro sistema. (Si bien es probable que ese otro sistema tenga alguna forma de hacer que un objeto brille, probablemente tendrá un sistema completamente diferente para configurar esa apariencia: aprender la forma de Unity no le enseñará automáticamente la forma del otro sistema)
  2. "Si quiero estar seguro de que el jugador nota este objeto, puedo hacerlo brillante". Esto es conocimiento del dominio del juego; es algo que has aprendido sobre cómo funcionan los juegos y cómo los jugadores interactúan con los juegos, independientemente de cómo un motor o SDK particular implemente las cosas.

Si estás aprendiendo algoritmos, o si estás aprendiendo cuándo y por qué deberían usarse técnicas particulares, entonces estás desarrollando habilidades altamente transferibles que son relevantes para todos los juegos. Si solo está aprendiendo a manipular la interfaz de un motor, probablemente esté desarrollando habilidades menos transferibles.

Trevor Powell
fuente
7

Si. Los algoritmos de aprendizaje son algoritmos de aprendizaje. Las implementaciones pueden cambiar, pero aún comprenderá la estrategia general.

Sin embargo, también es cierto que aprenderá a un alto nivel de abstracción. Eso significa que moverse a otros motores, o a ningún motor, puede requerir que aprenda los detalles más finos del algoritmo y los detalles valientes de la implementación.

En general, siempre es una buena estrategia aprender cosas nuevas. Incluso si solo mejora su comprensión general del tema, hace que aprender e implementarlo nuevamente en una tecnología diferente sea mucho más fácil.

MichaelHouse
fuente
3

Depende.

Hay aspectos que pueden trasladar algunos aspectos, como la capacidad de diseñar un juego coherente que funcione. Pero eso viene de aprender a usar cualquier motor de juego / SDK.

Pero todo depende de:

-Su nivel de uso Si está tomando prestados guiones y solo sabe en su mayor parte cosas visuales, es probable que lo único que se traslade sea la familiaridad con algunas de las herramientas.

-El software en el que ha creado algún tipo de fondo en comparación con el nuevo software Pasar de algo como GameMaker a algo como CryEngine, UDK, Unity realmente no funciona bien a menos que:

-Tiene experiencia en varios lenguajes de programación. Unity usa Unityscript, que es su propia bastardización de C # y Java

Si eres nuevo, como pareces haber indicado, entonces comenzaría con lo básico con GameMaker. Familiarícese con la interfaz de arrastrar y soltar y la programación de juego muy básica, luego aprenda a escribir sus propios scripts con su lenguaje GameMaker. Mientras tanto, comience a aprender lenguajes de programación (java, C, C ++, C #, ... etc.), cuyos conceptos serán increíblemente útiles para cuando comience a aprender el lenguaje del motor de primera parte.

Si la IA es lo que realmente le interesa, entonces no puedo enfatizar lo suficiente lo importante que es aprender lenguajes de programación y la lógica detrás de ellos. Los AI son duros, realmente duros, y hay mucho que implica escribir los guiones para ellos. Dicho esto, esos conceptos detrás de la escritura de una buena IA deben continuar, pero no necesariamente los métodos exactos para hacerlo, ya que cada motor de juego / SDK es diferente.

Sé que probablemente no quieras escuchar esto, y de ninguna manera estoy tratando de desanimarte. Pero tienes un largo camino por delante. Al mirar hacia afuera, estudiar el diseño del juego parece que sería muy divertido, y a veces lo es, pero hay mucho que saber, y aún más trabajo por hacer.

Espero que esto ayude a guiarte en la dirección correcta.

Fuente: Estudiante de diseño / programación de videojuegos con experiencia en Unity, UDK y GameMaker. También experiencia útil: C, C ++, Java, OOP Data Structures, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... ya se te ocurre la idea.

Si su conocimiento es muy limitado, comience con algo como GameMaker o Project Spark. Realmente te ayudará a entender lo básico.

UberPwnd
fuente
Espero no haberme encontrado como un imbécil pomposo. Definitivamente no lo dije en serio. De cualquier manera, ¡buena suerte en tu viaje!
UberPwnd
No lo indicó exactamente en la pregunta aquí, pero un vistazo a su perfil deja bastante claro que definitivamente no necesita comenzar con GameMaker (por ejemplo, gamedev.stackexchange.com/questions/75627/… ) Quiero decir, incluso si fuera totalmente ecológico con la programación, sería escéptico de ese consejo, pero ni siquiera está en el área gris.
jhocking
@UberPwnd ¡Para nada! Muchas
gracias