Ігри для програмістів

Ігри для програмістів (англ. Programming game) відеогри, які містять елементи програмування, дозволяючи гравцеві керувати автономними частинами у грі за допомогою предметно-орієнтованої мови програмування (часто поданої як візуальна мова, щоб спростити програмувальну метафору). Такі ігри поділяють на однокористувацькі, де програмувальна частина є складником або і всією головоломкою та багатокористувацькі, де програма гравця змагається з іншими.

Класифікація

Головоломки

Часто програмування є частиною головоломок, вимагаючи від гравця досягти певного результату, коли програма почне працювати. Прикладом є SpaceChem, де гравець використовує візуальну мову, щоб керувати двома візуальними маніпуляторами, які розбирають та збирають хімічні молекули. У схожих іграх гравці можуть випробовувати та зневаджувати свої програми скільки потрібно, доки не отримають відповідь, що спрацює. Багато ігор заохочують оптимізувати розв’язок. Серед таких ігор відомі Human Resource Machine, TIS-100. [1]

Інші ігри містять елементи програмування як частину задачі у більшій грі. Серед таких ігор Hack 'n' Slash, Transistor, else Heart.Break(), Glitchspace, and Pony Island.[2]

Інакший підхід, який використовується в деяких графічних іграх з елементами програмування, полягає в тому, щоб надати гравцеві інтерфейс командного рядка для видачі наказів через предметно-орієнтовану мову, що направляє об'єкти в грі, дозволяючи гравцеві перезапускати команди, коли ситуація змінюється, а не створювати програму наперед. Такими є Quadrilateral Cowboy, Duskers, Hackmud.

Змагання

Багато ігор з програмування залучають керовані об'єкти, такі як роботи, танки або бактерії, які прагнуть знищити один одного. Такі ігри можна вважати середовищами цифрових організмів, пов'язаних з імітацією штучного життя. Гравцям надаються інструменти для розроблення та тестування своїх програм у межах предметно-орієнтованої мови гри перед подачею програми на центральний сервер. Потім сервер виконує програму в змаганні проти інших і повідомляє результати гравцям, через що вони можуть вносити зміни або вдосконалення в програму. Існують різні турніри та ліги для ігор з програмування, де люди змагаються одне з одним. Зазвичай сценарій оптимізований для спеціальної стратегії. Подібні підходи використовуються для традиційних ігор; Чемпіонат світу з комп'ютерних шахів складається з поєдинків між програмами, написаними для абстрактної стратегічної гри в шахи.

Конкурентне програмування також знайшло свій шлях до різних настільних ігор, таких як RoboRally або Robot Turtles, як правило, програма стає підготованою колодою гральних карт, що діють одна за одною для виконання цього коду[3].

Дослідники представили RoboCode як основу "автентичного навчання" програмуванню[4].

Пов’язані галузі

Ігри з відкритим світом, які містять можливість для гравців створювати середовища з масиву будівельних блоків, часто використовуються просунутими гравцями для побудови логічних схем та досконаліших програм з фундаментальних блоків. Minecraft - один із таких прикладів, бо хоча гра надає обмежений набір блоків, що імітують комутатори та електричні кола, користувачі створили базові функціональні комп'ютери у віртуальному світі, а щонайменше одна модифікація спрямована на те, щоб навчити дітей програмувати на віртуальному комп'ютері спрощеною мовою[5].

Кілька сайтів, наприклад Codecademy, допомагають навчати справжнім мовам програмування через гейміфікацію, де принципи відеоігор використовуються для мотивації користувача[6].

За мовою програмування

Для програмування коду таких ігор можуть використовуватися різні мови програмування наприклад різновиди асемблеру або мов високого рівня. Також часто використовуються інтерпретовані мови програмування.

За ціллю гри

  • Бої у пам'яті — задача зайняти усю пам'ять комп'ютера, підвісити програму супротивника.
  • Настільні ігри — турніри між комп'ютерам у іграх типу шахи, ґо та інші.
  • Бойові роботи — ціллю гри є написати програму для керування іграшковою бойовою машиною(робот, танк). У деяких іграх можна змінювати конфігурацію робота (броня, зброя, та інше).
  • Інші. Керування гоночними машинами, віртуальними колоніями бактерій, і т. д.

Історія

У 1961 році у Bell Labs була розроблена гра Дарвін. На початку 1980-х років під впливом цієї гри була розроблена гра «Бій у пам'яті» (Core War).

У 1970 році пройшов перший шаховий турнір серед ЕОМ.

У 1981 році компанія MUSE Software випустила гру під назвою Robot War – саме це була перша гра, в якій програмісту доводилось керувати роботом. Гравцю дозволялося створити код для управління роботом за допомогою спеціальної мови програмування з обмеженням у 256 рядків.

Також ранніми прикладами жанру є System 15000 та Hacker.

У 1985 році була розроблена гра C Robots — це перша гра, в якій програмісту доводилося керувати роботом.

Примітки

  1. Sayer, Matt (3 жовтня 2016). Can Videogames Teach You Programming?. Rock, Paper, Shotgun (амер.). Процитовано 9 червня 2020.
  2. Bosch, Synonymous (26 листопада 2018). The 10 best hacking, coding and computing games. Rock, Paper, Shotgun (амер.). Процитовано 9 червня 2020.
  3. Metz, Cade (24 липня 2014). The 75-Year Saga Behind a Game That Teaches Preschoolers to Code. Wired. ISSN 1059-1028. Процитовано 9 червня 2020.
  4. O'Kelly, Jackie; Gibson, J. Paul (26 червня 2006). RoboCode & problem-based learning. ACM SIGCSE Bulletin 38 (3). с. 217. ISSN 0097-8418. doi:10.1145/1140123.1140182. Процитовано 9 червня 2020.
  5. Finley, Klint (18 серпня 2014). New Minecraft Mod Teaches You Code as You Play. Wired. ISSN 1059-1028. Процитовано 9 червня 2020.
  6. Vincent, Alice (19 серпня 2011). Codecademy 'gamifies' the process of learning Javascript. Wired UK. ISSN 1357-0978. Процитовано 9 червня 2020.

Посилання

  • Programming Games Wiki(англ.)
  • Константин Ветлугин, Денис Коновальчик. Аты-Боты // Компьютерра. — 6 апреля 1999.   14 (292).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.