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.