Les compétences Unity seront-elles transférables?

16

J'apprends actuellement Unity et je travaille à travers un livre de texte sur les mathématiques du jeu vidéo.

Mon objectif est de créer un jeu de course pour WebGL (en utilisant Three.js et peut-être Physic.js).

Je suis bien conscient que le programme Unity vous protège de beaucoup de ce qui se passe et d'une grande partie du travail de grogne lié au développement même d'un jeu vidéo simple, mais si je passe en revue un tas de tutoriels Unity, les compétences que j'apprends se traduisent-elles dans d'autres cadres / moteurs?

Je suis assez compétent en conception de niveaux avec WebGL et je suis un bon modélisateur 3D. Mes faiblesses sont définitivement l'IA et la physique.

Alors que j'étaye rapidement mes mathématiques, et bien que la physique soit indéniablement intéressante, il n'y a que tant d'heures dans la journée et il y a une multitude de moteurs pour prendre soin de ce genre de chose.

L'IA m'attire beaucoup plus et est beaucoup plus nécessaire. L'IA change radicalement d'un jeu à l'autre, est fortement modifiée pendant le développement, et la physique est beaucoup plus constante.

Le fait de s'appuyer sur les concepts de l'IA dans Unity me permettra-t-il de transférer ces connaissances à peu près n'importe où? Ou vais-je simplement pagayer jusqu'à Unity Creek avec ces compétences?

Nu comme un ver
la source
4
Concepteur de niveaux avec WebGL?
Ben
3
L'IA est définie par un algorithme et implémentée dans du code. Toute logique que vous écrivez dans un script pourrait facilement être transférée vers d'autres langues et plates-formes. Par exemple, l' algorithme de recherche de chemin A * n'a rien d'Unity spécifique à ce sujet.
MLM
1
Si quoi que ce soit, l'utilisation d'un cadre robuste comme Unity vous aidera à éviter la tentation de réinventer la roue et à vous concentrer sur la création du gameplay unique et amusant que vous souhaitez à la place. Cela signifie également que vous disposerez d'une riche expertise communautaire sur laquelle vous pourrez compter lorsque vous vous retrouverez dans un piège. Bien que les détails varient beaucoup, les idées de base du travail dans un moteur sont transférables - se couper les dents aidera à apprendre les futurs moteurs. Et comme le souligne MLM, tout code que vous écrivez vous-même sera possible d'implémenter à peu près n'importe où.
DMGregory
@WebGL Je veux dire créer un niveau à partir de zéro pour un jeu par navigateur 3D, pas d'interface.
Starkers

Réponses:

27

De manière très large, il existe deux types de compétences:

  1. "Je peux rendre cette chose brillante en cliquant sur ce bouton." C'est la connaissance du domaine Unity; c'est quelque chose que vous avez appris sur la façon d'utiliser Unity et qui ne vous sera probablement pas très utile lors de l'apprentissage de l'interface d'un autre système. (Bien que cet autre système soit susceptible d'avoir un moyen de rendre un objet brillant, il aura probablement un système complètement différent pour configurer cette apparence - l'apprentissage de la manière d'Unity ne vous apprendra pas automatiquement la manière de l'autre système)
  2. "Si je veux être sûr que le joueur remarque cet objet, je peux le rendre brillant." C'est une connaissance du domaine du jeu; c'est quelque chose que vous avez appris sur le fonctionnement des jeux et sur la façon dont les joueurs interagissent avec les jeux, indépendamment de la façon dont un moteur ou un SDK particulier implémente les choses.

Si vous apprenez des algorithmes ou si vous apprenez quand et pourquoi des techniques particulières doivent être utilisées, vous développez des compétences hautement transférables qui sont pertinentes pour tous les jeux. Si vous apprenez simplement à manipuler l'interface d'un moteur, vous développez probablement des compétences moins transférables.

Trevor Powell
la source
7

Oui. Apprendre des algorithmes, c'est apprendre des algorithmes. Les implémentations peuvent changer, mais vous comprendrez toujours la stratégie globale.

Cependant, il est également vrai que vous apprendrez à un niveau d'abstraction élevé. Cela signifie que le passage à d'autres moteurs, ou à aucun moteur, peut vous obliger à apprendre les détails les plus fins de l'algorithme et les détails granuleux de l'implémentation.

Dans l'ensemble, c'est toujours une bonne stratégie pour apprendre de nouvelles choses. Même si cela ne fait qu'améliorer votre compréhension générale du sujet, cela rend l'apprentissage et la mise en œuvre à nouveau sur une technologie différente beaucoup plus facile.

MichaelHouse
la source
3

Ça dépend.

Il y a des aspects que certains aspects peuvent transmettre, comme la capacité de concevoir un jeu cohérent qui fonctionne. Mais cela vient d'apprendre à utiliser n'importe quel moteur de jeu / SDK.

Mais tout dépend de:

-Votre niveau d'utilisation Si vous empruntez des scripts et que vous ne connaissez pour l'essentiel que des éléments visuels, il est probable que la seule chose qui se poursuivra est la familiarité avec certains des outils.

-Le logiciel que vous avez créé une sorte de contexte par rapport au nouveau logiciel Passer de quelque chose comme GameMaker à quelque chose comme CryEngine, UDK, Unity ne va pas vraiment bien sauf si:

-Vous avez de l'expérience dans divers langages de programmation Unity utilise Unityscript qui est leur propre bastardisation de C # et java

Si vous êtes nouveau, comme vous semblez l'avoir indiqué, je commencerais par le basique avec GameMaker. Familiarisez-vous avec l'interface glisser-déposer et la programmation de jeu très basique, puis apprenez à écrire vos propres scripts avec leur langage GameMaker. Pendant ce temps, commencez à apprendre les langages de programmation (java, C, C ++, C #, ... etc), dont les concepts seront incroyablement utiles lorsque vous commencerez à apprendre le langage moteur du premier parti.

Si l'IA vous intéresse vraiment, je ne saurais trop insister sur l'importance d'apprendre les langages de programmation et la logique qui les sous-tend. Les IA sont difficiles, vraiment difficiles, et il y a beaucoup de choses à écrire pour eux. Cela étant dit, ces concepts derrière la rédaction de bonnes IA devraient continuer, mais pas nécessairement les méthodes exactes de le faire, car chaque moteur de jeu / SDK est différent.

Je sais que vous ne voulez probablement pas entendre cela, et je n'essaie en aucun cas de vous décourager. Mais vous avez un long chemin devant vous. En dehors de la recherche, étudier la conception de jeux semble être très amusant, et parfois c'est le cas, mais il y a beaucoup à savoir et encore plus de travail à faire.

J'espère que cela vous aidera à vous orienter dans la bonne direction.

Source: Étudiant en conception / programmation de jeux vidéo ayant une expérience dans Unity, UDK et GameMaker. Expérience également utile: C, C ++, Java, OOP Data Structures, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... vous avez l'idée.

Si vos connaissances sont très limitées, commencez par quelque chose comme GameMaker ou Project Spark. Cela vous aidera vraiment à comprendre les bases.

UberPwnd
la source
J'espère que je ne suis pas apparu comme un pompeux imbécile. Je ne pensais vraiment pas de cette façon. Quoi qu'il en soit, bonne chance dans votre voyage!
UberPwnd
Il ne l'a pas exactement indiqué dans la question ici, mais un coup d'œil à son profil montre clairement qu'il n'a certainement pas besoin de commencer avec GameMaker (par exemple, gamedev.stackexchange.com/questions/75627/… ) Je veux dire, même s'il était totalement vert avec la programmation, je serais sceptique à l'égard de ce conseil, mais il n'est même pas dans la zone grise.
jhocking
@UberPwnd Pas du tout! Merci beaucoup
Starkers