Використання інформаційних технологій в розробці ігор
Привабливим. Друга проблема носить більш серйозний характер, і на неї неодноразово вказували такі фахівці, як М. Вінер, Н. М. Амосов, І. А. Полєтаєв та ін. Складається вона в наступному. Уже зараз існують машини і програми, здатні в процесі роботи самонавчатися, тобто підвищувати ефективність пристосування до зовнішніх чинників. У майбутньому, можливо, з’являться машини, що володіють таким рівнем… Читати ще >
Використання інформаційних технологій в розробці ігор (реферат, курсова, диплом, контрольна)
Вступ
Під час проведення НДРС було проаналізовано використання штучного інтелекту в іграх на мобільні пристрої на базі операційної системи Android, тому що вона дуже актуальна в наші дні, коли однією з важливих видів розваг молоді стали ігри на мобільних пристроях. Тема штучного інтелекту не дає спокою багатьом умам початківців програмістів, розробників і любителів комп’ютерних ігор. Штучний інтелект (ШІ) здається багатьом чимось дивно складним, цікавим, таємничим. Дійсно, адже технології штучного інтелекту змушують персонажів ігор діяти розумно. Однак у штучного інтелекту немає нічого таємничого. За десятиліття розвитку цієї галузі знань було розроблено величезну кількість алгоритмів, які можна застосувати в самих різних областях діяльності. І мобільні ігри це лише порівняно невелике поле для технологій штучного інтелекту.
Багато ігор були б не цікаві, якби їх персонажі не мали певної інтелектуальності. В принципі, штучний інтелект в іграх «нічим не гірше» інтелекту в інших областях застосування. Так що для ігор підходять всі загальновідомі методи реалізації штучного інтелекту. Але, звичайно ж, як і для інших вузькоспеціальних завдань, для ігрової індустрії теж виконуються наступні властивості:
— виділилися певні найбільш популярні і прості прийоми рішення типових «інтелектуальних» ігрових завдань;
— багато задач вирішуються зовсім не методами «справжнього» ШІ, а методами традиційної математики-інформатики: рішення рівнянь, перебір, пошук оптимуму функцій.
А то і зовсім комп’ютер шахраює: навіщо штучному персонажу «думати», де знаходиться гравець (або, наприклад, які у того на руках карти), якщо програмі за визначенням завжди відомо точне місце розташування останнього (або які карти йому були роздані).
1. Підхід і напрямки у штучному інтелекту
1.1 Підходи до розуміння проблеми штучного інтелекту
Єдиної відповіді на питання, чим займається штучний інтелект, не існує. Майже кожен автор, який пише книгу про ШІ, відштовхується в ній від будь-якого визначення, розглядаючи в його світлі досягнення цієї науки. У філософії не вирішено питання про природу і статус людського інтелекту. Немає і точного критерію досягнення комп’ютерами «розумності», хоча на зорі штучного інтелекту був запропонований ряд гіпотез, наприклад, тест Тьюринга або гіпотеза Ньюелла-Саймона. Тому, незважаючи на наявність безлічі підходів як до розуміння задач ШІ, так і створенню інтелектуальних інформаційних систем, можна виділити два основні підходи до розробки ШІ:
— спадний (Top-Down AI) семіотичний створення експертних систем, баз знань і систем логічного висновку, що імітують високо рівневі психічні процеси: мислення, міркування, мова, емоції, творчість;
— висхідний (Bottom-Up AI) біологічний вивчення нейронних мереж і еволюційних обчислень, моделюючих інтелектуальне поведінку на основі біологічних елементів, а також створення відповідних обчислювальних систем, таких як нейрокомп’ютер або біо-компьютер.
Останній підхід, строго кажучи, не відноситься до науки про ШІ в сенсі, даному Джоном Маккарті, їх об'єднує тільки загальна кінцева мета.
1.2 Тест Тьюринга і інтуїтивний підхід
Емпіричний тест був запропонований Аланом Тьюрингом в статті «Обчислювальні машини й розум» (Computing Machinery and Intelligence) опублікованій в 1950 році в філософському журналі «Mind». Метою даного тесту є визначення можливості штучного мислення, близького до людського.
Стандартна інтерпретація цього тесту звучить наступним чином: «Людина взаємодіє з одним комп’ютером і однією людиною. На підставі відповідей на питання він повинен визначити, з ким він розмовляє: з людиною або комп’ютерною програмою. Завдання комп’ютерної програми ввести людину в оману, змусивши зробити невірний вибір». Всі учасники тесту не бачать один одного.
Самий загальний підхід припускає, що ШІ буде здатний виявляти поведінку, не відрізняється від людського, причому в нормальних ситуаціях. Ця ідея є узагальненням підходу тесту Тьюринга, який стверджує, що машина стане розумною тоді, коли буде здатна підтримувати розмову з звичайною людиною, і той не зможе зрозуміти, що говорить з машиною (розмова йде по переписці).
Рисунок 1.1 Принцип роботи тесту Тьюринга Письменники-фантасти часто пропонують ще один підхід: ШІ виникне тоді, коли машина буде здатна відчувати і творити. Так, господар Ендрю Мартіна з «двохсотлітнього людини» починає ставитися до нього як до людини, коли той створює іграшку за власним проектом. А Дейта з Зоряного шляху, будучи здатним до комунікації і навчання, мріє знайти емоції та інтуїцію.
Однак останній підхід навряд чи витримує критику при більш детальному розгляді. Наприклад, нескладно створити механізм, який буде оцінювати деякі параметри зовнішнього чи внутрішнього середовища і реагувати на їх несприятливі значення. Про таку систему можна сказати, що у неї є почуття («біль» це реакція на спрацювання датчика удару, «голод» це реакція на низький заряд акумулятора). А кластери, створювані картами Кохонена, і багато інших продуктів «інтелектуальних» систем можна розглядати як вид творчості.
1.3 Символьний підхід
Історично символьний підхід був першим в епоху цифрових машин, так як саме після створення Лісп, першої мови символьних обчислень, у його автора виникла впевненість у можливості практично приступити до реалізації цими засобами інтелекту. Символьний підхід дозволяє оперувати слабоформалізованими уявленнями та їх смислами. Від уміння виділити тільки істотну інформацію залежить ефективність і результативність виконання завдання.
Але широта класів задач, ефективно вирішуються людським розумом, вимагає неймовірної гнучкості в методах абстрагування. А це недоступно при будь-якому інженерному підході, в якому дослідник вибирає методи рішення, ґрунтуючись на здатності швидко дати ефективне рішення якоїсь найближчої цього досліднику завдання. Тобто вже за реалізовану у вигляді правил єдину модель абстрагування і конструювання сутностей. Це виливається в значні витрати ресурсів для непрофільних завдань, тобто система від інтелекту повертається до грубої сили на більшості завдань, і сама суть інтелекту зникає з проекту.
Основне застосування символьної логіки це рішення задач з вироблення правил. Більшість досліджень зупиняється саме на неможливості хоча б позначити нові виникли труднощі засобами обраних на попередніх етапах символьних систем, тим більше вирішити їх і тим більше навчити комп’ютер вирішувати їх або хоча б ідентифікувати і виходити з таких ситуацій.
1.4 Логічний підхід
Логічний підхід до створення систем штучного інтелекту спрямований на створення експертних систем з логічними моделями баз знань з використанням мови предикатів.
Навчальною моделлю систем штучного інтелекту в 1980;х роках був прийнятий мова та система логічного програмування Пролог. Бази знань, записані на мові Пролог, представляють набори фактів і правил логічного висновку, записаних на мові логічних предикатів.
Логічна модель баз знань дозволяє записувати не тільки конкретні відомості і дані у формі фактів мовою Пролог, а й узагальнені відомості за допомогою правил і процедур логічного висновку, і в тому числі логічних правил визначення понять, що виражають певні знання як конкретні і узагальнені відомості.
В цілому дослідження проблем штучного інтелекту в рамках логічного підходу до проектування баз знань та експертних систем спрямовані на створення, розвиток та експлуатацію інтелектуальних інформаційних систем, включаючи питання навчання студентів і школярів, а також підготовки користувачів і розробників таких інтелектуальних інформаційних систем.
1.5 Агентно-орієнтований і гібридній підхід
Останній підхід, що розвивається з початку 1990;х років, називається агентно-орієнтованим підходом, або підходом, заснованим на використанні інтелектуальних (раціональних) агентів. Відповідно до цього підходу, інтелект це обчислювальна частина (грубо кажучи, планування) здатності досягати поставлених перед інтелектуальної машиною цілей. Сама така машина буде інтелектуальним агентом, що сприймає навколишній світ за допомогою датчиків, і здатною впливати на об'єкти в навколишньому середовищі за допомогою виконавчих механізмів.
Рисунок 1.2 Принцип роботи агентно-орієнтованого підходу Цей підхід акцентує увагу на тих методах і алгоритмах, які допоможуть інтелектуальному агенту виживати в навколишньому середовищі при виконанні його завдання. Так, тут значно ретельніше вивчаються алгоритми пошуку шляху і прийняття рішень.
Гібридний підхід передбачає, що тільки синергетична комбінація нейронних і символьних моделей досягає повного спектру когнітивних і обчислювальних можливостей. Наприклад, експертні правила умовиводів можуть генеруватися нейронними мережами, а породжують правила отримують за допомогою статистичного навчання. Прихильники цього підходу вважають, що гібридні інформаційні системи будуть значно сильнішими, ніж сума різних концепцій окремо.
2. Машинний інтелект
З історичної точки зору терміном «інтелектуальний» людина описує сам себе. Саме наявністю інтелекту людина відрізняється від тварин і рослин. У наші дні слово «інтелект» використовується для опису однієї з відмінних рис людей; якщо когось називають «високоінтелектуальним», то під цим мається на увазі людина, особливо розвинений в розумовому відношенні.
Універсальна здатність.
З концептуальної точки зору, поза всяким сумнівом, існує універсальна форма інтелектуальності. І люди, і тварини мають невеликою часткою цієї здатності і виявляють в собі конкретні прояви універсальної інтелектуальності. Мабуть, ми, люди, успадкували більшу частину цієї універсальної здібності. Але в зв’язку з тим, що в основі нашої інтелектуальності лежить біологічна природа, ми позбавлені деяких характеристик універсальної інтелектуальності (наприклад, повноти і нейтральності).
Більшість дослідників у галузі комп’ютерних наук вважають, що біологічна інтелектуальність доступна для відтворення і що інтелект не є виключно атрибутом людини. З цього припущення по суті випливає висновок, що частина універсальної інтелектуальності можна перенести і на машину. Таким чином, штучний інтелект це штучно створений аналог інтелектуальності, що виробляється мозком людини як біологічної істоти. Очевидно, що розвиток технічних засобів призводить до отримання інших результатів, ніж біологічна еволюція, і в цьому полягає пояснення того факту, що штучний інтелект характеризується іншими властивостями в порівнянні з людським інтелектом (наприклад, доскональністю у всьому). Таким чином, штучний інтелект це ще один прояв універсальної інтелектуальності.
Нелегко дати визначення такого абстрактного поняття, як універсальна інтелектуальність, особливо в зв’язку з тим, що кількість дійсно виразних прикладів її прояву невелика. Але можна спробувати скласти визначення людського інтелекту.
Зважаючи на відсутність кращого визначення, будемо вважати, що інтелект це набір умінь і навичок, які дозволяють людям вирішувати завдання в умовах обмеженості ресурсів. До цих умінь і навичок відносяться здатність до навчання, абстрактне мислення, вміння планувати, уява і творчість. Саме вони і складають найважливіші аспекти людського інтелекту.
Враховуючи, наскільки широка палітра умінь і навичок, що утворюють інтелект, ми не можемо сформулювати проблему, вирішення якої можна було б використовувати в якості тесту інтелекту. Так, елементи інтелекту виявляють навіть тварини: вони вміють, наприклад, самостійно виживати в природних умовах і управляти своїм часом. Колонії комах також вміють швидко адаптуватися до змін середовища існування для захисту своїх гнізд. Навіть популярні тести IQ вимірюють, швидше, не стільки рівень інтелекту, скільки рівень тренованості і вміння складати подібні тести. Іншими словами, такі тести вимірюють інтелект лише в його вузькому сенсі. Комп’ютерним ігровим засобів штучного інтелекту доводиться вирішувати в ході гри такі ж завдання, що і людям, але із застосуванням методів штучного інтелекту. Засоби штучного інтелекту керують персонажами комп’ютерних ігор, успішно домагаючись створення ілюзії цілеспрямованої діяльності.
3. Науковий напрямок у галузі штучного інтелекту
машинний штучний інтелект тьюринг Згідно з другою інтерпретації, штучний інтелект це набір певних технологій та методик. Найкраще визначення терміну «штучний інтелект» в такій інтерпретації
Штучний інтелект це науковий напрямок, що вивчає методи розв’язання за допомогою машин складних завдань, подібні методам, які використовуються для вирішення таких завдань людьми. Як правило, ці методи зводяться до моделювання характеристик біологічного інтелекту і застосування отриманих моделей у вигляді алгоритмів, відтворюваних на комп’ютерах.
Алгоритми штучного інтелекту можна застосовувати для вирішення практично будь-яких завдань, а не тільки для моделювання людського інтелекту. Наприклад, вони можуть використовуватися для управління виробничою лінією в промисловості або для розпізнавання образів в медицині. Ці методи стають частиною наукового напрямку, присвяченого дослідженню задач штучного інтелекту, в зв’язку з наявністю загальних характерних особливостей між біологічним і штучного інтелекту (наприклад, здатності до навчання або абстракції).
Штучний інтелект, як наукова дисципліна, перебуває на перетині багатьох інших дисциплін (наприклад, комп’ютерних наук, психології та математики). Кожна з них, в свою чергу, спирається на величезний пласт накопичених людством знань про навколишнє нас природі і про нас самих. Враховуючи настільки велике коло питань, супутніх моделювання штучного інтелекту, дуже складно сказати, що належить до галузі наукових інтересів вчених, що займаються цією темою, а що ні. Коло наукових інтересів фахівців з штучного інтелекту постійно розширюється, втручаючись в інші області людських знань; це свідчить про зрілість даного наукового напрямку і відповідно його наукового апарату іншим природничо-наукових теорій.
Історично склалося так, що вчені, які займаються проблемами штучного інтелекту, як правило, зосереджуються на досить вузьких проблемах і методах, прив’язаних до конкретної проблемної області. Така вузька спеціалізація робить задачу вивчення (а також і практичного втілення) можливих рішень щодо нескладною. Подібні вузькоспеціалізовані рішення отримали назву слабкого штучного інтелекту, оскільки їх дуже важко застосувати де-небудь за межами проблемних областей, для яких вони розроблені.
Подібна слабкість штучного інтелекту поступово стала чимось на зразок лежачого на дорозі валуна, який не можна ні обійти, ні об'їхати. У багатьох проблемних областях методи штучного інтелекту зарекомендували себе з найкращого боку, проте при цьому для їх коректного застосування в переважній більшості випадків потрібна наявність людини-експерта. Коли ж робляться спроби зібрати ці методи воєдино для вирішення більш великомасштабних проблем, стає зрозуміло, що ці методи дуже спеціалізовані.
Саме тому нам потрібно займатися підготовкою інженерів, що спеціалізуються в галузі штучного інтелекту. Якщо б теоретичні основи штучного інтелекту були досконалими, в програмістів взагалі не було б необхідності. Проте до настання цього моменту ще, як мінімум, кілька десятиліть, тому ми як і раніше при розробці технічних систем потребуємо в людях. Все це відноситься і до реалізації технологій штучного інтелекту в комп’ютерних іграх.
4. Технології штучного інтелекту
Установка ігор в мобільний телефон ускладнюється такими технічними обмеженнями:
— під час гри телефон повинен виконувати свою основну функцію підтримувати зв’язок з базовою станцією;
— деструктивна програма, якщо їй дати можливість виконувати будь-які дії, може викрасти і конфіденційні дані, і зберігаються на рахунку гроші;
— слабкий процесор телефону і маленький об'єм оперативної пам’яті.
Рішення на машинному коді самого початку орієнтовані на певну платформу. Тому такі ігри показують найвищий рівень продуктивності і використовують всі мультимедійні можливості апарату, але недоступні для інших платформ.
Історично перша, проста технологія написання мобільних ігор на машинному коді у складі прошивки пристрою. Такі ігри існують навіть для дешевих телефонів, а проте такі ігри неможливо замінити або видалити без вихідних кодів прошивки.
У смартфонах і кишенькових комп’ютерах застосовуються встановлювані ігри на машинному коді (як на звичайних комп’ютерах), наприклад, ігри для N-Gage. Як і будь-яка інша програма, така гра може містити деструктивний код. З цим борються за допомогою сертифікації ігор, проте не всі виробники або видавці можуть дозволити собі це, а іноді витрати на сертифікацію можуть стати причиною більш високої ціни на гру.
4.1 Мови програмування, які можна використовувати для написання ігор для ОС Android
Мова програмування це формальна знакова система, призначена для запису комп’ютерних програм. Мова програмування визначає набір лексичних, синтаксичних і семантичних правил, які задають зовнішній вигляд програми і дії, які виконає виконавець (комп'ютер) під її керуванням.
J2ME
Sun J2ME (Java 2 Micro Edition, в просторіччі Java) одне з найпоширеніших засобів для розробки ігор для мобільних телефонів. Легкість портування дозволяє випускати одну і ту ж гру на велике число різних пристроїв. Використання віртуальної машини для виконання проміжних кодів дозволяє обмежити доступ програми до даних телефону для підвищення безпеки, однак це ж часто призводить до зниження функціональності.
Незважаючи на те, що проміжний код призначений для виконання на великій кількості пристроїв, на різних телефонах реалізації віртуальної машини і апаратні специфікації можуть відрізнятися. Це може привести до проблем з сумісністю гри з різними пристроями, особливо при використанні розробниками додаткових бібліотек. Наприклад, різні пристрої можуть справлятися по-різному з відтворенням MMAPI при високих навантаженнях на мультимедійну підсистему, а деякі можуть не працювати і зовсім. Іншими поширеними проблемами є різна кількість доступної розподіленої пам’яті пристрою і різні розміри дисплеїв (на деяких телефонах можна робити поворот екрану або здійснювати динамічна зміна дозволу дисплея), що також тільки додає проблем розробникам.
Android
Android це операційна система для мобільних телефонів і смартбуків, заснована на ядрі Linux. Спочатку розроблялася компанією Android Inc.
Платформа від Google, існує у вигляді безкоштовної ОС, яка використовується виробниками телефонів. Мобільні ігри пишуться на Java, пізніше в Android SDK з’явилася можливість робити це і на C + +.
REW
Qualcomm BREW (Binary Runtime Environment, для Wireless) являє собою спеціальну віртуальну машину, оптимізовану під швидкість і невеликий розмір. Поширений в США. Під BREW можна програмувати на Си або на Java. З’явившись пізніше J2ME, BREW, уникнув більшості проблем, властивих Java-платформі. BREW має велику швидкість виконання проміжного ходу, вбудований захист від копіювання та більш жорстку стандартизацію. SDK безкоштовний, але в свою чергу для кінцевого продукту необхідна дорога сертифікація в Qualcomm, а для налагодження спеціальний пристрій.
Mophun
Mophun це програмна ігрова консоль для мобільних телефонів (software based gaming console for mobile devices). Вона розроблена з метою зменшити прірву між розробкою традиційних консольних ігор та ігор для мобільних телефонів.
З технічної точки зору, Mophun перевершує J2ME. Тести, які провели незалежні компанії, показали, що в пристрої, де Mophun видає 60 MIPS, J2ME показує 400 KIPS (це означає в 150 разів повільніше). Synergenix також додає, що в деяких пристроях деякі підсистеми використовують не код віртуальної машини, а нативний код процесора телефону, а це означає, що швидкість може досягати 90% максимальної здатності ЦП телефону (наприклад, 90 MIPS для моделі з продуктивністю 100 MIPS при роботі з нативними програмами).
5. Система Android
5.1 Можливості операційної системи Android
Google Android це портативна (мережева) операційна система для комунікаторів, планшетних комп’ютерів, цифрових програвачів, наручного годинника, нетбуків і смартбуків, заснована на спрощеному ядрі Linux. Спочатку розроблялася компанією Android Inc., Яку потім купила Google. Згодом Google ініціювала створення альянсу Open Handset Alliance (OHA), який зараз і займається підтримкою і подальшим розвитком платформи. Android дозволяє створювати Java-програми, що керують пристроєм через розроблені Google бібліотеки. Android Native Development Kit створює програми, написані на С та інших мовах.
Програми для Android є програмами в нестандартному байт-коді для віртуальної машини Dalvik.
Google пропонує для вільного скачування інструментарій для розробки (Software Development Kit), який призначений для x86-машин під операційними системами Linux, Mac OS X (10.4.8 або вище), Windows XP, Windows Vista і Windows 7. Для розробки потрібно JDK 5 або більш новий.
Розробку додатків для Android можна вести мовою Java (не нижче Java 1.5). Існує плагін для Eclipse «Android Development Tools» (ADT), призначений для Eclipse версій 3.3−3.7. Для IntelliJ IDEA також існує плагін, який полегшує розробку Android-додатків. Для середовища розробки NetBeans IDE розроблений плагін, який починаючи з версії Netbeans 7.0 перестав бути експериментальним, проте поки не є офіційним. Крім того існує Motodev Studio for Android, яка представляє собою комплексну середовище розробки, засновану на базі Eclipse і дозволяє працювати безпосередньо з Google SDK.
Крім того в 2009 році на додаток до ADT був опублікований Android Native Development Kit (NDK), пакет інструментарій і бібліотек дозволяє вести розробку додатків на мові С/С++. NDK рекомендується використовувати для розробки ділянок коду критичних до швидкості.
Доступні бібліотеки:
— вionic (бібліотека стандартних функцій, несумісна з libc);
— libc (стандартна системна бібліотека мови Сі);
— мультимедійні бібліотеки (на базі PacketVideo OpenCORE; підтримують такі формати, як MPEG4, H.264, MP3, AAC, AMR, JPG і PNG);
— SGL (движок двомірної графіки);
— OpenGL ES 1.0 ES 2.0 (движок тривимірної графіки);
— Surface Manager (забезпечує для додатків доступ до 2D/3D);
— WebKit (готовий движок для Web-браузера; обробляє HTML, JavaScript);
— FreeType (движок обробки шрифтів);
— SQLite (легковага СУБД, доступна для всіх додатків);
— SSL (протокол, що забезпечує безпечну передачу даних по мережі).
У порівнянні зі звичайними додатками Linux, додатки Android підкоряються додатковим правилам:
— content Providers обмін даними між додатками;
— resource Manager доступ до таких ресурсів, як файли XML, PNG, JPEG;
— notification Manager доступ до рядка стану;
— activity Manager управління активними додатками.
21 жовтня 2008 альянс OHA опублікував вихідний код платформи Android. У реліз увійшов весь стек Android: і операційна система, і проміжне ПЗ (middleware), і основні кінцеві додатки, написані на Java. Загальний обсяг вихідного коду Android склав 2,1 Гб. «Переважною ліцензією» на вихідний код Android є Apache License 2.0. Після випуску Android 3.0 Honeycomb президент мобільного підрозділу Google Енді Рубін заявив про те, що відкриття вихідного коду нової версії системи буде відкладено через те, що система була погано готова для запуску на комунікаторах і вимагає значних оптимізацій. Це рішення викликало критичні оцінки аналітиків: наприклад, оглядач ZDNet Крістофер Доусон назвав такий хід Google розчаровує. Але, згідно з даними компанією обіцянкам, Google відкрила восени 2011 року вихідні коди наступної версії системи Android 4.0 Ice Cream Sandwich. Для Android був розроблений формат настановних пакетів.аpk.
5.2 Перевага Android над іншими системами на мобільні пристрої
Деякі оглядачі відзначають, що Android проявляє себе краще однієї зі своїх конкуренток, Apple iOS, в ряді особливостей, таких як: веб-серфінг, інтеграція з сервісами Google Inc. та інших. Android, на відміну від iOS є відкритою платформою, що дозволяє реалізувати на ній більше функцій.
На відміну від iOS і Windows Phone 7, в Android повноцінна реалізація Bluetooth стека, що дозволяє в тому числі передачу і прийом файлів. Присутній реалізація FTP-сервера, режиму точки доступу до мережі (служби PAN) і груповий тимчасової мережі через Bluetooth (служби GN).
В Android апаратах як правило присутня MicroSD-кардрідер, що дозволяє швидкий перенесення файлів з комп’ютера на телефон, минаючи швидкісні обмеження USB та інших способів передачі без вилучення картки пам’яті, крім того, в iOS і Windows Phone 7 неможлива пряма передача будь-яких файлів в / з телефону, окрім як через програми синхронізації (iTunes і Zune), в той час як телефони на Android експортують файлову систему карти пам’яті як USB mass storage device (як «флешку»).
Незважаючи на початковий заборона на установку програм з «неперевірених джерел» (наприклад, з карти пам’яті), це обмеження відключається штатними засобами в налаштуваннях апарата, що дозволяє легко встановлювати програми на телефони та планшети без інтернет-підключення (наприклад користувачам, які не мають Wi — Fi точки доступу і не бажають витрачати гроші на мобільний інтернет, який зазвичай коштує занадто дорого) а також дозволяє всім бажаючим безкоштовно писати програми для Android і тестувати на своєму апараті, в той час як для iOS і Windows Phone 7 довелося б купувати обліковий запис розробника, навіть якщо ви не збираєтеся надалі поширювати свої власні програми. З іншого боку, можливість установки програм минаючи маркет дозволяє легко використовувати піратські (зламані або просто скопійовані, в залежності від наявності в програмі перевірки ліцензії) копії програм, що знижує привабливість платформи для розробників платних додатків (в основному ігор). Втім, покупець буде більш схильний до купівлі програми після того, як він її перевірить на своєму апараті в роботі, ніж якщо йому пропонують купити програму «наосліп». Android доступний для різних апаратних платформ, таких як ARM, MIPS, x86.
6. Роль ігор в розвитку людини
Сьогодні, як ніколи широко усвідомлюється відповідальність суспільства за виховання підростаючого покоління. Перетворення загальноосвітньої і професійної школи націлює на використання всіх можливостей, ресурсів для підвищення ефективності навчально-виховного процесу. Далеко не всі педагогічні ресурси використовуються в сфері виховання та розвитку дитини. До таких мало використовуваних засобів виховання відноситься гра. А між тим, педагогіка і психологія бачать у грі такі важливі особливості як:
— полі функціональність це можливість надати особистості позицію суб'єкта діяльності замість пасивного споживача інформації, вкрай важлива для ефективності навчально-виховного процесу;
— гра відноситься до непрямого методу впливу: дитина не відчуває себе об'єктом впливу дорослого, є повноправним суб'єктом діяльності;
— гра це такий засіб, де виховання переходить у самовиховання;
— гра найтіснішим чином пов’язана з розвитком особистості, а саме в період її особливо інтенсивного розвитку в дитинстві, воно набуває особливого значення;
— гра перша діяльність, якій належить особливо значна роль у розвитку особистості, у формуванні властивостей і збагаченні його внутрішнього змісту.
У ранні, дошкільні роки життя дитини гра є тим видом діяльності, в якому формується його особистість. Увійшовши в гру, раз за разом закріплюються відповідні дії; граючи, дитина все краще опановує можливості ігор: гра стає для нього своєрідною школою життя. Дитина грає не для того, щоб придбати підготовку до життя, а набуває підготовку до життя, граючи, тому що у нього закономірно виникає потреба розігрувати саме ті дії, які є для нього новопридбаними, ще не стали звичками.
7. Жанри та портування ігор
Переважна більшість ігор написано в жанрі «аркада» і «головоломка». Зрідка зустрічаються представники інших жанрів. Основним обмеженням для «розмаїття жанрів» є пристрій введення. Наприклад, для зручної гри в 3D-шутер бажана можливість одночасного наведення на ціль і стрільби використання двох клавіш одночасно, що ускладнено на маленьких клавіатурах мобільного телефону, а стратегії в реальному часі спочатку орієнтувалися на управління джойстиком або комп’ютерною мишею.
Щоб залучити потенційного покупця, часто випускаються мобільні ігри з використанням відомого бренду (наприклад, Doom RPG), за мотивами недавно з’явився фільму або повноцінної відеоігри, або з використанням оголеної натури.
Для того, щоб гра могла приносити прибуток, важливо, щоб її підтримувало велика кількість телефонів. При цьому технічні особливості різних апаратів сильно розрізняються: наприклад, максимально можливий розмір програми або обсяг ОЗУ. Зазвичай пишуть гру для деякого «середнього» телефону, а потім модифікують під інші.
Для переносу між платформами змінюється розмір екрану і коди клавіш, підключаються ті бібліотеки, які підтримує телефон. Для перенесення на менш функціональний пристрій з цільового продукту може бути видалено вміст (наприклад, зменшено число ігрових рівнів або зменшено якість графіки). Для перенесення на більш функціональний можуть додаватися будь відео ефекти (як правило, не впливають на геймплей). Для налагодження кінцевого продукту може використовуватися емулятор (найбільш дешевий варіант) або справжні пристрої (більш дорогий, але надійний варіант). Майже у всіх компаній-розробників є інструментарій, який спрощує портування. Як правило, він є комерційною таємницею, хоча існують комерційні рішення (напрмер Celsius) і доступні безкоштовно для некомерційного використання (наприклад J2ME Polish).
8. Значення штучного інтелекту для ігор
З найперших днів зародження ігрової індустрії, починаючи з таких ігор, як Pong, засоби штучного інтелекту стали невід'ємною частиною практично будь-якої гри. У зв’язку з тим, що сьогодні багато аспектів сучасних ігор (наприклад, графіка або звук) досягли дивовижною ступеня досконалості, увага розробників все більше і більше зосереджується на вдосконаленні засобів штучного інтелекту. В останні роки спостерігається вибух росту інтересу до питань розробки ігрових засобів штучного інтелекту, причому в новітніх ігрових програмах такі кошти навіть висуваються на передній план.
Для переважної більшості людей штучний інтелект це мозок могутніх кіборгів. Це не дивно, адже саме в такому контексті використовується цей термін у фантастичних фільмах. Для програмістів штучний інтелект набив оскому модне вираз, що використовується для позначення технології, яка впродовж XX століття знову і знову не виправдовувала покладені на неї сподівання. Для вчених штучний інтелект невичерпне джерело цікавих завдань, відкриттів і наукових ступенів.
А яке відношення має штучний інтелект до розробників ігор?
Слід розуміти, що термін штучний інтелект, строго кажучи, має два різні значення:
— штучний інтелект це форма інтелектуальності, штучно відтворена за допомогою машин;
— штучний інтелект це набір академічних методик, методів дослідження і завдань, якими займається окремий науковий напрям.
9. Штучний інтелект у грі
9.1 Поняття і терміни
Ігровий штучний інтелект (Game artificial intelligence) набір програмних методик, які використовуються в мобільних іграх для створення ілюзії інтелекту в поведінці персонажів. Ігровий ШІ, крім методів традиційного штучного інтелекту, включає також алгоритми теорії управління, робототехніки, комп’ютерної графіки та інформатики в цілому.
Реалізація ШІ сильно впливає на геймплей, телефон в якому малі системні ресурси не здатен коректно запустити гру бо потребує забагато системних ресурсів, і розробники балансують між цими вимогами, намагаючись зробити цікавий і невимогливий до ресурсів ШІ малою ціною. Тому підхід до ігрового ШІ серйозно відрізняється від підходу до традиційного ШІ, широко застосовуються різного роду спрощення, обмани і емуляції. Наприклад: з одного боку, в шутерах від першої особи безпомилковий рух і миттєве прицілювання, властиве ботам, не залишає жодного шансу людині, так що ці здібності штучно знижуються. З іншого боку боти повинні робити засідки, діяти командою і т.д., для цього застосовуються «милиці» у вигляді контрольних точок, розставлених на рівні.
Персонажів ігор, керованих ігровим штучним інтелектом, ділять на:
— неігрові персонажі (Non-player character NPC) як правило, ці ШІ персонажі є дружніми або нейтральними до гравця;
— боти (Bot) ворожі до гравця ШІ персонажі, що наближаються за можливостями до ігрового персонажу (проти гравця в будь-який конкретний момент б’ються невелика кількість пошукових роботів. Боти найбільш складні в програмуванні);
— моби (Mob) ворожі до гравця «низько інтелектуальних» ШІ персонажі (моби вбиваються гравцями у великих кількостях заради очок досвіду, артефактів або проходження території).
9.2 Застосування штучного інтелекту у грі
Евристичні алгоритми ігрового штучного інтелекту використовуються в широкому розмаїтті в багатьох галузях всередині гри. Найочевидніше застосування ігрового ШІ проявляється в контролюванні неігрових персонажів, хоча скриптинг теж є дуже поширеним способом контролю. Пошук шляху є іншим широко поширеним застосуванням ігрового ШІ, він особливо проявляється в стратегіях реального часу. Пошук шляху є методом для визначення того, як неігровому персонажу перейти з однієї точки на карті до іншої: треба враховувати ландшафт, перешкоди і, можливо, «туман війни». Ігровий ШІ також пов’язаний з динамічною ігровий балансуванням.
Концепція непередбачуваного (emergent) ШІ була недавно досліджена в таких іграх як Creatures, Nintendogs і Tamagichi. «Домашні тварини» в цих іграх мають здатність «навчатись» з дій, зроблених гравцем, і їх поведінка змінюється відповідно. У той час, як ці рішення взяті з обмеженого безлічі можливих рішень, це дійсно часто дає бажану ілюзію інтелекту по інший бік екрану.
9.3 Чітерскій штучний інтелект в іграх
В іграх, в яких важливий творчий потенціал гравця, ШІ не може битися на рівних з людиною. Щоб зрівняти шанси, застосовують чітерский, або обманний ШІ.
Обманний ШІ компенсує відсутність стратегічного мислення якими іншими перевагами над гравцем. Наприклад: більша кількість життів, більш швидке пересування або ігнорування туману війни. Поняття «чітерский» вживається тільки стосовно привілеїв штучного характеру: так, нелюдська реакція, стрімкість і точність, властива комп’ютеру, чітерством не вважається.
Звичайно, комп’ютер завжди має перевагу над людиною, людині доводиться покладатися на зір і слух з їх обмеженнями, в той час як комп’ютер має прямий (хоч і обмежений) доступ до абстракцій движка. Проте ніхто серйозно не вважає, що «істинний» ігровий ШІ повинен мати і використовувати алгоритми візуальної обробки, тим більше, що відтворення людського зору в даний час є недосяжною метою для систем машинного зору.
Нижче наведено один загальний приклад чітерскіх ігрового ШІ, який присутній у багатьох гоночних іграх. Якщо ШІ гравець досить сильно відстає від основної маси гонщиків, він раптово отримує величезне збільшення швидкості або інші параметри, що дозволяють йому нагнати інших гонщиків і знову стати конкурентоспроможним суперником. Цей метод відомий як «метод гумової нитки» (Rubber banding) або (Catch-Up), тому що він дозволяє ШІ персонажу негайно повернутися назад в конкурентоспроможну позицію. У більш просунутих іграх конкурентоспроможність неігрових персонажів або ботів може бути досягнута завдяки динамічному ігровому балансування, який можна вважати більш справедливим, хоча все ще технічним обманом, тому що ШІ гравці все ще отримують переваги, навіть при тому, що вони дотримуються правила віртуального світу.
9.4 Битва декількох NPC між собою
Битва декількох ШІ персонажів (ботів, NPC) між собою (AI infighting, monster infighting) є терміном, популяризувала шутерами від першої особи, такими як Doom, випущеними в 2010 році на мобільні телефони з операційною системою Android. Це явище відбувається, коли двоє або більше персонажів, керованих комп’ютером, випадково атакують один одного і потім приймають відповідні заходи, викликаючи низку взаємних атак. Це може бути досягнуто найбільш легко переміщенням ігрового персонажа так, щоб він тимчасово перебував на одній лінії з двома супротивниками. При такій ситуації один бот буде атакувати гравця незалежно від того, чи перебуває його союзник, інший бот, на лінії вогню, перед або позаду наміченої мети, таким чином він піддає свого компаньйона дружньому вогню. ШІ персонаж, якого атакував інший ШІ персонаж помилково, найбільш часто поміняє свій статус щодо атакуючого на «ворожий» і буде його атакувати у відповідь, можливо змушуючи цим інших ботів атакувати себе.
Це явище приносить користь гравцю двома способами: скорочує кількість ворогів, що нападають на гравця і дозволяє гравцю економити боєприпаси, окуляри магії і окуляри життя. Дружній вогонь ботів став новим аспектом гри Doom, вводячи цей аспект в інші шутери від першої особи. Однак, у найбільш нових шутерах від першої особи, боти і NPC не програмуються, щоб приймати відповідні заходи, якщо по ним здійснено дружній вогонь іншими ШІ персонажами.
9.5 Пошук станів в іграх
Пошук це метод вирішення проблеми, в якому систематично проглядається простір станів завдання. Приклади станів завдання: різні розміщення фігур на дошці в шахах або ж проміжні кроки логічного обґрунтування. Потім в цьому просторі альтернативних рішень проводиться перебір в пошуках остаточної відповіді. Вчені стверджують, що ця техніка лежить в основі людського способу вирішення різних завдань. Зазначимо, що пошук є однією з фундаментальних проблем, що займають розробників штучного інтелекту.
Багато досліджень в області пошуку в просторі станів здійснювалися на основі таких поширених настільних ігор, як шашки, шахи та п’ятнашки. Додатково до властивому їм інтелектуальному характеру такі ігри мають деякі властивості, що роблять їх ідеальним об'єктом для експериментів. Більшість ігор ведуться з використанням чітко визначеного набору правил, це дозволяє легко будувати простір пошуку і позбавляє дослідника від неясності і плутанини, властивих менш структурованим проблемам. Позиції фігур легко представимо в комп’ютерній програмі, вони не вимагають створення складних формалізмів, необхідних для передачі семантичних тонкощів більш складних предметних областей. Тестування ігрових програм не породжує жодних фінансових або етичних проблем. Пошук в просторі станів принцип, що лежить в основі більшості досліджень в області ігор.
Ігри можуть породжувати надзвичайно великі простору станів. Для пошуку в них потрібні потужні методики, що визначають, які альтернативи слід розглядати. Такі методики називаються евристиками і складають значну область досліджень штучного інтелекту. Евристика стратегія корисна, але потенційно здатна втратити правильне рішення. Прикладом евристики може бути рекомендація перевіряти, чи включений прилад в розетку, перш ніж робити припущення про його поломки, або виконувати рокіровку в шаховій грі, щоб спробувати вберегти короля від шаха. Велика частина того, що ми називаємо розумністю, мабуть, спирається на евристики, які люди використовують у вирішенні завдань.
Оскільки у більшості з нас є досвід в цих простих іграх, можна спробувати розробити свої евристики і випробувати їх ефективність. Для цього не потрібні консультації експертів у якихось темних для непосвячених областях, на зразок медицини або математики. Тому ігри є хорошою основою для вивчення евристичного пошуку. Програми ведення ігор, незважаючи на їх простоту, ставлять перед дослідниками нові запитання, включаючи варіант, при якому ходи противника неможливо детерміновано передбачити. Наявність противника ускладнює структуру програми, додаючи в неї елемент непередбачуваності і потреба приділяти увагу психологічним і тактичним факторам ігрової стратегії.
10. Основні функції ігор в яких використовується штучний інтелект
Мобільні ігри побудовані на різних конфліктах, що виникають в процесі гри між двома, трьома і більше гравцями, де за одну із сторін може виступати штучний інтелект самої гри. Поведінка персонажів в грі обумовлено безліччю різних факторів або подій, які, як правило, змінюються кожну секунду. В цьому ракурсі завдання програміста ігровий логіки полягає у створенні об'єктів вміють адекватно реагувати на різні ігрові події.
Особливої ??необхідності писати в мобільних іграх систему штучного інтелекту, засновану на нейронних мережах, нечіткій логіці або генетичних алгоритмах людського мозку немає, все це може бути застосовано в інших місцях. Замість цього в іграх для мобільних телефонів використовується набір різних алгоритмів дозволяють створювати цілком придатний, а головне розумний ігровий інтелект. Імітація розумності персонажів гри це і є основна і головна мета, яку мені належить вирішувати в міру створення додатків.
Штучний інтелект це дуже складна і широко освітлювана тема багатьох видань, наприклад, у видавництва «ДМК-Пресс» є хороша книга з цієї теми з назвою: «Програмування штучного інтелекту в додатках». Я пропоную в цьому циклі статей розглянути основні прийоми, які використовуються при формуванні ігрової логіки. Для цього я розділив публікацію на кілька частин, де використовуються детерміновані і шаблонні алгоритми штучного інтелекту. Нижче представлений повний список майбутніх частин публікації:
— рух в заданому напрямку одним з найпростіших способів руху об'єкту є його переміщення з певною швидкістю в заданому напрямку;
— рух за об'єктом ця частина буде містити кілька розширену інформацію по переміщенню об'єктів в просторі, що дозволить мені створювати більш розумних персонажів гри, які будуть невідступно переслідувати гравця протягом усього ігрового процесу або заданого проміжку часу;
— рух від об'єкта не завжди потрібно невідступно слідувати за гравцем, іноді слід втекти, сховатися і накопичити сили для подальшої атаки.;
— випадкове або хаотичний рух одним з цікавих видів руху персонажів в грі є їх незалежне і випадкове переміщення;
— прості шаблони очевидно, що ігрові шаблони включають в себе вже більш високий рівень ігрового інтелекту.
Шаблони з обробкою подій шаблони з можливістю обробки ігрових подій це одне з потужних засобів створення ігрової логіки. Зміна станів ігрових об'єктів при розгляді цього питання, ми конкретному прикладі змоделюємо зміну станів ігрового об'єкта на основі розподіленої логіки і лічильника пройшли ігрових циклів.
Висновок
Багато суперечки навколо проблеми створення штучного інтелекту мають емоційну підґрунтя. Визнання можливості штучного розуму
представляється чимось принижує людську гідність. Однак не можна
змішувати питання можливостей штучного розуму з питанням про розвиток і
вдосконаленні людського розуму. Повсюдне використання ШІ створює
передумови для переходу на якісно новий щабель прогресу, дає поштовх
новому витку автоматизації виробництва, а значить і підвищенню
продуктивності праці. Зрозуміло, штучний розум може бути
використаний в брудних цілях, але це проблема не наукова, а скоріше морально-етична.
Однак розвиток кібернетики висуває ряд проблем, які все ж вимагають
пильної уваги. Ці проблеми пов’язані з небезпеками, що виникають в
хід робіт з штучного інтелекту.
Перша проблема пов’язана з можливою втратою стимулів до творчої праці в результаті масової комп’ютеризації або використання машин в сфері мистецтв.
Проте останнім часом стало ясно, що людина добровільно не віддасть самий кваліфікований творчу працю, так як він для самої людини є
привабливим. Друга проблема носить більш серйозний характер, і на неї неодноразово вказували такі фахівці, як М. Вінер, Н. М. Амосов, І. А. Полєтаєв та ін. Складається вона в наступному. Уже зараз існують машини і програми, здатні в процесі роботи самонавчатися, тобто підвищувати ефективність пристосування до зовнішніх чинників. У майбутньому, можливо, з’являться машини, що володіють таким рівнем пристосовності і надійності, що необхідність людині втручатися в процес відпаде. В цьому випадку можлива втрата самим людиною своїх якостей, відповідальних за пошук рішень. У наявності можлива деградація здібностей людини до реакції на зміну зовнішніх умов і, можливо, нездатність прийняття управління на себе у випадку аварійної ситуації. Встає питання про доцільність введення деякого граничного рівня в автоматизації процесів, пов’язаних з важкими аварійними ситуаціями. В цьому випадку у людини, «наглядає» за керуючої машиною, завжди вистачить вміння і реакції таким чином впливати на ситуацію, щоб погасити розпалюється аварійну ситуацію. Такі ситуації можливі на транспорті, в ядерній енергетиці. Особливо варто відзначити таку небезпеку в ракетних військах стратегічного призначення, де наслідки помилки можуть мати фатальний характер. Кілька років тому в США почали впроваджувати повністю комп’ютеризовану систему запуску ракет по командам суперкомп’ютера, обробного величезні масиви даних, зібраних з усього світу. Однак виявилося, що навіть за умови багаторазового дублювання і повторної перевірки, ймовірність помилки виявилася б настільки велика, що відсутність контролюючого оператора призвело б до непоправної помилки. Від системи відмовилися. Люди будуть постійно вирішувати проблему штучного інтелекту, постійно стикаючись все з новими проблемами. І, мабуть, процес цей нескінченний.
Перелік посилань
1. Шихов Е. Варіанти реалізації штучного інтелекту — ресурс Інтернету, http://neural.narod.ru/, 2002
2. Ендрю А. Штучний інтелект — М.: Мир, 1985.
3. Квасний Р. Штучний інтелект — ресурс Інтернету, http://neural.narod.ru/, 2001.
4. Брушлинский А. В. Чи можливий штучний інтелект?
5. Н. Вінер Н. Кібернетика — М.: Наука, електронна версія, 1998.
6. Праці третього міжнародного симпозіуму «Інтелектуальні системи» — Псков: 1998.
7. Соколов Е. Н., Вайткявічус Г. Г. Нейроінтеллект: від нейрона до нейрокомп’ютер — М.: Наука, 1989.
8. Циганков В. Д. Нейрокомп’ютер і його застосування — М.: СолСістем, 1993.
9. Ноткин Л.І. Штучний інтелект і проблеми навчання.
10. Венда В. Ф. Системи гібридного інтелекту — М.: Машинобудування, 1990.
11. Волгін Л. І. комплементарна алгебра нейромереж — Таллінн: АТ «KLTK», 1993.
12. Жолдак М.І. Інформаційні технології: зб. наук. пр. / редкол.: Південно-укр. держ. пед. ун-т ім. К. Д. Ушинського. — Одеса: Астропринт, 2007. — 167 с.
13. Теор Г. А. Информационные технологии: уч. — М.: Юнити, 2000. — 335 с.
14. Кунда Н. Т. Методи наукових досліджень / Н. Т. Кунда, О. М. Куницька. — К.: НТУ, 2007. — 83 с.
15. Стюарт Рассел, Питер Норвиг «Искусственный интеллект: современный поход. — К.: НТУ, 2007. — 248 с.
16. Фонд новых технологий в образовании [Электронный ресурс]. — Режим доступа к ресурсу: //http://www.bytic.ru/.
17. Российская ассоциация искусственного интеллекта [Электронный ресурс]. — Режим доступа к ресурсу: //http://www.ra — ai.org/.
18. ДСТУ 3008−95. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення. — К.: Держстандарт України, 1996. — 32 с.
19. ДСТУ ГОСТ 7.1:2006. Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила складання. — На заміну ГОСТ 7.1−84; чинний з 2007;07−01. — К.: Держспоживстандарт України, 2007.