На основі компонентних ігрових об'єктних систем на практиці [закрито]


43

Побачимо історію успіху. Які популярні ігри (та ігрові двигуни) були побудовані за допомогою компонентної ігрової об'єктної системи ? Кожна відповідь повинна містити:

  1. Назва гри (по одній відповіді)
  2. Автор / компанія
  3. Рік
  4. Час розробки (необов’язково)
  5. Посилання на постморте (необов’язково)
  6. Посилання на документи / вихідний код (необов’язково)

7
-1, майже вся гра, написана за останнє десятиліття, буде використовувати компонентну систему десь, а не використовувати компонентну систему деінде, де вона могла б.

5
Ви неправі. Багато двигунів досі використовують статичні ієрархії. І цікаво збирати та читати docs / postmortems / фрагменти коду ігор та двигунів, які справді використовують компоненти компонентів.
точний

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

2
Ви неправі. Ігрові об'єкти (основна логіка ігор), візуальні ефекти, ігровий движок та інфраструктура редактора або є компонентними, або ні.
точний

2
@topright: Незалежно від того, чи правильно Джо чи не так, починати свої коментарі два рази поспіль із простим та особистим "Ви помиляєтесь" не дуже тактовно, чи не вважаєте ви також? Сподіваюся, що ваші коментарі не пропустять жодної відповідної інформації без цих трьох маленьких слів, але їх пропускання сприяло б набагато більше приємної та ввічливої ​​розмови. Врахуйте це :)
Майкл Клемент

Відповіді:


19

Dungeon Siege від Gas Powered Games

Скотт Білас випустив багато інформації про Dungeon Siege, в якому, серед іншого, були представлені компоненти, що базуються на компонентах.

Dungeon Siege вийшов у світ у 2002 році.


Нічого собі, відмінне посилання. Його розмова про компоненти компонентів дійсно допомогла мені краще зрозуміти реалізацію компонентних систем. Акуратні розмови про те, як робився безперервний світ і в ДС. Цікаво, чи подібні методи все ще використовуються в інших великих світових іграх. Я думаю, що більшість людей, як правило, використовують щось подібне до регіонів чи фрагментів (Minecraft, що-небудь від Bethesda).
CodexArcanum

19

Опір 1-2 (можливо 3) (2006-2008) від Ігор безсоння

Терренс Коен перераховує ці ігри у своїй динамічній архітектурі компонентів для високопродуктивних ігор про геймплей від GDC Canada 2010.

Не впевнений, чи це було застосовано до останніх ігор Ratchet & Clank.


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

Я не знав про цю презентацію, дуже дякую!
точний

13

Unity3D використовує систему на основі компонентів за замовчуванням. Це чудово для створення ігрових утворень з текстового файлу та введення залежності.

function createEnemy() {

   // extract AI type for enemy
   // definition is a custom structure holding parameters to create the enemy
   var aitypename = definition.ai;

   // AIType can be an interface or abstract class
   // you can create a component from a string or from a type
   var ai : AIType = this.gameObject.AddComponent(aitypename);
   ai.setup(definition.ai_settings);

   // set rule for enemy when it is destroyed
   this.gameObject.AddComponent(definition.when_destoryed); 


}

Ці компоненти могли виглядати приблизно так

class AI_Scout extends AIType
{
  // called per update-frame on the game-object with this script
  public function Update() {
    // run Scout AI here
   }
}


class Spawn_Ammo_On_Destroyed extends When_Destroyed
{
   // automatically called by the engine when the game object this script is attached to is
   // destroyed
   public function OnDestroyed() {
    // spawn ammo
    }
}


8

Tony Hawk Pro Skater 3
Розробник: Neversoft
Рік: 2001
Час: Близько двох років
Post Mortem: Evolve Your Iierarchy (напевно, найпов'язаніша стаття на основі компонентів)


1

Наскільки мені відомо, найкращий проект, який я бачив, - це Burger Engine. jst скачайте код і перевірте, наскільки добре вони реалізовані. Вся справа керується даними від XML, і вони дуже добре використовували архітектуру на основі об'єктів.

http://code.google.com/p/burger-engine/source/browse/


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

прикро, що вам це не сподобалось. Весь код керується даними, і я не знайшов жодної реалізації з відкритим кодом, яка б виконала це завдання з такою легкістю. Якщо у вас є якісь посилання на хороший код, будь ласка, опублікуйте посилання. І приходьте для неправильного написання, віртуальний функціонал - це хороший ресурс для людей, які є новими в «компонентній архітектурі». Він служить цілі, щоб надати цінну інформацію про те, як працює на основі даних дизайн на практиці.
Айяппа

2
Не знаю про код, але вказівка ​​на орфографічні помилки є неправдивим аргументом, оскільки також існує багато програмістів з країн, що не говорять на англійській мові.
Раджаванія Субраманіян
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.