Che cos'è un attore nello sviluppo del gioco?


15

Sto leggendo un libro sullo sviluppo del gioco ( Game Coding Complete, Quarta edizione ) e c'è un argomento "Attori" che spiega come usarli brevemente invece di spiegare di cosa si tratta.

Ecco come il libro introduce questi attori:

I giochi sono pieni di oggetti che danno vita al tuo mondo. Un gioco della Seconda Guerra Mondiale potrebbe essere pieno di carri armati e aerei, mentre un futuristico gioco di fantascienza potrebbe avere robot e astronavi. Come gli attori su un palco, questi oggetti sono al centro del gameplay. Sembra appropriato che li chiamiamo "attori di gioco" perché è esattamente quello che sono.

Un attore di gioco è un oggetto che rappresenta una singola entità nel tuo mondo di gioco. Potrebbe essere un pickup di munizioni, un carro armato, un divano, un NPC o qualsiasi cosa tu possa pensare. In alcuni casi, il mondo stesso potrebbe persino essere un attore. È importante definire i parametri degli attori del gioco e garantire che siano il più flessibili e riutilizzabili possibile.

Ci sono tanti modi per definire un attore di gioco quanti sono i giochi. Come tutto il resto nella programmazione per computer, raramente esiste una soluzione perfetta.

Ho potuto capire solo poche cose: è un'astrazione di tutto ciò che nel gioco può eseguire azioni; ha il suo stato; il suo comportamento è di solito implementato come una macchina a stati. Questo è. Sto arrivando con la programmazione di sistemi sullo sfondo dello sviluppo del gioco, e quindi vorrei sapere in generale, cosa significa l' attore nello sviluppo del gioco, come usarlo, come viene utilizzato in generale, quale problema risolve, come e perché. Vorrei che la spiegazione fosse tale che un bambino potesse capire.

Ho cercato di trovare queste informazioni su Google, ma mi dirige invece verso un altro "attori": programmazione concorrente per la maggior parte del tempo o attori di gioco, ma senza una buona spiegazione di ciò.


@Philipp Ho aggiunto il libro. Però, ci sono alcuni molto breve spiegazione actor, ma non sono soddisfatto con esso: non porta alcun ragioni storiche o pratiche per invenzione di attori e di che problema si risolve, c'è solo spiegare che cosa può essere.
Victor Polevoy,

1
In Unreal Engine, an Actorè in realtà una classe. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
Almo

2
Credo che molti motori chiamino queste "entità" o "oggetti di gioco"; Non ho mai sentito "attore" in questo contesto.
user253751

7
Il testo a blocchi citato è un'ottima risposta alla domanda "che cos'è un attore" come otterrai.
Russell Borogove,

Per rendere le cose più confuse, ci sono anche attori nel modello di attore , che è apparentemente diverso.
Brian McCutchon,

Risposte:


40

Come hai detto, un attore può essere letteralmente qualsiasi cosa; alberi, NPC, edifici, ecc. Un termine simile è "entità". Non ha bisogno di avere un comportamento nel senso tradizionale, può essere statico.

È solo un modo per dire "un oggetto nel gioco".


2
Quindi questo è solo termsimile a entity, ok. Ho pensato che abbia anche un significato in più, ho pensato che fosse un'astrazione più grande di un semplice sinonimo. Potresti anche dire cosa dovrebbe essere un attore e cosa no? Con cosa dovrei operare per scegliere questo?
Victor Polevoy,

Actorè in realtà una classe in Unreal Engine. Beh, era comunque tornato nella versione 2. Quindi potrebbe non essere solo un termine a seconda del motore che stai usando.
Almo,

1
Sembra che tutto in un gioco sia un attore, il che renderebbe inutile quella parola. Direi che tutto ciò che può cambiare il gamestate è un attore. Quindi un albero non è un attore se è solo un'immagine di sfondo, ma se puoi tagliarlo e ottenere risorse, lo è. I menu invece fanno qualcosa, ma non li classificherei come attori, non fanno parte del mondo di gioco (principalmente, ad esempio nel gioco flash "upgrade completato" i menu fanno effettivamente parte del mondo di gioco).
sintassi

@syntonym Il secondo paragrafo del testo citato nella domanda afferma che qualsiasi cosa può essere un attore, persino divani. Inoltre, non tutto è un attore, le particelle per esempio non lo sono.
Bálint,

@Bálint interessante, ho pensato che anche le particelle siano attori. Devono spuntare sull'aggiornamento, devono pensare (fisica), hanno uno stato. Non è vero?
Victor Polevoy,

13

Secondo la mia comprensione, il termine è un effetto collaterale dell'assunzione di scrittori per creare storie per i giochi. Dal momento che di solito provengono dal teatro o dallo schermo, sono abituati ai termini Actore Prop. Actorsessere cose che si muovono e svolgono un ruolo reale nel gioco ed Propsessere cose come alberi, edifici, ecc.

Fin dai miei primi anni di programmazione al college, prima che ci fosse permesso di usare un motore come Unity, dovevamo codificare il nostro motore. Actorera una classe base astratta che aveva una trasformazione, svuota le funzioni del ciclo di vita e una funzione chiamata Act()quale era la nostra versione di Unity Update().

Il nostro loop di gioco principale ha sostanzialmente seguito:

for(Actor actor in actors)
{ 
   actor.Act(); 
}

La maggior parte dei motori usa il concetto di Entità, quindi dalla tua lettura, traduci semplicemente Actorcome Entitynella tua testa e starai bene.


+1 Mi piace che illustra il fatto che hai bisogno di un nome per una classe base.
Vaillancourt

2
Secondo la mia comprensione, il termine è un effetto collaterale dell'assunzione di scrittori per creare storie per i giochi. Dal momento che di solito provengono dal teatro o dallo schermo, sono abituati ai termini attore e prop. {{citation needed}} Un termine "attore" è abbastanza generico da essere utilizzato nella progettazione del software molto prima che le persone pensassero di assumere scrittori per i giochi (anche, è stato usato in UML ecc., Cose usate per lo sviluppo del business). Il dizionario (MW) dice questo Definition of actor: 1 : one that acts : doer:; Non riesco a vedere alcuna connessione teatrale qui.

Per essere onesti, ho detto con la mia comprensione. Potresti avere ragione, ma le persone sono almeno abituate all'idea di attore e prop in quel contesto, il che dà una spiegazione utile al Richiedente.
Stephan,

Anch'io direi che il termine attore non deriva dall'assunzione di scrittori, ma potrebbe derivare dal desiderio iniziale degli sviluppatori di inseguire Hollywood. :)
dash-tom-bang
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.