Що є актором розвитку ігор?


15

Я читаю книгу про розвиток ігор ( Game Coding Complete, четверте видання ), і є тема "Актори", яка просто пояснює, як їх коротко використовувати, а не пояснювати, що це таке.

Ось як книга знайомить цих акторів:

Ігри переповнені предметами, які оживляють ваш світ. Гра в Другій світовій війні може бути сповнена танків і літаків, а футуристична науково-фантастична гра може мати роботи та зоряні кораблі. Як і актори на сцені, ці об’єкти лежать в основі ігрового процесу. Здається, що ми називаємо їх "ігровими акторами", тому що саме вони є.

Граючий актор - це об'єкт, який представляє єдине ціле у вашому ігровому світі. Це може бути боєприпас із боєприпасами, танк, кушетка, NPC або все, що ви можете придумати. У деяких випадках сам світ може бути навіть актором. Важливо визначити параметри акторів гри та забезпечити їх максимальну гнучкість та багаторазове використання.

Існує стільки ж способів визначення ігрового актора, скільки є ігор. Як і все інше в комп'ютерному програмуванні, рідко є ідеальне рішення.

Я міг зрозуміти лише небагато речей: це абстрагування всього, що в грі, що може виконувати дії; у нього є своя держава; її поведінка зазвичай реалізується як державна машина. Це воно. Я знаходжусь із системами, що програмують передумови розвитку ігор, і тому я хотів би знати в цілому, що означає актор у сенсі розвитку гри, як її використовувати, як її використовувати в цілому, яку проблему вона вирішує, як і чому. Я хотів би, щоб пояснення було таким, щоб малюк міг зрозуміти.

Я намагався знайти цю інформацію в google, але вона спрямовує мене до інших "акторів", а саме: одночасне програмування більшу частину часу або акторів гри, але без гарного пояснення.


@Philipp Я додав книгу. Хоча є дуже коротке пояснення, actorале я не задоволений цим: це не приносить жодних історичних чи практичних причин для вигадки акторів та яку проблему вона вирішує, є лише пояснення, що це може бути.
Віктор Полевий

1
У Unreal Engine, Actorнасправді, це клас. docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/…
Almo

2
Я вважаю, що більшість двигунів називають ці "сутності" або "ігрові об'єкти"; Я ніколи не чув "актора" в цьому контексті.
користувач253751

7
Ваш цитований текстовий блок є настільки ж хорошою відповіддю на питання "що таке актор", як ви збираєтеся отримати.
Рассел Борогов

Щоб зробити речі більш заплутаними, в акторській моделі також є актори , які, мабуть, відрізняються.
Брайан Маккотчон

Відповіді:


40

Як ви вже згадували, актором може бути буквально будь що; дерева, NPC, будівлі тощо. Аналогічний термін - "сутність". Не потрібно мати поведінку в традиційному розумінні, це може бути статично.

Це просто спосіб сказати «предмет у грі».


2
Так що це просто termсхоже на entity, добре. Я подумав, що це також має значення чогось більшого, подумав, що це більша абстракція, ніж просто синонім. Чи можете ви також сказати, яким повинен бути актор, а що ні? З чим мені працювати, щоб вибрати це?
Віктор Полевий

Actorнасправді клас в Unreal Engine. Ну, це все одно було у версії 2. Тож це може бути не просто термін залежно від того, який двигун ви використовуєте.
Алмо

1
Це здається, що все в грі - це актор, який зробить це слово марним. Я б сказав, що все, що може змінити ігровий стан, - це актор. Тоді дерево не є актором, якщо це лише фонове зображення, але якщо ви можете зрубати його та отримати ресурси, воно є. Меню з іншого боку щось роблять, але я б не класифікував їх як акторів, вони не є частиною ігрового світу (в основному, наприклад, у флеш-грі "оновлення завершено" меню фактично є частиною ігрового світу).
синонім

@syntonym У другому абзаці цитованого тексту у запитанні зазначено, що актор може бути будь-яким, навіть диваном. Крім того, не все є актором, частинки, наприклад, не є.
Bálint

@ Bálint цікаво, я вважав, що частки теж є акторами. Вони повинні поставити галочку на оновлення, вони повинні думати (фізику), вони мають стан. Це не воно?
Віктор Полевий

13

На моє розуміння, термін є побічним ефектом наймання письменників на створення історій для ігор. Оскільки вони зазвичай походять з театру чи екрану, вони звикли до умов Actorі Prop. Actorsце речі, які рухаються і грають реальну роль у грі, і Propsє такими, як дерева, будівлі тощо.

З моїх ранніх днів кодування в коледжі, перш ніж нам було дозволено використовувати такий двигун, як Unity, нам довелося кодувати власний двигун. Actorбув абстрактним базовим класом, який мав перетворення, порожні функції життєвого циклу і функцію, Act()яка називалася нашою версією Unity Update().

Наш основний цикл гри в основному дотримувався:

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

Більшість двигунів використовують концепцію Entity, тому з читання просто перекладіть, Actorяк Entityу голові, і вам буде добре.


+1 Мені подобається, що це ілюструє те, що вам потрібно ім’я для базового класу.
Vaillancourt

2
На моє розуміння, термін є побічним ефектом наймання письменників на створення історій для ігор. Оскільки вони зазвичай походять з театру чи екрану, вони звикли до термінів "Актор і проп. {{citation needed}} ", Термін "актор" є загальним для використання в розробці програмного забезпечення задовго до того, як люди навіть задумалися про те, щоб найняти авторів для ігор (також це було використано в UML тощо, речі, які використовувались для розвитку бізнесу). Словник (MW) говорить так Definition of actor: 1 : one that acts : doer:; Я не бачу тут жодного театрального зв’язку.

Чесно кажучи, я це сказав, розуміючи. Ви можете мати рацію, але люди принаймні звикли до ідеї актора і підтримують у цьому контексті, що дає корисне пояснення Аскеру.
Стефан

Я теж хотів би сказати, що термін "Актор" не походить від наймання авторів, але це може спричинити раннє бажання розробників ігор переслідувати Голлівуд. :)
dash-tom-bang
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.