Справі – час, потісі – година, але не в разі, якщо йдеться про програмістів. Адже зараз існує безліч ігор, освітніх, навчальних і просто кумедних, створених розробниками для розробників. Вони покликані прокачувати «скіл» програміста, тренувати логіку і просто розважати гравця. AIN.UA зібрав у список популярні ігри для програмістів, а також додав до добірки кілька ігор, орієнтованих на дітей. Наша добірка, звісно ж, не претендує на всеосяжність, якщо ми проґавили якусь круту гру – відзначте її в коментарях.
У 2021 році редакція AIN.UA оновила цей текст. Ми додали до списку ще кілька онлайн-ігор для програмістів, які допоможуть освоїти ази JavaScript, Java, Python, PHP, C# та інших мов у більш захопливій формі.
Ігри для програмістів
SpaceChem
Гра-головоломка, у процесі якої гравцеві потрібно створювати нові хімічні елементи для корпорації SpaceChem, використовуючи хімічні реакції, поділ ядра або синтез. До чого тут програмісти? Гра, окрім розваги, дає і можливість потренувати навички паралельного програмування, і є доволі «хардкорною». Є в Steam, причому 90% відгуків про неї – позитивні.
Uplink
Якщо вам завжди хотілося побувати в шкурі кулхакера, але якось не випадала можливість, ця гра вам підійде. Гравцеві належить виконувати найрізноманітніші завдання від якоїсь хакерської корпорації: зламувати локальні мережі, підбирати паролі, змінювати записи в базах даних тощо. Можна збирати гроші у себе на рахунку, оновлювати «залізо» і софт, заробляти очки репутації.
Гра доступна на всіх десктопних і основних мобільних платформах.
CodeCombat
Платформа для вивчення програмування, яка доступна російською мовою. Проходячи рівні, гравець нібито підвищує свою кваліфікацію: він може навчитися писати прості та складні скрипти АІ, вивчити HTML і навіть створювати свої власні рівні. Як і в популярних іграх, у CodeCombat є клани, до яких можна приєднуватися. Можна грати по мережі.
Code Monkey
Гра призначена для дітей, оскільки кодити вона вчить у процесі збирання бананів. Однак, Code Monkey чудово підійде для тих дорослих, які тільки починають розбиратися в програмуванні і хочуть потренуватися виконувати практичні завдання.
CodeRally
Це open source-гра про перегони, але з невеликою відмінністю. Замість того, щоб просто вести машину до фінішу і перемоги, гравцеві доведеться запрограмувати штучний інтелект. Щоб почати грати, не потрібен «просунутий» рівень програмування, достатньо знати основи Java або будь-якої іншої об’єктно-орієнтованої мови.
Robot Odyssey
А тепер – трохи вінтажу. Ця гра вийшла 1984 року, але не дарма носить неофіційний титул найскладнішої комп’ютерної гри всіх часів. За словами програміста з Нью-Йорка Девіда Ауербаха, на проходження цієї гри йому знадобилося 13 років і вона багато в чому визначила його майбутнє як програміста. Його яскраві спогади про гру можна почитати англійською (в оригіналі) або в перекладі російською. Гра пропонує кілька рівнів складності, деякі пройти практично неможливо – кількість людей, які пройшли гру до кінця, у світі вимірюється десятками.
У грі потрібно вирішувати головоломки за допомогою чотирьох роботів, яких можна програмувати (мається на увазі низькорівневий код). Гра стара, тому знадобиться емулятор (під Windows, наприклад, той самий DosBox), але посилання доведеться шукати самостійно, офіційної роздачі в неї немає.
Second Life
Це 3D-гра, віртуальний світ, який створюють самі користувачі. Тут можна програмувати щосили. Є внутрішня скриптова мова програмування LSL, з її допомогою можна змушувати машини їздити, рушницю – стріляти, змінювати зовнішній вигляд будь-яких об’єктів. Грубо кажучи, вся динаміка цього світу працює на LSL-скриптах.
Bug Brain
Нехай примітивна графіка вас не лякає: у цій грі доведеться програмувати не роботів, а «справжню» нейронну мережу для комах. Усе починається з лабораторії, де гравцеві доведеться експериментувати з різними вузлами і нейронними зв’язками, потім настає черга польових випробувань, під час яких потрібно побудувати мозок сонечка так, щоб воно могло знаходити їжу і виживати.
Check iO
Гра дає змогу зрозуміти і вивчити Python і TypeScript. Перший етап навчання називається «Learning» – програмістам необхідно виконати ланцюжок завдань від легкого до складного. Другий етап – Score Games або Single Player Game. Користувач грає в ігри, в яких потрібно набрати найбільшу кількість очок. Останній етап називається Competition або Multi Player Game – на ньому гравцеві потрібно написати власну гру, яка могла б конкурувати з іграми, написаними іншими користувачами.
Цю гру робить команда з Дніпра, за сумісництвом – один із найвідоміших українських стратапів. CheckiO – це гра, у якій для проходження місії та переходу на наступний рівень потрібно написати програмний код. Розробники з усього світу змагаються, чий код виявиться більш вдалим. Усе почалося з того, що співзасновник проєкту і талановитий розробник Олександр Лябах працював у банку і йому стало нудно. Тоді він придумав гру – пазли для програмістів – для себе і друзів.
Lightbot
Це – набір головоломок для дітей. Lightbot починався як Flash-гра ще у 2008, але зараз є і версії під популярні мобільні платформи – iOS та Android. Гра навчає дітей не так самого програмування (код тут писати не потрібно), як його логіки – тут потрібно розв’язувати задачки, наприклад, «запалити» всі сині плитки, як на відео нижче):
У процесі можна вивчити основні поняття, що використовуються в програмуванні (цикли, if/then-конструкції тощо). У розробників гри є версії для маленьких дітей і дітей старшого віку.
Colobot
Назва розшифровується як «Колонізація за допомогою роботів» (Colonize with Robots). У грі потрібно готувати планети до заселення людьми, для чого використовуються роботи. Відповідно, основний засіб – створення програм мовою під назвою CBOT, за якою роботи діятимуть (схожа на C++).
Складні програми створювати не вдасться (на кожну обмеження в 20 000 символів), тож доведеться обійтися простими рішеннями. Якщо гравець застряг під час чергової місії, є підказки. У проекту є розділ на GitHub.
TIS-100
Гра від Zachtronics перенесе вас у крісло програміста 80-х років. Вона починається з того, що користувач знаходить якийсь загадковий комп’ютер під назвою TIS-100. Комп’ютер вмикається, але повідомляє про пошкоджений код, його-то гравцеві і належить «лагодити».
Є навіть мануал з TIS-100 (Tessellated Intelligence System, 100-та версія) у стилі 80-х років. Загалом гравцеві пропонується розв’язати близько 20 паззлів, і врешті-решт з’ясувати, хто і навіщо створив TIS-100. Досить докладний відгук на гру можна прочитати, наприклад, у блозі у Павла Урусова.
CodinGame
У грі програмістам-початківцям належить розв’язувати різні задачки і завдання у форматі головоломок. Гра підтримує понад 20 мов програмування і дає змогу не лише зрозуміти основи, а й зрозуміти на практиці як працює кожна з них.
Тим же, кому не вистачить 10 варіантів, можна переглянути відповідні теми на Quora або Stack Overflow.