Реферат


Аналіз та дослідженя методів подубови сценаріїв поведінки в
інтерактивних комп'ютерних комплексах


Вступ


Основною концепцією розвитку сучасної всесвітньої павутини є інтерактивність і швидка реакція на події. З появою Web 2.0 інтернет придбав принципово нове обличчя, тому що з'явилися можливості простому користувачеві без спеціальних знань і умінь створити свою сторінку, не знаючи навіть базових принципів функціонування інтернет.

На сьогоднішній день високу інтерактивність мають елементи як web простору, так і оффлайн програм. До них слід відносити різні симулятори реальних дій , які використовуються з метою навчання, а також ігри . Узагальнюючи сказане, далі до інтерактивних комп'ютерних комплексів будемо відносити наступні системи:

  • онлайн програми:
    • системи з використанням прогресивних графічних технологій(Flash, Silverlight и т д)
    • багатокористувацькі ігри (в загальному випадку з використанням штучного інтелекту)
  • оффлайн програми:
    • тренажери і симулятори
    • ігри для настільних комп'ютерів та ігрових консолей (в тому числі з використанням сучасних пристроїв, які враховують переміщення гравця в реальному світі)


Актуальність

Актуальність обраної теми необхідно розглядати окремо з позицій онлайн і оффлайн програм.
Перспективи побудови інтерактивних світів у браузері стали цілком реальними з анонсуванням технології Adobe Flash Molehill . Використання графічного ядра системи і 98% установок копій Adobe Flash по всьому світу відкриває можливості побудови складних систем, які зможуть відображати одночасно більше 3 мільйонів полігонів без уповільнень. Очевидно, що такими системами зможе скористатися кожен, не залежно від операційної системи і браузера.
Що стосується оффлайн програм, з появою технологій Microsoft Kinect і PlayStation Move з'явилися нові можливості як взаємодії з персонажем, так і орієнтації в просторі та обліку поведінки самого користувача. Технологія Microsoft Kinect також знаходиться в процесі портування на платформу Flash.
З точки зору розробки сценарію поведінки, з появою різних нових технологій концепції побудови сценаріїв взаємодії з користувачем і принципи штучного інтелекту, розроблені давніше, потребують суттєвого перегляду внаслідок появи розширених можливостей.


Цілі і завдання

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


Передбачувана наукова новизна

Новизною в даному проекті є розробка принципово нового алгоритму поведінки об'єктів у сцені з урахуванням сучасних програмних і апаратних можливостей.


Плановані практичні результати

У ході розробки моделі поведінки планується створити універсальний алгоритм, який підійде як для онлайн, так і для оффлайн рішень. Головним практичним результатом буде досягнення реалізації розробленої моделі у зазначених сферах.

Огляд технологій інтерактивних комплексів


Microsoft Kinect и XNA (WPF)

Kinect - "контролер без контролера" для Xbox 360 . Технологія включає наступні принципи:

  • Сенсор руху . Kinect використовує сенсор руху, який відстежує кожен рух. Тому управляти можна не тільки руками і долонями. Задіяно все тіло. Руки, ноги, коліна, талія, стегна і все інше
  • Відстеження скелета . Під час управління, Kinect створює цифрове представлення скелета на основі даних про глибину. Тому, при переміщенні вліво або вправо, або стрибку, сенсор вловлює руху і вводить користувача в систему
  • Розпізнавання особи . Kinect ID запам'ятовує користувача, збираючи фізичні дані, які зберігаються в профілі. Тому, коли починається нова гра, Kinect дізнається користувача, дозволяючи вступити в гру в будь-який момент

Спочатку Microsoft розробила даний пристрій на противагу PlayStation Move тільки для ігрових консолей. На сьогоднішній день пристрій портовано під PC, ентузіастами створені набори драйверів. Офіційних драйверів для PC від Microsoft поки немає.
Kinect відкриває широкі можливості для емуляції різного роду поведінки . З появою офіційної підтримки для PC, цей пристрій стане основою більшості симуляторів і тренажерів . За підтримки технології XNA Games ігри можна розробляти з користувачем-контролером, а за допомогою WPF з'являється можливість створювати додатки з інтерфейсом, взаємодія з яким відбувається частинами тіла в повітрі .
Kinect - це горизонтально розташована коробка на невеликому круглому підставі, яку розміщують вище або нижче дисплея. Розміри - приблизно 23 см в довжину і 4 см у висоту. Складається з двох сенсорів глибини, кольорової відеокамери та мікрофонної решітки. Власницьке програмне забезпечення здійснює повне 3-х мірне розпізнавання рухів тіла, міміки обличчя і голоси. Мікрофонна грати дозволяють Xbox 360 виробляти локалізацію джерела звуку і придушення шумів, що дає можливість говорити без навушників і мікрофону Xbox Live. Датчик глибини складається з інфрачервоного проектора об'єднаного з монохромного КМОП-матрицею, що дозволяє датчику Kinect отримувати тривимірне зображення при будь-якому природному освітленні.
Діапазон глибини і програма проекту дозволяє автоматично калібрувати датчик з урахуванням умов гри і навколишніх умов, наприклад меблів, що знаходяться в кімнаті.
Судячи з недавнього патенту Microsoft, Kinect буде здатний розпізнавати мову жестів. Поки патент стосується тільки ASL, але, можливо, інші мови будуть додані пізніше. Очікується, що це розширить аудиторію користувачів і допоможе навчати німих мови жестів. Однак, згідно з офіційним коментарем, ця особливість не включена в першу версію Kinect через знижену на догоду ціні якість камери. З іншого боку, Microsoft не відмовляється від використання патенту.


Adobe Flash и Molehill

У лютому 2011 року корпорація Adobe випустила збірку інкубаторв Flash 11 з новим API Molehill . Molehill - кодова назва нового методу відображення 2D і 3D графіки. Це набір низькорівневих команд графічного процесора , які включають розширені можливості між різними екранами і пристроями з використанням технології Adobe Flash . Цей новий низькорівневий інтерфейс забезпечує розширені можливості розробки 2D і 3D програм, забезпечуючи гнучкість і переміщення навантаження на графічне ядро ​​системи, що істотно підвищує продуктивність. На сьогоднішній день, Adobe Flash Player відображає тисячі невідсортованих полігонів приблизно за 30 Гц. З новим програмно-апаратним інтерфейсом, розробник може використовувати сотні тисяч відсортованих полігонів , які відображаються у високому дозволі на весь екран за 60 Гц. За допомогою Molehill з Flash Player або Adobe Air можна створити складний 3D світ , який буде доступний практично на кожному комп'ютері або пристрої, підключеному до Інтернет.

Більшість передових компаній, які займалися раніше розробкою програмних 3D-двигунів на Flash ( AlternativaPlatform , Away3D, Papervision), активно підтримали Molehill розробку. Найбільш вдалою розробкою на сьогоднішній день є AlternativaPlatform.

Розроблений компанією AlternativaPlatform 3D-двигун, фізичний двигун, бібліотека GUI і високопродуктивна серверна частина дозволяють створювати унікальні браузерні ігри, додатки для соціальних мереж, промо-проекти і демонстрації.
З використанням технології AlternativaPlatform з'явилася можливість створювати великі 3D системи безпосередньо в браузері. Наприклад, в даний момент запущена розробка проекту інтерактивного дизайнера приміщень у браузері . При цьому також необхідно продумувати сценарій поведінки користувача, для підвищення зручності роботи з системою.

Дізайнер кімнат
Малюнок 1 - Інтерактивний дизайнер приміщень у браузері

Штучний інтелект


Для ігрових систем, а також систем-емуляторів, досить часто є необхідним штучний інтелект. Основні категорії штучного інтелекту, що використовуються в таких системах:

  • думаючий як людина
  • діючий як людина
  • правильно вибирає оптимальне (раціональне) рішення
  • діючий раціонально
На даний момент існує безліч проблем і безліч варіантів рішень, пов'язаних зі штучним інтелектом. Розглянемо деякі проблеми.


Проблема вибору

Як вказано вище, штучний інтелект реалізується так, щоб діяти раціонально. Але раціональне поведінка не завжди властиво людині. Людина часто покладається на інтуїцію. Тому складно оцінити раціональність і правильність вибору ШІ, особливо на етапі його проектування.


Проблема безпомилковості

Для більшості ігор і симуляторів досить просто зробити так, щоб користувач програв. Тому на сьогоднішній день розробники задаються питанням: як підвищити реалістичність штучного інтелекту , який діє безпомилково?
Найпростіший спосіб зробити ШІ помилковим - межувати його обчислювальні ресурси. Звичайно, програма відразу стане грати гірше. Наприклад, для того ж більярда є наступний варіант: додавати до удару по правильній траєкторії випадкову похибку. Але проблема в тому, що це знижує реалізм гри. У цьому випадку комп'ютер починає робити занадто дурні помилки. Такі дурні, яких людина ніколи б не зробив.
Іншими словами, звичайне погіршення якості гри ШІ не є досить реалістичним . Воно не приносить задоволення гравцеві.
З цього положення є один вихід. Потрібно зробити так, щоб комп'ютер грав у повну силу, але при цьому здавав гру. Як у спорті - ряд дрібних, на перший погляд, випадкових прорахунків, які ведуть до програшу або значно збільшують шанси супротивника. Тобто ШІ повинен робити розумні, продумані помилки.
"Помилки" такого роду потребують значно більше обчислювальних ресурсів, ніж чесна гра в повну силу, але зате у людини з'явиться реальний шанс перемогти сильного суперника. Від розробників ігор потрібний виявити незвичайний інтелект, щоб створити штучну дурість такого роду.
Щоб зробити ШІ дурнішими, необхідно не зменшити точність розрахунку, а навпаки - збільшити її. Необхідно розраховувати ходи в грі настільки далеко, щоб людина навіть не запідозрила підступ. ШІ повинен бути не просто розумніший людини , а на дві голови його розумнішими, щоб реалістично йому піддаватися. Потрібно передбачати людину на кілька ходів вперед, щоб підлаштувати ідеальну випадковість, якої та скористається. Або не скористається, але тоді програє. Але все одно треба дати йому шанс.


Проблема втрати об'єкта

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


Малюнок 2 - Демонстрація втрати об'єкта

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

Проблема проектування штучного інтелекту


Розглянемо одне з рішень проблеми штучного інтелекту, запропоновану у статті "Проблема проектування штучного інтелекту" (Andrew Luppnow). Ця схема дозволяє ефективно, або принаймні правдоподібно, керувати персонажем супротивником, здатним вибирати стратегію, частіше очевидної поведінки відповідно до встановлених розділами простих правил.

Система прийняття рішень - СПР - будь-яка система, яка приймає "ситуацію" на вході і генерує "відповідь" на виході. Прикладом СПР може бути проста нейронна мережа, набір жорстко заданих правил, набір нечітких логічних правил. Найбільш важливою особливістю системи повинна бути ПРОСТОТА і ЛЕГКІСТЬ МОДИФІКАЦІЇ - зокрема вона має брати на вході дані від малого, кінцевого можливого набору вхідних даних і генерувати на виході подібний малий, кінцевий можливий набір вихідних даних.

Якийсь час назад з'явилася ідея розробки AI для комп'ютерної гри, що вимагає, щоб комп'ютерний супротивник обирав розумну військову стратегію. У кінцевому рахунку стало очевидним, що СПР з інформацією щодо позиції і стану кожного дружнього і ворожого солдата безнадійно неефективна - це схоже на подання генерала з такою інформацією і очікуванням від його управління рухів кожного солдата!

Але в дійсності генерал не приймає рішення такого типу, і не він отримує інформацію про точне місцезнаходження кожного солдата на полі битви. Замість цього, він отримує стратегічну інформацію від командувачів, робить стратегічні рішення і представляє обрану стратегію командувачем. Командувачі, у свою чергу, отримують тактичну інформацію і роблять тактичні рішення, засновані на цій інформації і стратегії, забезпеченої генералом. Так процес триває до самого молодшого рівня, кожен солдат отримує точний наказ про те, що він і його безпосередні товариші, повинні виконати.

Важливим моментом є те, що цілий процес може бути передбачений у термінах декількох "рівнів". Кожен рівень отримує інформацію від молодшого рівня, "підводить підсумок" або "узагальнює" цю інформацію і представляє результат старшому рівню. При зворотному ході, кожен рівень отримує набір цілей від старшого рівня і використовує ці цілі та інформацію від молодшого рівня для обчислення більш точних цілей. Одержаний набір цілей стає "вхідним від старшого" для наступного молодшого рівня, і так далі. Резюмуючи: при русі до старших рівнів, команди і цілі стають більш глобальними, в той час як при русі до молодших рівнів, більш детальними і точними.

Ця система може представляти гарну концептуальну модель для написання штучного інтелекту в складній стратегічній грі. Дерево СПР може використовуватися, для емуляції ланцюжка командування у військовій ієрархії. Безумовно, можна використовувати відносно більш просту СПР для кожного рівня. Вхідними даними для СПР рівня "k" будуть вихідні дані рівня "k +1", а вихідні, у свою чергу, вхідними для "k-1" рівня. Вихідні дані 0 рівня використовуються для оновлення даних про територію (поле битви).

Стратегія
Малюнок 3 - Схема побудови стратегічного штучного інтелекту

На малюнку 3:
  • Генерал - мала кількість параметрів дозволяють передбачення і міркування виду "що-якщо"
  • Солдати - багато параметрів, але прийняті рішення найпростіші, без спроб передбачення і міркувань виду "що-якщо"
Основна перевага цієї схеми полягає в тому, що вона дозволяє "більш високим рівнням" ієрархії формулювати стратегію, без того, щоб бути розтрощеними величезною і важкооброблюваною кількістю можливостей, які комп'ютерний AI повинен був би розглянути, він володів тільки інформацією про індивідуальних солдатів. Дійсно, на самому верхньому рівні, рішення будуть досить абстрактні:
  • "направляти всі військові дії на захоплення території X", або
  • "вести війну на виснаження на територіях X, Y, і Z", або
  • "виграти час - дотримуватися дипломатії до деякого часу", або
  • "уникати прямих зіткнень - концентруватися на перериванні ворожого видобутку ресурсів", і т.д.

За цих обставин, для комп'ютера буде можливо розрахувати ситуацію на наступний момент часу (передбачити). У той час як при звичайній системі AI в якій параметри, представлені діями індивідуальних солдатів, це неможливо.
Приклад того, як це може бути:
Рівень 3 дає пріка
  • розширення впливу на карті
Рівень 2 більш конкретизує цей наказ:
  • видобуток ресурсів
  • атака противника
Рівень 1:
  • будівництво юнітів для видобутку ресурсів і будівництва бази
  • будівництво юнітів для атаки
  • віддача наказів юнітам
Рівень 0:
  • пересування
  • атака
  • збір
Припустимо:
  • у0 пересуваючись зауважив ворожих юнітів в позиції X, Y передав у1
  • у1 обробив отримані дані, доповнивши їх даними про кількість і силу ворога і передав параметри у2
  • у2 прорахував шанси виходячи з існуючих на даний момент сил та ймовірності їх збільшення, як зі своєї, так і з ворожої сторони, і передав дані у3
Тоді:
  • у3 вважає шанси на збільшення впливу на карті високими і дає наказ на придушення противника у2
  • у2 виділяє необхідні сили, розробляє стратегічний план і дає наказ на атаку цієї групи противника у1
  • у1 ділить сили на групи, будує групи і дає наказ на атаку кожного окремого ворожого юніта у0

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

Висновки


Існує безліч ніш для створення унікальних сценаріїв поведінки. Ці ніші були створені новими технологіями. Також існує широкий вибір технологій, де можна використовувати отримані в ході досліджень результати, перевіряючи і редагуючи розроблену модель алгоритму. При розгляді засобів для дослідження сценаріїв поведінки в інтерактивних комплексах в онлайн слід схилятися в бік технології AlternativaPlatform з використанням Adobe Molehill , бо дані технології є перспективними і мають гарну підтримку. У настільних рішеннях для дослідження переважно використовувати Microsoft Kinect і XNA Games .

Література


1. Stage3D APIs for Adobe Flash Player and Adobe AIR - Adobe Labs
Інтернет-ресурс. Режим доступу - URL: http://labs.adobe.com

2. Джоб Макар. Секреты разработки игр в Macromedia Flash MX.

3. Анатолій Алізар. Как научить ИИ делать продуманные ошибки
Інтернет-ресурс. Режим доступу - URL: http://habrahabr.ru

4. Lennart Steinke. Искусственный интеллект в играх: передвижения монстров.
Інтернет-ресурс. Режим доступу - URL: http://www.iskint.ru

5. AlternativaPlatform
Інтернет-ресурс. Режим доступу - URL: http://alternativaplatform.com

6. David Bliss. Using Kinect within Flash Applications.
Інтернет-ресурс. Режим доступу - URL: http://odopod.com

7. Елена Сагалаева. Искусственный интеллект в играх.
Інтернет-ресурс. Режим доступу - URL: http://www.addconf.ru

8. Алекс Дж. Шампандар. Искусственный интеллект в компьютерных играх: как обучить виртуальные персонажи реагировать на внешние воздействия.

9. Kinect
Інтернет-ресурс. Режим доступу - URL: http://ru.wikipedia.org

10. Ричард Псмит (Андрей Ленский). Что такое хороший сценарий?
Інтернет-ресурс. Режим доступу - URL: http://lki.ru

11. Andrew Luppnow. Проблема проектирования искусственного интелекта
Інтернет-ресурс. Режим доступу - URL: http://www.realcoding.net




* При написанні даного автореферату магістерська робота ще не завершена. Остаточне завершення - 1 грудня 2011 р . Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.