Ігри для програмістів () — відеогри, які містять елементи програмування, дозволяючи гравцеві керувати автономними частинами у грі за допомогою предметно-орієнтованої мови програмування (часто поданої як , щоб спростити програмувальну метафору). Такі ігри поділяють на однокористувацькі, де програмувальна частина є складником або і всією головоломкою та багатокористувацькі, де програма гравця змагається з іншими.
Класифікація
Однокористувацькі головоломки й багатокористувацькі змагання
Головоломки Часто програмування є частиною головоломок, вимагаючи від гравця досягти певного результату, коли програма почне працювати. Прикладом є , де гравець використовує візуальну мову, щоб керувати двома візуальними маніпуляторами, які розбирають та збирають хімічні молекули. У схожих іграх гравці можуть випробовувати та зневаджувати свої програми скільки потрібно, доки не отримають відповідь, що спрацює. Багато ігор заохочують оптимізувати розв’язок. Серед таких ігор відомі Human Resource Machine, .
Інші ігри містять елементи програмування як частину задачі у більшій грі. Серед таких ігор , Transistor, , , and .
Інакший підхід, який використовується в деяких графічних іграх з елементами програмування, полягає в тому, щоб надати гравцеві інтерфейс командного рядка для видачі наказів через предметно-орієнтовану мову, що направляє об'єкти в грі, дозволяючи гравцеві перезапускати команди, коли ситуація змінюється, а не створювати програму наперед. Такими є , , .
Змагання Багато ігор з програмування залучають керовані об'єкти, такі як роботи, танки або бактерії, які прагнуть знищити один одного. Такі ігри можна вважати середовищами цифрових організмів, пов'язаних з імітацією штучного життя. Гравцям надаються інструменти для розроблення та тестування своїх програм у межах предметно-орієнтованої мови гри перед подачею програми на центральний сервер. Потім сервер виконує програму в змаганні проти інших і повідомляє результати гравцям, через що вони можуть вносити зміни або вдосконалення в програму. Існують різні турніри та ліги для ігор з програмування, де люди змагаються одне з одним. Зазвичай сценарій оптимізований для спеціальної стратегії. Подібні підходи використовуються для традиційних ігор; Чемпіонат світу з комп'ютерних шахів складається з поєдинків між програмами, написаними для абстрактної стратегічної гри в шахи.
Конкурентне програмування також знайшло свій шлях до різних настільних ігор, таких як або Robot Turtles, як правило, програма стає підготованою колодою гральних карт, що діють одна за одною для виконання цього коду.
Дослідники представили RoboCode як основу "автентичного навчання" програмуванню.
Пов’язані галузі Ігри з відкритим світом, які містять можливість для гравців створювати середовища з масиву будівельних блоків, часто використовуються просунутими гравцями для побудови логічних схем та досконаліших програм з фундаментальних блоків. Minecraft - один із таких прикладів, бо хоча гра надає обмежений набір блоків, що імітують комутатори та електричні кола, користувачі створили базові функціональні комп'ютери у віртуальному світі, а щонайменше одна модифікація спрямована на те, щоб навчити дітей програмувати на віртуальному комп'ютері спрощеною мовою.
Кілька сайтів, наприклад Codecademy, допомагають навчати справжнім мовам програмування через гейміфікацію, де принципи відеоігор використовуються для мотивації користувача.
За мовою програмування Для програмування коду таких ігор можуть використовуватися різні мови програмування наприклад різновиди асемблеру або мов високого рівня. Також часто використовуються інтерпретовані мови програмування.
За ціллю гри Бої у пам'яті — задача зайняти усю пам'ять комп'ютера, підвісити програму супротивника. Настільні ігри — турніри між комп'ютерам у іграх типу шахи, ґо та інші. Бойові роботи — ціллю гри є написати програму для керування іграшковою бойовою машиною(робот, танк). У деяких іграх можна змінювати конфігурацію робота (броня, зброя, та інше). Інші. Керування гоночними машинами, віртуальними колоніями бактерій, і т. д.
Історія У 1961 році у Bell Labs була розроблена гра Дарвін. На початку 1980-х років під впливом цієї гри була розроблена гра «Бій у пам'яті» (Core War).
У 1970 році пройшов перший шаховий турнір серед ЕОМ.
У 1981 році компанія MUSE Software випустила гру під назвою Robot War – саме це була перша гра, в якій програмісту доводилось керувати роботом. Гравцю дозволялося створити код для управління роботом за допомогою спеціальної мови програмування з обмеженням у 256 рядків.
Також ранніми прикладами жанру є та .
У 1985 році була розроблена гра C Robots — це перша гра, в якій програмісту доводилося керувати роботом.
Примітки
Посилання Programming Games Wiki