Werden die Fähigkeiten von Unity übertragbar sein?

16

Ich lerne gerade Unity und arbeite mich durch ein Lehrbuch für Videospiel-Mathematik.

Mein Ziel ist es, ein Rennspiel für WebGL zu erstellen (mit Three.js und vielleicht Physic.js).

Mir ist durchaus bewusst, dass das Unity-Programm Sie vor vielem schützt, was gerade vor sich geht, und vor der Arbeit, die mit der Entwicklung eines einfachen Videospiels verbunden ist Fähigkeiten, die ich gelernt habe, auf andere Frameworks / Engines zu übertragen?

Ich beherrsche das Level-Design mit WebGL ziemlich gut und bin ein guter 3D-Modellbauer. Meine Schwächen sind auf jeden Fall KI und Physik.

Während ich schnell meine Mathematik aufbaue und während die Physik unbestreitbar interessant ist, gibt es nur so viele Stunden am Tag und es gibt eine Fülle von Motoren, die sich um solche Dinge kümmern.

AI spricht mich viel mehr an und ist viel notwendiger. KI ändert sich drastisch von Spiel zu Spiel, wird während der Entwicklung stark optimiert und die Physik ist viel konstanter.

Kann ich dieses Wissen mithilfe von KI-Konzepten in Unity so gut wie überall hin übertragen? Oder werde ich nur Unity Creek mit diesen Fähigkeiten paddeln?

Starkers
quelle
4
Leveldesigner mit WebGL?
Ben
3
AI wird durch einen Algorithmus definiert und in Code implementiert. Jede Logik, die Sie in ein Skript schreiben, kann leicht auf andere Sprachen und Plattformen übertragen werden. Als Beispiel hat der A * -Pfadfindungsalgorithmus nichts Unity-spezifisches.
MLM
1
Wenn Sie ein robustes Framework wie Unity verwenden, können Sie der Versuchung entgehen, das Rad neu zu erfinden, und sich stattdessen darauf konzentrieren, das einzigartige und unterhaltsame Gameplay zu erstellen, das Sie möchten. Dies bedeutet auch, dass Sie über eine Fülle von Community-Fachkenntnissen verfügen, auf die Sie zurückgreifen können, wenn Sie sich in einer Krise befinden. Obwohl die Details sehr unterschiedlich sind, sind die Grundideen für die Arbeit in einem Motor übertragbar. Wenn Sie Ihre Zähne auf einen schneiden, können Sie zukünftige Motoren besser erlernen. Und wie MLM betont, kann jeder Code, den Sie selbst schreiben, praktisch überall implementiert werden.
DMGregory
@WebGL Ich meine, ein Level von Grund auf neu für ein 3D-Browsergame zu erstellen, keine Benutzeroberfläche.
Starkers

Antworten:

28

Ganz allgemein gesprochen gibt es zwei Arten von Fähigkeiten:

  1. "Ich kann dieses Ding zum Glänzen bringen, indem ich auf diesen Knopf klicke." Dies ist Unity-Domain-Wissen; Sie haben gelernt, wie man Unity verwendet, und werden wahrscheinlich beim Erlernen der Benutzeroberfläche eines anderen Systems nicht viel helfen. (Während dieses andere System wahrscheinlich eine Möglichkeit hat, ein Objekt zum Glänzen zu bringen, wird es wahrscheinlich ein völlig anderes System für die Konfiguration dieses Erscheinungsbilds haben - das Erlernen des Unity-Verfahrens bringt Ihnen nicht automatisch die Vorgehensweise des anderen Systems bei.)
  2. "Wenn ich sicher sein will, dass der Spieler dieses Objekt bemerkt, kann ich es glänzend machen." Dies ist Spieldomänenwissen; Sie haben gelernt, wie Spiele funktionieren und wie Spieler mit Spielen interagieren, unabhängig davon, wie eine bestimmte Engine oder ein bestimmtes SDK bestimmte Dinge implementiert.

Wenn Sie Algorithmen lernen oder wenn Sie lernen, wann und warum bestimmte Techniken verwendet werden sollten, bauen Sie hochgradig übertragbare Fähigkeiten auf, die für alle Spiele relevant sind. Wenn Sie nur lernen, wie man die Benutzeroberfläche einer Engine manipuliert, bauen Sie wahrscheinlich weniger übertragbare Fähigkeiten auf.

Trevor Powell
quelle
7

Ja. Lernalgorithmen sind Lernalgorithmen. Die Implementierungen können sich ändern, aber Sie werden immer noch die Gesamtstrategie verstehen.

Es ist jedoch auch wahr, dass Sie auf einem hohen Abstraktionsniveau lernen werden. Das bedeutet, dass Sie bei einem Wechsel zu anderen Engines oder zu keinem Engine möglicherweise die genaueren Details des Algorithmus und die wichtigsten Details der Implementierung kennenlernen müssen.

Insgesamt ist es immer eine gute Strategie, neue Dinge zu lernen. Auch wenn dies nur Ihr allgemeines Verständnis des Themas verbessert, erleichtert es das Erlernen und Implementieren des Themas auf einer anderen Technologie erheblich.

MichaelHouse
quelle
3

Es hängt davon ab, ob.

Es gibt Aspekte, die sich übertragen lassen, beispielsweise die Fähigkeit, ein zusammenhängendes Spiel zu entwerfen, das funktioniert. Das hängt jedoch damit zusammen, dass Sie lernen, mit jeder Game Engine / jedem SDK umzugehen.

Aber es kommt darauf an:

-Ihre Nutzungsstufe Wenn Sie Skripte ausleihen und größtenteils nur visuelle Dinge kennen, ist es wahrscheinlich, dass nur die Vertrautheit mit einigen der Tools eine Rolle spielt.

-Die Software, in der Sie einen Hintergrund im Vergleich zur neuen Software aufgebaut haben Von GameMaker zu CryEngine, UDK und Unity zu wechseln, funktioniert nur dann wirklich gut, wenn:

- Sie haben Hintergrundwissen in verschiedenen Programmiersprachen. Unity verwendet Unityscript, eine eigene Bastardisierung von C # und Java

Wenn du neu bist, wie du anscheinend angezeigt hast, dann würde ich mit dem Basic mit GameMaker beginnen. Machen Sie sich mit der Drag & Drop-Oberfläche und der grundlegenden Gameplay-Programmierung vertraut und lernen Sie, wie Sie mit der GameMaker-Sprache Ihre eigenen Skripte schreiben. Beginnen Sie in der Zwischenzeit mit dem Erlernen von Programmiersprachen (Java, C, C ++, C # usw.). Diese Konzepte sind besonders hilfreich, wenn Sie mit dem Erlernen der Erstanbieter-Engine-Sprache beginnen.

Wenn AI das ist, woran Sie wirklich interessiert sind, können Sie nicht genug betonen, wie wichtig es ist, Programmiersprachen und die Logik dahinter zu lernen . KIs sind hart, sehr hart und es gibt eine Menge Dinge, die mit dem Schreiben der Skripte für sie zusammenhängen. Abgesehen davon sollten die Konzepte, die hinter dem Schreiben guter KIs stehen, fortgesetzt werden, aber nicht unbedingt die genauen Methoden, da jede Game Engine / SDK anders ist.

Ich weiß, dass Sie das wahrscheinlich nicht hören wollen, und ich versuche in keiner Weise, Sie zu entmutigen. Aber Sie haben einen langen Weg vor sich. Wenn man sich draußen umschaut, hört sich das Studieren von Spieledesign so an, als würde es eine Menge Spaß machen, und manchmal ist es das auch, aber es gibt viel zu wissen und noch mehr zu tun.

Ich hoffe, das hilft Ihnen, in die richtige Richtung zu lenken.

Quelle: Videospieldesign / Programmierung Student mit Erfahrung in Unity, UDK und GameMaker. Auch nützliche Erfahrungen: C, C ++, Java, OOP-Datenstrukturen, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... Sie bekommen die Idee.

Wenn Ihr Wissen sehr begrenzt ist, beginnen Sie mit etwas wie GameMaker oder Project Spark. Es wird Ihnen wirklich helfen, die Grundlagen zu verstehen.

UberPwnd
quelle
Ich hoffe, ich bin nicht wie ein pompöser Idiot rübergekommen. Das habe ich definitiv nicht so gemeint. Auf jeden Fall viel Glück auf Ihrer Reise!
UberPwnd
Er hat es hier in der Frage nicht genau angegeben, aber ein Blick auf sein Profil macht ziemlich deutlich, dass er definitiv nicht mit GameMaker anfangen muss (z. B. gamedev.stackexchange.com/questions/75627/… ). Selbst wenn er mit der Programmierung völlig grün wäre, würde ich diesen Rat skeptisch beurteilen, aber er ist nicht einmal in der Grauzone.
jhocking
@UberPwnd Gar nicht! Danke sehr viel
Starkers