Co jest aktorem w tworzeniu gier?

15

Czytam książkę o tworzeniu gier ( Game Coding Complete, czwarta edycja ) i jest temat „Aktorzy”, który po prostu wyjaśnia, jak ich używać krótko zamiast wyjaśniać, co to jest.

Oto jak książka przedstawia tych aktorów:

Gry są pełne przedmiotów, które ożywiają Twój świat. Gra z okresu II wojny światowej może być pełna czołgów i samolotów, podczas gdy futurystyczna gra science fiction może mieć roboty i statki kosmiczne. Podobnie jak aktorzy na scenie, obiekty te stanowią sedno rozgrywki. Wydaje się właściwe, że nazywamy ich „aktorami gry”, ponieważ tacy właśnie są.

Aktor w grze to obiekt reprezentujący pojedynczy byt w twoim świecie gry. Może to być odbiór amunicji, czołg, kanapa, NPC lub cokolwiek innego. W niektórych przypadkach sam świat może być nawet aktorem. Ważne jest, aby zdefiniować parametry aktorów gry i upewnić się, że są oni tak elastyczni i nadają się do ponownego użycia, jak to możliwe.

Istnieje tyle sposobów na zdefiniowanie aktora gry, ile jest gier. Podobnie jak wszystko inne w programowaniu komputerowym, rzadko istnieje idealne rozwiązanie.

Mogłem zrozumieć tylko kilka rzeczy: jest to abstrakcja wszystkiego w grze, która może wykonywać działania; ma swój własny stan; jego zachowanie jest zwykle implementowane jako maszyna stanu. To jest to. Pochodzę z programowaniem systemów do tworzenia gier, więc chciałbym ogólnie wiedzieć, co aktor jest w tworzeniu gier, jak z niego korzystać, jak jest ogólnie używany, jaki problem rozwiązuje, jak i dlaczego. Chciałbym, aby wyjaśnienie było takie, aby dziecko mogło je zrozumieć.

Próbowałem znaleźć tę informację w google, ale zamiast tego prowadzi mnie ona do innych „aktorów”: programowanie równoległe przez większość czasu lub aktorów gry, ale bez dobrego wyjaśnienia.

Victor Polevoy
źródło
@Philipp Dodałem książkę. Choć nie jest jakiś bardzo krótkie wyjaśnienie actorale nie jestem zadowolony z niego: to nie przynosi żadnych powodów historycznych lub praktyczne dla wynalazku aktorów i jaki problem rozwiązuje, nie jest po prostu wyjaśniając, co to może być.
Victor Polevoy,
1
W Unreal Engine, a Actorjest właściwie klasą. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/...
Almo
2
Wierzę, że większość silników nazywa te „byty” lub „obiekty gry”; W tym kontekście nigdy nie słyszałem „aktora”.
user253751,
7
Cytowany tekst blokowy jest tak dobrą odpowiedzią na pytanie „kim jest aktor”, jak tylko się da.
Russell Borogove
Aby sprawić, że sprawy stają się bardziej mylące, w Modelu aktora występują również aktorzy , który najwyraźniej jest inny.
Brian McCutchon

Odpowiedzi:

40

Jak wspomniałeś, aktor może być dosłownie wszystkim; drzewa, postacie niezależne, budynki itp. Podobny termin to „byt”. Nie musi zachowywać się w tradycyjnym sensie, może być statyczny.

To tylko sposób na powiedzenie „obiekt w grze”.

Bálint
źródło
2
To jest po prostu termpodobne do entity, dobrze. Myślałem, że ma to również znaczenie coś więcej, że jest to większa abstrakcja niż tylko synonim. Czy możesz też powiedzieć, kim powinien być aktor, a co nie? Z czym mam działać, aby to wybrać?
Victor Polevoy,
Actorjest właściwie klasą w Unreal Engine. Cóż, tak czy inaczej było w wersji 2. Więc może to nie być tylko termin, w zależności od używanego silnika.
Almo,
1
Brzmi to tak, jakby wszystko w grze było aktorem, co uczyniłoby to słowo bezużytecznym. Powiedziałbym, że wszystko, co może zmienić gamestate, to aktor. Zatem drzewo nie jest aktorem, jeśli jest tylko obrazem tła, ale jeśli możesz je wyciąć i zdobyć zasoby, to jest. Z drugiej strony menu coś robią, ale nie klasyfikowałbym ich jako aktorów, nie są oni częścią świata gry (głównie np. W grze flash „aktualizacja zakończona” menu są faktycznie częścią świata gry).
syntonim
@syntonym Drugi akapit cytowanego tekstu w pytaniu stanowi, że wszystko może być aktorem, nawet kanapy. Ponadto nie wszystko jest aktorem, na przykład cząstki nie są.
Bálint
@ Bálint ciekawe, myślałem, że cząsteczki też są aktorami. Muszą zaznaczyć aktualizację, muszą myśleć (fizyka), mają stan. Czyż nie?
Victor Polevoy
13

W moim rozumieniu termin ten jest efektem ubocznym zatrudniania pisarzy do tworzenia historii do gier. Ponieważ zwykle pochodzą z teatru lub ekranu, są przyzwyczajeni do warunków Actori Prop. Actorsbędące rzeczami, które poruszają się i odgrywają prawdziwą rolę w grze, i Propstakimi jak drzewa, budynki itp.

Od samego początku pisania kodu na studiach, zanim pozwolono nam korzystać z silnika takiego jak Unity, musieliśmy kodować własny silnik. Actorbyła abstrakcyjną klasą podstawową, która miała transformację, puste funkcje cyklu życia i funkcję o nazwie, Act()która była naszą wersją Unity Update().

Nasza główna pętla gry była następująca:

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

Większość silników korzysta z koncepcji Entity, więc po przeczytaniu przetłumacz je Actorjak Entityw twojej głowie, a wszystko będzie dobrze.

Stephan
źródło
+1 Podoba mi się, że ilustruje to, że potrzebujesz nazwy dla klasy podstawowej.
Vaillancourt
2
W moim rozumieniu termin ten jest efektem ubocznym zatrudniania pisarzy do tworzenia historii do gier. Ponieważ zwykle pochodzą z teatru lub ekranu, są przyzwyczajeni do określeń Aktor i Prop. {{citation needed}} Termin „aktor” jest na tyle ogólny, że można go stosować w projektowaniu oprogramowania na długo przed tym, zanim ludzie pomyśleli o zatrudnieniu pisarzy do gier (również używano go w UML itp., Rzeczy, które były używane do rozwoju biznesu). Słownik (MW) mówi to Definition of actor: 1 : one that acts : doer:; Nie widzę tu żadnego związku teatralnego.
Szczerze mówiąc, powiedziałem z mojego zrozumienia. Być może masz rację, ale ludzie są przynajmniej przyzwyczajeni do idei aktora i rekwizytu w tym kontekście, co stanowi przydatne wyjaśnienie dla Pytającego.
Stephan
Powiedziałbym też, że pojęcie aktor nie pochodzi od zatrudniania pisarzy, ale może wynikać z wczesnego pragnienia twórców gier, by ścigać Hollywood. :)
dash-tom-bang