Le abilità di Unity saranno trasferibili?


16

Attualmente sto imparando l'Unità e sto lavorando attraverso un libro di testo per la matematica dei videogiochi.

Il mio obiettivo è creare un gioco di corse per WebGL (usando Three.js e forse Physic.js).

Sono ben consapevole che il programma Unity ti protegge da molto di ciò che sta succedendo e gran parte del lavoro grugnito è collegato allo sviluppo anche di un semplice videogioco, ma se passerò attraverso un mucchio di tutorial di Unity, molti le competenze che imparo si traducono in altri framework / motori?

Sono abbastanza abile a livello di progettazione con WebGL e sono un buon modellatore 3D. I miei punti deboli sono sicuramente AI e Fisica.

Mentre sto rapidamente sostenendo la mia matematica, e mentre la Fisica è innegabilmente interessante ci sono solo tante ore al giorno e ci sono un sacco di motori là fuori per prendersi cura di questo genere di cose.

L'intelligenza artificiale mi attira molto di più ed è molto più necessaria. L'intelligenza artificiale cambia drasticamente da gioco a gioco, è fortemente modificata durante lo sviluppo e la fisica è molto più costante.

Appoggiare i concetti di intelligenza artificiale in Unity mi consentirà di trasferire questa conoscenza praticamente ovunque? O mi limiterò a remare su Unity Creek con queste abilità?


4
Designer di livelli con WebGL?
Ben

3
L'IA è definita da un algoritmo e implementata nel codice. Qualsiasi logica scritta in uno script potrebbe essere facilmente trasferita in altre lingue e piattaforme. Ad esempio, l' algoritmo di pathfinding A * non ha nulla di specifico su Unity.
MLM

1
Se non altro, l'utilizzo di un solido framework come Unity ti aiuterà a evitare la tentazione di reinventare la ruota e concentrarti sulla creazione del gameplay unico e divertente che desideri. Significa anche che avrai una vasta esperienza della community su cui attingere quando ti troverai in un ostacolo. Anche se i dettagli variano molto, le idee di base per lavorare in un motore sono trasferibili: tagliare i denti su uno aiuterà ad apprendere qualsiasi motore futuro. E come sottolinea MLM, qualsiasi codice tu stesso scriva sarà possibile implementare praticamente ovunque.
DMGregory

@WebGL Intendo creare un livello da zero per un gioco per browser 3D, senza interfaccia.
Starkers,

Risposte:


27

Parlando in modo molto ampio, ci sono due tipi di abilità:

  1. "Posso rendere brillante questa cosa facendo clic su quel pulsante." Questa è conoscenza del dominio Unity; è qualcosa che hai imparato su come usare Unity e probabilmente non ti aiuterà molto quando apprendi l'interfaccia di un altro sistema. (Mentre è probabile che quell'altro sistema abbia un modo per rendere brillante un oggetto, probabilmente avrà un sistema completamente diverso per configurare quell'aspetto - apprendere il modo di Unity non ti insegnerà automaticamente il modo dell'altro sistema)
  2. "Se voglio essere sicuro che il giocatore nota questo oggetto, posso renderlo brillante." Questa è conoscenza del dominio di gioco; è qualcosa che hai imparato su come funzionano i giochi e su come i giocatori interagiscono con i giochi, indipendentemente da come un determinato motore o SDK implementa le cose.

Se stai imparando algoritmi o se stai imparando quando e perché particolari tecniche dovrebbero essere utilizzate, stai sviluppando abilità altamente trasferibili che sono rilevanti per tutti i giochi. Se stai solo imparando a manipolare l'interfaccia di un motore, probabilmente stai sviluppando abilità meno trasferibili.


7

Sì. Gli algoritmi di apprendimento sono algoritmi di apprendimento. Le implementazioni possono cambiare, ma capirai comunque la strategia generale.

Tuttavia, è anche vero che imparerai ad un alto livello di astrazione. Ciò significa che spostarsi su altri motori, o nessun motore, potrebbe richiedere di apprendere i dettagli più fini dell'algoritmo e i dettagli grintosi dell'implementazione.

Nel complesso, è sempre una buona strategia per imparare cose nuove. Anche se migliora solo la tua comprensione generale dell'argomento, rende l'apprendimento e l'implementazione di nuovo su una tecnologia diversa molto più semplice.


3

Dipende.

Ci sono aspetti che alcuni aspetti possono portare oltre, come la capacità di progettare un gioco coerente che funzioni. Ma questo deriva dall'imparare a usare qualsiasi motore di gioco / SDK.

Ma tutto dipende da:

-Il tuo livello di utilizzo Se stai prendendo in prestito script e conosci solo per la maggior parte cose che sono visive, è probabile che l'unica cosa che riporti sia la familiarità con alcuni degli strumenti.

-Il software che hai creato in una sorta di background rispetto al nuovo software Passare da qualcosa come GameMaker a qualcosa come CryEngine, UDK, Unity non va davvero bene a meno che:

-Hai esperienza in vari linguaggi di programmazione Unity usa Unityscript che è la loro bastardizzazione di C # e Java

Se sei nuovo, come sembra che tu abbia indicato, allora inizierei con la base con GameMaker. Acquisisci familiarità con l'interfaccia drag and drop e la programmazione di gioco molto semplice, quindi impara a scrivere i tuoi script con la loro lingua di GameMaker. Nel frattempo, inizia ad imparare i linguaggi di programmazione (java, C, C ++, C #, ... ecc.), I concetti dai quali saranno incredibilmente utili quando inizi a imparare il linguaggio del motore della prima parte.

Se l'intelligenza artificiale è ciò a cui sei veramente interessato, non puoi sottolineare abbastanza quanto sia importante imparare i linguaggi di programmazione e la logica dietro di loro.L'intelligenza artificiale è dura, davvero dura, e c'è molto da fare nello scrivere le sceneggiature per loro. Detto questo, quei concetti alla base della stesura di una buona intelligenza artificiale dovrebbero continuare, ma non necessariamente i metodi esatti per farlo, poiché ogni motore di gioco / SDK è diverso.

So che probabilmente non vuoi sentirlo, e non sto assolutamente cercando di scoraggiarti. Ma hai una lunga strada da percorrere. Al di fuori di guardare, studiare il design del gioco sembra che sarebbe molto divertente, e talvolta lo è, ma c'è molto da sapere e ancora più lavoro da fare.

Spero che questo ti aiuti nella giusta direzione.

Fonte: Studente di progettazione / programmazione di videogiochi con esperienza in Unity, UDK e GameMaker. Esperienza anche utile: C, C ++, Java, OOP Data Structures, Autodesk Maya, ProTools, Reaper, Audition, Photoshop, GIMP ... hai l'idea.

Se le tue conoscenze sono molto limitate, inizia con qualcosa come GameMaker o Project Spark. Ti aiuterà davvero a capire le basi.


Spero di non essermi imbattuto in un idiota pomposo. Sicuramente non intendevo in questo modo. Ad ogni modo, buona fortuna per il tuo viaggio!
UberPwnd,

Non lo ha indicato esattamente nella domanda qui, ma uno sguardo al suo profilo rende abbastanza chiaro che sicuramente non ha bisogno di iniziare con GameMaker (es. Gamedev.stackexchange.com/questions/75627/… ) Voglio dire, anche se fosse totalmente ecologico con la programmazione sarei scettico di quel consiglio, ma non è nemmeno nell'area grigia.
jhocking

@UberPwnd Niente affatto! Grazie mille
Starkers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.