Разное

Как программировать игры на пк – языки, движки и все, что нужно знать начинающему разработчику — руководства на Skillbox

Содержание

языки, движки и все, что нужно знать начинающему разработчику — руководства на Skillbox

Многие люди (и я в их числе) хотят научиться программированию, чтобы создавать игры. В начале это может показаться дико сложным, потому что ты еще не знаешь, как реализовать свою грандиозную идею. А первые идеи всегда грандиозные.

Поэтому ты идешь в гугл и начинаешь изучать все статьи и ролики по теме. Выведя на экран первое «Hello, world!», решаешь, что все очень просто. Но чем глубже погружаешься в это, тем сильнее хочется рвать волосы на голове.

Не переживайте! Главное — в самом начале узнать, что нас ждет, чтобы потом не свернуть на полпути, пройти все этапы и начать продавать игру!

Надеюсь, что вы уже придумали, какой будет игра, разработали концепт и сделали несколько эскизов. Теперь настало время реализовать свои задумки. Есть несколько вариантов, как это сделать:

  • Написать все с нуля — сложный способ, но лучше начать с него, чтобы разобраться с языками.
  • Использовать движки — способ полегче. Даже новичок, вооружившись мануалами из интернета, может создать интересную игру на одной из популярных платформ.
  • Заготовки — можно скачать готовую заготовку игры, в которой достаточно будет поменять текстуры, чтобы выдать ее за свою.

Все три способа подразумевают под собой какое-никакое программирование, так что знать хотя бы основы вам точно придется.

Создать игру можно на любом языке, от Python и C до Pascal и Java. От выбора зависит то, сколько времени уйдет на игру и для какой платформы будет релиз. Также язык влияет на производительность, хотя навыки программиста тоже очень важны.

На C++, например, можно писать для любой платформы, а вот PHP или JavaScript больше подойдут для браузерных игр. Если же вы собираетесь использовать один из популярных движков, то лучше изучать C#, потому что он часто используется ими для прописывания скриптов.

Главное — не недооценивать языки. В движке Unity можно писать и на JavaScript, а Minecraft был написан на Java.

Среди современных можно выделить:

 Crysis, Far Cry, Sniper II: Ghost Warrior.

Gears of War 4, Deadpool, Mortal Kombat X, Tekken7 

Outlast, Assassin’s Creed: Identity, Temple Run, Deus Ex: The Fall.

Большой популярностью пользуется Unity, потому что он позволяет создавать как 2D-, так и 3D-игры. Также можно работать с разными платформами и языками. Еще на нем создается большинство мобильных игр и инди. Он бесплатный, но если вы зарабатываете на своих играх больше100 000 долларов в год, то придется делиться ими с разработчиками Unity.

Допустим, вы выбрали язык, движок, придумали концепт игры. Что дальше?

Нужно продумать всё от и до. В зависимости от выбранного вами пути (чистый язык или использование движка) будет отличаться и то, что вас ждет на разных этапах разработки.

Если вы решили делать все своими силами, то на ваши плечи ляжет работа над физикой, механикой, графикой, искусственным интеллектом и балансом. Если выбрали движок — можно вздохнуть спокойно.

Физика — это то, как мир игры реагирует на действия игрока или объектов, находящихся внутри него. Вот какие могут быть физические действия:

  • ходьба;
  • езда;
  • прыжки;
  • удары;
  • выстрелы;
  • падение предметов и так далее.

Если вы пишете сами, то для обычного прыжка вам придется:

  • проверить, находится ли игрок на земле;
  • менять координату Y, чтобы игрок поднимался вверх;
  • закончить подъем через какое-то время;
  • начать и продолжать падение до тех пор, пока под ногами игрока не окажется земля.

Не говоря уже о том, что нужно работать над анимацией всего этого.

function jump() {
If(gamer.jumpTimer >= 1) {
   gamer.y++
   gamer.jumpTimer --;
   } else {
      If(gamer.y >= ground.y) {
         gamer.y--;
      }
   }

}

В движках же уже прописана физика, и вам нужно только подогнать ее под свои нужды. Для примера, если вы поместите в рабочую область Unity объект и укажете, что для него нужно использовать физику, то при запуске игры объект упадет. И для этого не придется писать код вообще — все уже предусмотрено.

Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Пока игру можно отнести к платформерам.

А вот если вы добавите механику получения очков опыта, повышения уровней, прокачки навыков — игра уже станет походить на RPG. Механика — такая же важная составляющая игры, как и сюжет, графика, баланс и так далее.

Давайте возьмем еще один пример: вы написали сценарий к игре, в которой нужно сбежать из тюрьмы. Даже если игра будет самой линейной в мире, игровая механика может все изменить:

  • если добавить стрельбу, то это будет экшн;
  • если игрок будет безоружен — стелс;
  • если еще и замки нужно будет взламывать, то это уже головоломка или пазл.

Будучи программистом, придется много времени уделять механике.

Раньше в играх графика рисовалась с помощью программного кода, потом придумали текстуры и спрайты, для 3D-игр используются модели. Подготовив все текстуры и модели, нужно добавить их в игру.

В движке достаточно просто загрузить нужные файлы и прикрепить их к нужным моделям. Иначе нужно будет прописывать все вручную, в том числе и анимацию.

Пример анимации двумерного персонажа

Для анимации двумерных объектов создается текстура по типу той, что на изображении выше. Она разбивается на равные части, которые сменяют друг друга. То есть игрок сначала видит только первый кадр, который потом сменяется на второй, а затем на третий — это создает иллюзию движения.

Анимация в действии

Если же использовать трехмерную модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.

Источник

На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.

Работать с такой анимацией можно, прописывая точки координат или захватывая движения реального актера. Первый способ сложный, но дешевый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240). Второй проще, потому что достаточно одеть актеров в специальные костюмы с маячками, отснять это и перенести в игру. Но тут, конечно, придется оплатить костюмы, павильон, работу операторов, постановщиков и актеров.

Источник

Чтобы играть было интересно, нужен баланс. Это значит, что у каждого противника должны быть сильные и слабые стороны. Так геймплей не превратится в убийство младенцев или 10-часовые перестрелки с боссом.

Например, если в шутере есть оружие с большим уроном, у него должна быть долгая перезарядка. Если урон маленький, перезарядка может быть быстрой. У бронированных врагов малая подвижность, а шустрые противники умирают с нескольких ударов или выстрелов.

Если геймплей предусматривает взаимодействие с NPC, то им нужно прописать модели поведения: реакцию на действия игрока, агрессивность, возможность вести диалоги или торговать.

Работа с ИИ — одна из самых сложных, потому что нужно учитывать множество ситуаций, для которых нужно прописать реакцию. Например, когда вы пытаетесь пройти в дверь, ваш компаньон обязательно должен преградить вам путь, чтобы жизнь малиной не казалась.

Разобравшись с тем, как все будет устроено в игре, можно приступать к непосредственной разработке. Но для того, чтобы проект был коммерчески успешен, нужно знать популярные платформы. Всего можно выделить четыре:

  1. Персональные компьютеры.
  2. Приставки.
  3. Мобильные устройства.
  4. Браузер.

У каждой из этих платформ своя аудитория с вполне конкретными предпочтениями. На мобильных устройствах предпочитают головоломки (2048, 94%, Cut the Rope), аркады (Subway Surf, Temple Run, Angry Birds) и казуалы (Talking Cat Tom, Kitty Kate Baby Care, Hair Stylist Fashion Salon).

На компьютерах можно играть в MMORPG (Lineage II, World of Warcraft, Skyrim) или шутеры (Battlefield, Call of Duty, Counter-Strike). Приставки подходят для гонок (Need for Speed, Blur, Burnout Paradise), приключенческих игр (Assassin’s Creed, Portal, The Walking Dead) и так далее. В браузерах собирают пазлы и строят фермы.

Конечно, можно сделать и головоломку для PS4, и гонку для браузера — никто никого не ограничивает.

Заключение

Будьте готовы к тому, что ваша первая игра не станет шедевром. Скорее всего, получится что-то вроде этого:

Вам нужен браузер с поддержкой HTML5 и JavaScript!

Управлять игрой можно мышью, клавиатурой или сенсорным экраном телефона.

Мышью:

Зажмите экран и водите курсором:

- Левее корабля — влево

- Правее корабля — вправо

- Вверх — стрелять

На мобильных устройствах достаточно нажать влево, вверх или вправо.

Клавиатура:

- Стрелка влево — влево

- Стрелка вправо — вправо

- Ctrl или Cmd — Стрелять (edited)

Но не расстраивайтесь, потому что такие проекты отлично подходят для обучения. Попробуйте поиграть, и вы увидите, что в игре есть простой, но действенный искусственный интеллект, баланс, графика, которая взорвала бы мозг игроков в семидесятых, очевидные механики и простой геймплей.

Подтяните свои навыки в программировании, чтобы научиться создавать игры, изучите современный язык, который часто используется разработчиками, и выпустите свой первый проект.

Курс «С# с нуля»

Практический 4-х месячный курс для тех, кто хочет овладеть языком программирования с индивидуальным наставником и положить первое десктопное приложение к себе в портфолио.

  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

skillbox.ru

Как начать писать игры / Habr

Оригинал: Starting out on Game Programming

Путь в индустрию игровых разработок не близок. Эта статья призвана помочь понять с чего лучше начать это путешествие.

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

Руководства хороши для обучения чему-то шаг за шагом, например тому, как перемещать изображение точки по экрану. Для того чтобы собрать игру воедино, вам нужны навыки решения возникающих проблем, приобретаемые лишь с опытом. Это не то, чему можно научиться из руководств. Лучший способ научиться делать игры — это начать их делать.




Выбор проекта


Итак, с чем же начать? Проще ответить с чего начинать не стоит, а именно с больших проектов, типа полноценной 3D FPS, MMO или даже длинного платформера 16-битной эпохи. Самая распространенная ошибка начинающих разработчиков это начать с большого проекта основанного на Крутой Идее или взять проект, который кажется простым, и закончить с полузаконченной кучей спагетти-кода. Поначалу следует создавать небольшие проекты.

В ранних проектах ваша основная цель учеба, а не реализация Крутых Идей. Поддерживая проект небольшим, вы можете сфокусироваться на изучении новых техник, а не тратить кучу времени на управление кодом и рефакторинг. Несмотря на то, что ваша Крутая Идея может быть офигительно офигенной, реальность индустрии разработки такова, что чем больше проект, тем больше вероятность совершить ошибку в архитектуре. И чем больше проект, тем дороже обходится эта ошибка. Помните историю Дедала и его сына Икара? Дедал создал крылья из воска и перьев для своего сына. Он предупредил Икара не подлетать на них слишком близко к солнцу. Но Икар проигнорировал предупреждение и крылья расплавились, и тогда-то гравитация и настигла его.

Поэтому помните: не подлетайте слишком близко к солнцу на ваших новых программистких крыльях.

Принимая во внимание все выше написанное, вот пара советов с чего начать.



Графика и обработка событий


Если вы никогда не программировали ничего связанного с графикой или GUI, вам следует начать с чего то маленького, чтобы «обмочить ноги». Моим первым проектом были крестики-нолики, так что даже у меня было скромное начало. Пара идей для первого проекта:
  • Симулятор однорукого бандита

  • Black Jack

  • Крестики-нолики

  • Четыре в ряд

Цель вашего первого проекта перейти от консольной разработки к разработки событийных графических приложений. Он так же научит вас фундаментальным основам игровой логики и архитектуры. Я рекомендую что-нибудь пошаговое, потому что игры с движением это совсем другой зверь.

Старайтесь сохранять проект простым, чтобы вы могли его завершить и не потерять интерес на полпути, так никогда и не закончив игру. Важно довести игру до конца, потому что вы не учитесь процессу разработки, если у вас несколько недоделанных игр на жестком диске.

Есть один момент, на который я хочу указать тем, кто будет делать крестики-нолики или четыре в ряд. Не стоит сейчас сильно беспокоиться об искусственном интеллекте. Сделать игру только для двух игроков или для игры с компьютером, который делает случайные ходы вполне достаточно для начала.

Если до этого вы имели дело с графикой и обработкой событий и чувствуете себя комфортно в этой области, можете приступить прямиком к следующему шагу.



Синхронизация, движение, столкновения, анимация

Теперь, когда вы наигрались с графикой, пора заняться чем-нибудь в реальном времени. Вот пару предложений:

Здесь вы познакомитесь с движением, временем, анимацией, обнаружением столкновений, игровым циклом, вычислениями очков, побед и поражений и другими важными базовыми концепциями используемыми в каждой игре.

Duck Hunt и Pong — хорошие проекты для тех, кто уже имеет опыт в программировании графики и событий. В них есть простое обнаружение столкновений и все важные основы игр в реальном времени.

Space Invaders и Galaga — хороший выбор для второго/третьего проекта. В них есть уровни, поэтому вам нужно будет узнать как передвигаться от уровня к уровню, при помощи конечного автомата. Вы можете прочитать про конечные автоматы здесь(англ.). Игры в стиле «перестреляй их всех» так же требуют создать простые шаблоны поведения для врагов, что является шагом в сторону искусственного интеллекта.

Тетрис хорош для второго/третьего проекта. В нем совсем немного логики нужной для создания игры-головоломки. Это игра приличного размера, так что вам придется научиться разделять вашу программу на несколько исходных файлов, о чем вы можете больше прочитать здесь(англ.). Не недооценивайте Тетрис. Я недооценил и только посмотрите на это жуткое месиво в коде Lazy Blocks.



Переинженеринг

Типичная ошибка новичка это попытка сделать Самую Лучшую Игру Всех Времен, заканчивающаяся переинженерингом. То есть когда он пытается написать самую лучшую игру/движок и это все заканчивается тем, что используется только маленькая часть того что было понаписано.

Когда я был начинающим я переинженерил AI для крестиков-ноликов. Я хотел сделать игру с непобедимым AI. Мне удалось достигнуть этого, запрограммировав компьютер на знание всех возможных ловушек. Звучит круто не правда ли? Это заняло почти 40 000 тысяч строк в основном скопированного кода и месяц моего свободного времени.
Позже я выучил структуры данных и узнал про алгоритм Минимакс, который при меньшем размере кода не только делал нужное, но еще и делал это лучше.

Так что учитесь на моих ошибках и не будьте излишне амбициозны. Концентрируйтесь на обучении тому как делать игры, а не просто делайте их.



Планирование, анализ столкновений, физика, уровни, искусственный интеллект

Теперь, когда у вас за плечами две или три маленьких игры, пришло время сделать первый крупный проект.

До сих пор, вы, вероятно, программировали как придется. Это закончится на этом этапе. В реальном мире большинство процессов разработки завершается до того, как будет написана первая строчка кода. Ничто не может быть хуже, чем осознание того, что для того чтобы добавить в вашу игру то, что вы хотите, вам придется выкинуть весь написанный код, потому что вы не спланировали все заранее. Теперь, когда у вас есть опыт создания игр, вы знаете из чего состоит процесс разработки. Теперь вы можете планировать игры, перед тем как начинать их делать.

Теперь про вашу следующую игру. Break Out и Puzzle Bobble хороши для третьего проекта, потому что они включают в себя продвинутое распознавание столкновений и физику. Физика важна, поскольку дает игре реалистичное ощущение. Даже в Super Mario Brothers есть ощущение гравитации и инерции. Бильярд отличный проект для тех, кто хочет напрячь извилины физикой.

В играх типа бильярда вам нужно не только обнаруживать столкновения, но и обрабатывать их в определенном порядке. Обработка столкновений разительно отличается от их обнаружения. Хотя создание бильярда или 2D платформера может показаться простым делом, анализ столкновений в правильном порядке — запутанный процесс, и не должен быть недооценен.

Break out и Puzzle Bobble так же включают дизайн уровней и требуют загрузки и освобождения их ресурсов. Хорошим опытом будет создание редактора уровней для игры. Редакторы позволяют вам легко создавать уровни и не вынуждают впаивать их в приложение. У меня есть статья(англ.) про создание редактора уровней.

Так же вы возможно хотите попрактиковаться в написании искусственного интеллекта (AI). Один из вариантов — вернуться к крестикам-ноликам или четырем в ряд и написать непобедимый AI. Теперь вы уже должны знать структуры данных и сможете использовать знания о деревьях для использования алгоритма Минимакс. С этим алгоритмом вы можете просчитать все возможные исходы крестиков-ноликов и создать непобедимый AI. Забавно расстраивать им своих друзей. Так же вы возможно захотите сделать разные уровни сложности. Игра не приносит радости, если в нее нельзя выиграть.

Pac Man — отличный способ попрактиковаться в написании AI. Нужно будет знать структуры деревьев/графов и алгоритмы поиска, типа A*, для того чтобы призраки могли пройти через лабиринт. Так же нужно будет сделать чтобы призраки работали в команде. Все это пригодится когда вы будете делать игры со сложным AI, типа стратегий в реальном времени. Об основах AI можно прочитать тут(англ.).



Платформеры, Action/Adventure, RPG, RTS, движки

Теперь, когда вы получили опыт создания хорошо спланированной игры, вы готовы к созданию Action/Adventure/Платформера. Это будет кульминация графики, движения, анимации, анализа/обнаружения столкновений, физики, AI, программной архитектуры и всего остального, что вы изучите к этому моменту. Тем кто более амбициозен, можно предложить сделать стратегию в реальном времени(RTS) или ролевую игру(RPG). Будьте осторожны, потому что RPG и RTS действительно огромные проекты.

RPG имеют сложную архитектуру и требуют много планирования. Вам нужно будет спланировать каждое оружие, броню, аксессуар, атаку, предмет, заклинание, призыв, врага, карту, босса, подземелье и т.д. до мельчайших подробностей. Это все должно работать слаженно, и, мягко говоря, это не самая простая задача. Так что если ваш дизайн-проект выглядит как сценарий или комикс, вам потребуется сделать еще много работы.

RTS также сложны архитектурно, а так же требуют много AI. Вам нужно будет делать поиск пути для юнитов, получение ими команд, разное поведение в зависимости от полученных команд. Если вы никогда до этого не делали AI, будет лучше начать с клона Pac Man'а для начала.

Вероятно вам впервые придется делать движок для вашей игры. Чего следует избегать, так это создания универсального движка. Создавая движок не пытайтесь сделать его подходящем для любой игры. Если ваша игра требует x, y и z, делайте движок который умеет x, y и z. Движки создают исходя из того что нужно для конкретной игры, а не из того что любой игре может потенциально понадобится.

Другая распространенная среди новичков ошибка — это попытка создать движок в качестве первого проекта. И обычно это универсальный движок. Вам не нужен движок с фантастической графикой для создания Pong'а или Space Invaders. Программируя, легко закопаться в деталях. Концентрируйтесь на общей картине и завершайте свои игры.



Сеть

Кажется все хотят сделать следующую большую MMO. Создание онлайн игр не то, во что можно быстро вникнуть. Я понял это когда попытался сделать онлайн покер сразу после завершения крестиков-ноликов.

Добавление сети значительно усложняет игру. Когда один игрок что-то делает, вы должны послать информацию об этом всем остальным. Это все равно что если бы ваша правая рука не знала о том, что делает левая. Так же вам придется выбирать между загрузкой сервера и тем что он может контролировать. Чем больше делает серверная часть, тем меньше возможностей жульничать у клиента, но это также означает большую нагрузку на сервер. Для action и других игр с высоким темпом геймплея, вам придется беспокоится о сетевой задержке и потере пакетов.

Вам следует полностью закончить хотя бы одну хорошо спланированную игру, перед тем как пробовать делать сетевую игру. В качестве первого сетевого проекта, попробуйте сделать что-нибудь, что не критично к скорости. Например простой чат-сервер/клиент будет хорошей практикой. Так же можно вернуться к крестикам-ноликам/четырем в ряд и добавить в них возможность играть в по сети. Как вариант попробуйте сделать сетевую карточную или настольную игру.

После того как ваш первый сетевой проект готов, попробуйте сделать что-нибудь в реальном времени. В вашем первом сетевом приложении вы, вероятно, использовали TCP, чтобы быть уверенным в том, что данные которые вы принимаете доходят в том порядке, в котором вы их посылали. Для игр в которых происходит много действий, задержки создаваемые TCP вероятно будут слишком велики, так что вам придется использовать UDP. UDP не гарантирует порядок доставки как и саму доставку вообще. Так как UDP не делает дополнительных проверок целостности он быстрее. Вам придется пожертвовать легкостью использования TCP, в обмен на скорость UDP и необходимость самостоятельной проверки целостности данных при создании игры.



3D игры

Перед тем как делать 3D игры, вам следует сделать хотя бы одну хорошо спланированную игру и иметь хорошее понимание трехмерной векторной математики, линейной и Ньютоновской физики. Тут вам придется иметь дело с вершинами, текстурами, освещением, тенями, опредением взаимодействия с объектами в трехмерном пространстве, загрузку моделей и прочими сложно звучащими вещами.

Хорошая новость в том, что если вы уже сделали 4 или 5 игр, вы уже знаете основы необходимые для создания игры. Вы уже хорошо знакомы с процессом разработки и знаете свои возможности как программиста. Неважно трехмерный шутер или двухмерный, он по прежнему шутер. 2D RPG или 3D RPG по прежнему RPG.

Не считайте это оправданием пропустить 2D и сразу перейти к 3D. Прежде чем научиться бегать, нужно научиться ходить.



Быстрый способ

Говорите, что вы учитесь быстрее если сразу возьметесь за дело и будете просто писать вашу 3D MMOFPSRTSRPG и научитесь тому, что нужно по мере необходимости? Чтож, вот пару советов, которые вам помогут:
  1. Идите на местный рынок
  2. Купите целую рыбину. Рекомендую взять лосося или треску, хотя и сом тоже подойдет. Форель, кстати, тоже довольно эффективна
  3. Идите домой и включите компьютер
  4. Запустите вашу любимую IDE
  5. Теперь возьмите купленную рыбу и влупите себе по голове
  6. Повторите пункт 5, пока мысли о быстром способе не покинут вас

Вы не научитесь алгебре решая вычислительные задачи. Вы учите основы и опираетесь на них. Тоже самое и с программированием. Если вы ищите быстрый способ я тут как тут, чтобы сказать вам что его нет. Не торопите себя. Еще раз: учите основы и опирайтесь на них. Иначе вас ждет фиаско.


Путешествие начинается

Теперь, чтобы у вас было общее понимание того что же все-таки делать, пора начать заниматься игроделом. Я не ожидаю что вы будете следовать этому руководству слово в слово. Все учатся по разному и с разной скоростью. Если вы что-то и должны были вынести из этой статьи, так это три вещи:
  1. Выберите свой темп
  2. Доделывайте игры до конца
  3. Концентрируйтесь на обучение, а не просто на создании

Удачи вам на пути разработки игр!

habr.com

Языки программирования для создания игр

Языки программирования для создания игр являются одними из самых развитых и востребованных в современном обществе. Большая популярность игр на ПК, на андроид и другие системы делают их очень ценным товаром, который при грамотной рекламной компании и хорошей реализации в целом способен принести немалые деньги и возможности для дальнейшего развития.

Компьютерные игры появились почти сразу же с самим началом развития ИТ отрасли. Извечной мечтой любителей ЭВМ было создание программ, способных играть в шахматы и при более менее нормальном развитии техники эту задачу быстро удалось решить. Особый расцвет игровой индустрии пришелся на начало 2000-х годов, когда у многих людей начали появляться мощные и относительно недорогие персональные комптометры. Сейчас игры все так же популярны и у детей и у многих взрослых людей.

В последние годы наблюдается переход пользователей в сторону смартфонов и других умных гаджетов, но и игровая отрасль программирования никуда не делась – она последовала сюда же и предлагает многообразные и увлекательные развлечения. Если человек также хочет заняться этой темой, то ему нужно обязательно разобраться, какой язык программирования выбрать для написания игр. Попытаемся это сделать.

Самые ходовые языки в GameDev

Существует очень большое количество языков программирования и многие из них можно приспособить под задачу создания игр. Но наибольшее распространение и популярность в этом направлении получили следующие языки:

  • С++. Очень многообразный и функциональный язык, изучение которого требует немалых усилий, усидчивости и реальной заинтересованности. Это статически типизированный компилируемый язык программирования, поддерживающий основные парадигмы: объектно-ориентированное, обобщенное, процедурное программирование. Важным плюсом С++ выступает наличие у него очень объемной стандартной библиотеки, включающей массу полезных функций: ввод/вывод, многопоточность, удобные алгоритмы и контейнеры. Язык способен функционировать на самых разных платформах, он отлично сочетается с другими средствами разработки, что делает его универсальным и беспроигрышным вариантом для создания игр;
  • C#. Си Шарп также отлично подходит для разработки игр. Как игровой язык он имеет много важных характеристик и преимуществ. Это полностью объектно-ориентированный язык, разработанный в недрах компании Microsoft. Синтаксис Си Шарп очень близок к синтаксису всего семейства языков С, а также Java. В основном на нем разрабатываются игры на ПК, а если более конкретно – то на платформу .NET Framework. Язык поддерживает полиморфизм, перегрузку операторов и имеет статическую типизацию. Возможностей C# вполне достаточно, чтобы разработать полноценную игру: ее логику, архитектуру и другие важные элементы. Языки си для программирования игр используются уже давно и в целом очень успешно;
  • Что касается разработки игр под мобильные, в особенности на операционную системы Android, то здесь придется изучить такой язык, как Java. Именно он способен справиться с созданием логики игр, ее механики и других важных нюансов. Java помогает работать с многими потоками, что очень важно для игр и для самого Андроид. Также это язык дает возможность легко взаимодействовать с памятью устройств, что в играх тоже немаловажно.

Почему именно эти языки программирования нужны для создания игр? Потому, что они способны дать максимально эффективный набор инструментов для разработки игр и при этом реализация идей программиста здесь будет наиболее полной. Можно использовать и другие языки, но они чаще работают в других областях или только на некоторых участках в деле создания игры. Также указанные языки хорошо взаимодействуют с другими программами, которые обязательно придется использовать для создания игры. Это и графическое оформление, и использование движка и аудио сопровождение, и многие другие нюансы.

Игры на С++, Си Шарп и Java для мобильных имеют минимальный объем, наибольшее быстродействие, дают высокую производительность игры на самых разных платформах. Также благодаря именно этим языкам удается добиться грамотного баланса между производительностью игры и ее требовательностью к системе. Все эти факторы и влияют на то, что выбираются именно эти языки программирования для создания игр.

Писать все с нуля или использовать игровой движок?

Очень многих разработчиков игр волнует вопрос – стоит ли полностью писать весь код будущей игры во всех его деталях либо же правильнее сэкономить время и усилия и воспользоваться уже готовыми доступными движками? Однозначного ответа здесь быть не может, но использование готовых и показавших себя на деле движков несет немало заметных преимуществ. В основном, какие бы не брались языки программирования для разработки игр, они используются в связке с такими готовыми движками, что и дает в итоге максимально пригодный результат.

Игровым движком называется основной программный участок будущей игры, в котором уже заложены особенности анимации, звуков, физический движок (особенности игровой механики, движение персонажей и т.п.), искусственный интеллект, особенности управления памятью и многопоточность. Благодаря использованию игрового движка можно существенно сэкономить время и усилия.

Вот только некоторые популярные игровые движки:

  • Отличный инструмент для создания как 3D, так и 2D развлекательных приложений, способный работать на Linux, Windows и OS X. Игры созданные на Unity могут одинаково успешно работать на самых разных платформах: ПК, игровых приставках, мольных устройствах на Android, iOS или Windows Phone. Игры на этом движке поддерживают популярные технологии DirectX и OpenGL, что только увеличивает их функционал и качество. На Unity созданы Wasteland 2, Prime World, Shadowgun, Gone Home, некоторые части Need for Speed и другие популярные игры;
  • Unreal Engine. Очень популярный игровой движок, на котором создается львиная доля всех современных игр. Созданный в уже далеком 1998 год он все еще является одним из самых лучших и функциональных движков, чем привлекает внимание многих компаний разработчиков игр. Именно на Unreal Engine разных версий создавались Blade & Soul, Mass Effect 3, Medal of Honor, BioShock 2, Life is Strange и огромное множество других культовых игр;
  • Frostbite Engine. Еще один отличный движок от компании EA Digital Illusions CE, который при относительно небольшой требовательности к игровым устройствам предоставляет очень качественную и графику, поддерживает технологию DirectX, способен дать возможность разработчику создавать в игре очень красивые и интересные спецэффекты (например, разрушение объектов игровой среды, более реалистичный вид рельефа и многое другое).

Обычно, рассматривая вопрос о том, на каком языке программирования пишут игры, нужно смотреть и на связку выбранного языка с определенным движком и другими средствами. Только так можно создавать по-настоящему качественный продукт. Конечно, если задача начинающего программиста создать хоть какое-то подобие игры, чтобы проверить свои силы, то хватит только языка программирования и элементарного владения графическим редактором, но более серьезные вещи требуют совершенно другого подхода.

bunkerbook.ru

Как начать разрабатывать игры даже если до этого вы были бухгалтером / Habr

До того как я стал разработчиком игр, я (да и все в моем окружении) считал себя дизайнером сайтов.
Не плохим, кстати, но дизайнером сайтов. Профессия, которая почти никак не используется в разработке игр.

Есть такой стереотип — когда кто-то говорит, что он в разрабытавает игры без команды, все сразу представляют его программистом. На самом деле, стереотип не так далек от правды: скорее всего, разработчик, описанный выше, действительно умеет программировать, но программистом он может себя не считать.

После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.

Шаг 0. Станьте разработчиком игр

Именно первый, а точнее даже “нулевой”, шаг сделает Вас сразу разработчиками игр. Это не проекты, которые, может, уже есть у Вас за плечами, не навыки, котороми Вы, может, владеете, а простой, но очень важный шаг: скажите себе, а заодно и всему миру, что вы разработчик игр. Как только у вас уляжется в голове ответ на вопрос, чем вы занимаетесь — разработкой игр, — вы сразу станете для себя и окружающих разработчиком игр.
Как это сказать себе и другим?

Уверен, что у вас уже есть какая-то профессия. Также я уверен, что Вы каждый день посещаете сайты/форумы, связанные с вашей профессией, читаете блоги и, может, даже книги.
Первое, что надо сделать, чтобы стать разработчиком игр:
  • Начать посещать сайты, связанные с тематикой игр и разработкой игр.
  • Подписаться на блоги разработчиков, творчество которых вам нравится.
  • Купить пару книг в “киндл” на амазоне, например, о игровом дизайне.

Все, вы разработчик игр. Действительно, элементарный шаг вам может дать доступ к столь “закрытой” профессии как разработчик игр. Правда, без опыта и регалий, но никто (ни вы, ни окружающие) уже не оспорит, что вы разработчик игр.

Шаг 1. Найдите себе применение как разработчику игр

Теперь, когда Вы смело можете считать себя разработчиком игр, надо найти себе применение. Как писатели могут пребывавать в двух состояниях: ищут идею книги, пишут книгу, — так и разработчики: ищут проект (идею), делают проект. Бывает, конечно, еще и поддерживают проект, но лично я его всегда объединяю с процессом поиска нового.

Слова “найти проект” для каждого разработчика игр значат разное, вот список популярных способов поиска проектов:


Выйти из состояния “поиска проекта” нужно как можно быстрее, и желательно выйти в состояние “делаю проект” и делать проект с шансами на успех: релиз и популярность.

Этот этап — первая проверка для начинающего разработчика. Сделать выбор при полном отстутствии опыта очень сложно, но, к счастью, любой выбор принесет нам опыт.

Вот некоторые советы для прохождения этого шага:

  1. Начните что-то свое. Свое от идеи до реализации в одиночку. Даже если у вас есть навыки программирования или вы сносно рисуете, — не вступайте в существующие проекты. Сделайте что-то небольшое, не требующее серьезных навыков.
    Например, я сделал маме подарок на НГ — 3д-игру по психологической методике:

    У меня не было опыта разработки на C# и программировать я особо не умел (немного знал python) и никогда до этого не моделил.
  2. Скажите себе кодовую фразу: “Если кто-то смог, я тоже смогу”. Как бы вы ни были готовы к игровому проекту, всегда будет задача, с которой вы никогда не сталкивались. Например, даже у опытных программистов программного обеспечения, часто нет опыта создания шейдеров. Скажите себе кодовую фразу и учитесь по ходу.
  3. Найдите себе единомышлеников. Мне в моем развитии очень сильно помогли: скайп-чатик разработчиков социальных игр (теперь уже создатели: Голос Припяти 3D, Tanks Heroes, Contract Wars, Батла и многие другие), а также одногруппники из Scream School по курсу гейм-дизайна. Их успех будет вас подталкивать, а обмен опытом ускорит процесс развития.
  4. Выберите себе платформу для разработки. Определите платформу, которая вас устраивает. Это может быть, например, Unity — за ее возможности, огромное комьюнити и сравнительно низкий порог входа. Вне зависимости от платформы, станьте ее евангелистом. Это позволит вам наладить коммуникацию с другими разработчиками и быстрее развиваться.
  5. Не давайте эмоциям взять вверх. Ошибки и неудачи станут вашими спутниками на длительный период, а если вы будете делиться процессом развития с русскоговорящими разработчиками, будьте готовы к тоннам говна большому количеству негативных отзывов. Не позволяйте эмоциям брать вверх: слушайте любые отзывы и предложения, но относитесь ко всему с необходимой критикой. Сохраняйте критичность ума.

Шаг 2. Помогите себе закончить хотя бы ОДИН проект!

Если вы закончили свой первый проект как разработчик игр, скорее всего, вы что-то делали не так. Даже эпилептоид не сможет закончить свой первый проект, а к первому релизу у него в архиве будет пара-тройка (минимум) замороженных проектов. Это нормально. Мы учимся на своих ошибках, а не совершают их только идиоты или те, кто ничего не делают.
Но в какой-то момент нужно будет собрать весь свой опыт, полученный из проб и ошибок, и, наконец, сделать свой первый релиз.
У каждого разработчика своя история первого релиза, но у меня есть пару советов, которые обязательно вам помогут:
  1. Вгоните себя в экстремальные условия, а выходом из них сделайте релиз. Поставьте себе реальный, но очень сжатый срок на релиз, например, 48 часов или неделю, но спать будете по 4 часа в день. Это даст сильный толчок, заставит оптимально использовать время и сфокусироваться на результате.
    • Сжатые сроки
      Сжимая сроки, не оставляйте себе время на риск. Сжимайте до последнего, пример с 48 часами — хороший.
    • Отсутствие сна
      Полное или почти полное отсутствие сна хороший мотиватор, но не доходите до крайностей. Практика показывает, что даже молодому организму надо давать отдых.
    • Менеджмент времени
      Не стоит выделять много времени на тайм-менеджмент, но не забывайте ставить себе вехи (milestone). Например, скажите себе, что через 5 часов вам надо сделать играбельный прототип.
      Например, в своем первом 48 часовом марафоне (на нем я только рисовал), я за первую треть времени нашел стиль игры, нарисовал основной, игровой экран и все спрайты врагов. И за оставшееся время сделал 170+ спрайтов анимации и дорисовал интерфейс.

    • Конкурсы, особенно мероприятия, типа, HackDays или Ludum Dare, где нет времени на раздумья и надо сразу бросаться в работу, — отличное подспорье для пунктов выше.

  2. Поставьте себе рамки. Для первого релиза, особено в сжатые сроки, критически необходимо знать рамки проекта. Выпишите себе минимум, что нужен для релиза, и не выходите из него. По необходимости:
    • Урежьте список возможностей
      Было бы здорово сделать возможность летать на самолетах, но если вы делаете шутер про пехоту, сфокусируйтесь на стрельбе.
    • Сократите время игры
      Вероятно, вы рассчитывали сделать синглплеер на 5 часов игры, но вы останетесь победителем с демкой на 20 минут.
    • Уберите часть контента
      Конечно, дополнительная карта не будет лишней для вашего тактического шутера, но релиз останется релизом даже с одной картой.

  3. Ищите простые пути. Напоминайте себе, что вам необходим релиз, а не шедевр. У вас остается право на ошибку, но вы потеряли право на заморозку проекта.
    • Используйте костыли и хардкод
      Не стоит фокусироваться на универсальности или производительности кода. Оптимизация тоже подождет. Просто идите к результату.
    • Копируйте, а не придумывайте
      Если с ответом на любой вставший перед вами вопрос возникают трудности, копируйте решение коллег.
    • Используйте опыт на 150%
      Учет сделаных ошибок — это, несомненно, хорошо, но пока вы их совершали, вы собрали багаж наработок. Постарайтесь использовать из него что-то.
    • Подключите все ресурсы
      Если у вас есть друзья, готовые помочь, не отказывайтесь, а если у вас есть денежный ресурс — вкладывайте (покупайте готовые решения, контент и рабочие руки). Ваши вложения окупятся в дальнейшем.


Шаг 3. Сделать полноценный релиз

Когда прошлые шаги позади: релиз за плечами и опыт какой-то уже есть, — хочется, чтобы ваше хобби (не приносящий доход род занятий) переросло в настоящую профессию и источник хорошего, постоянного дохода. Каждый разработчик понимает, что для этого ему нужен полноценный релиз, не тот (те), что мы получили из второго шага, а полноценный релиз с шансом на успех. Увы, но релиз из прошлого шага нужен только для ощушения победы, а не успеха.

Сделать полноценный релиз — это уже задача с миллионом способов решения, и вы обязательно будете иметь решение к тому моменту, когда у вас появится возможность для его создания. Но вот некоторые советы для настоящих indie (парней, что живут хардкором и разрабатывают свои игры без инвестиций и денег издателя):

  1. Делайте проект каждый день. У всех начинающих инди есть занятия, с которыми приходится совмещать разработку. Но не забывайте добавлять хотя бы одну строчку кода или новый спрайт в игру каждый божий день. Это очень важно, это пункт номер 1.
  2. Ставьте себе небольшие задачи и старайтесь выполнять их каждый день. Долго открытая задача, например: “разработать систему инвентаря”, может быстро превратиться в “висяк” с очень низким приоритетом. Поставьте задачу “Интерфейс основного окна инвентаря” и закройте в этот же день, а затем радуйтесь прогрессу.
  3. Два шага вперед, один в сторону. Какой бы разнообразной вы ни планировали игру, не стоит делать сразу 50 типов врагов и тысячи уровней. Сфокусируйтесь на реализации возможностей игрока, а не способах их проявлений. Делаете слешэр? — Реализуйте возможность рубить врага, а врагов клонируйте.
  4. Прототипируйте. Когда вы сфокусированы на настоящем релизе, необходимо отдавать себе отчет, что игра должна быть хорошей. Проверить это можно, прототипируя.
  5. Вы делаете игру. Не стоит делать из своей игры движок или фреймворк. Нет, я не про чистоту кода или возможность его переиспользовать. Работайте хорошо, и результат будет хороший. Не стоит реализовывать возможности до того, как поймете, что они действительно необходимы вашей игре. Например, если вы не уверены, что будет возможность менять цвет одежды героя, не стоит рисовать маску для смены цвета в шейдере. Убедитесь, что ваш дизайн подразумевает наличие предметов перед тем, как создать класс Item.
  6. И главное… Не бойтесь вернуться на шаг 2. Возможно, еще не время для настоящего релиза.

Удачных вам релизов и быстрого развития.

habr.com

программы, особенности создания и рекомендации

Наверняка каждый геймер хотя бы раз в жизни задумывался о создании собственного игрового проекта. Мало того, многие даже начинают совершать различные телодвижения в этой области. Но как правило, спустя неделю-две юный геймдев, столкнувшись с определенными проблемами, наподобие элементарного отсутствия знаний, забывает о своей мечте и садится за прохождение очередного шутера. В чем же дело? Неужели программирование игр - это настолько трудоемкий и непостижимый для обычных смертных процесс? Ответ на этот вопрос вы сможете найти в данной статье.

Разработка игр

С уверенностью можно сказать, что программирование игр — одна из сложнейших задач в сфере ИТ. Дело в том, что для создания хорошего проекта необходимо обладать довольно обширным объемом знаний. К примеру, нужно знать несколько языков программирования, уметь писать простой и понятный код, в котором нет ничего лишнего, и т.д. Именно по этой причине разработкой игр занимаются крупные геймдев-команды, которые состоят из сотни специалистов в различных областях.

Конечно, имеются и исключения из правила. К примеру, небезызвестный программист Маркус "Нотч" Перссон в одиночку создал "Майнкрафт" — игру, которая является одним из самых прибыльных проектов за последние 10 лет. Но для того, чтобы разработать что-то подобное, нужно быть настоящим асом своего дела и иметь за плечами огромный опыт.

Создание игр. Программирование

Начать создавать шедевры компьютерного мира теоретически может каждый. Но как можно понять, программирование игр - это очень сложно. Однако стать геймдевом может практически любой. Самое главное условие — много свободного времени и просто титаническая усидчивость. Допустим, у нас это имеется. Что же делать дальше?

В первую очередь нужно освоить хотя бы несколько самых популярных языков программирования. Без этого создать качественную игру вряд ли получится. Почему же несколько языков? Неужели одного недостаточно? Дело в том, что каждый programming language имеет свою четкую область применения. Ниже мы рассмотрим самые востребованные языки и их применение при программировании игр.

Языки

Пожалуй, наиболее универсальным языком в плане программирования игр является C++. Большинство современных игр и движков для них пишутся именно на нем. В чем же особенность данного языка? Пожалуй, одно из главных достоинств C++ заключается в огромном количестве всеобъемлющих библиотек. Благодаря этому посредством данного языка можно написать все что угодно: от маленькой инди игрушки до крупного проекта ААА класса.

Но к сожалению, C++ очень сложен в освоении. Новичок вряд ли сможет разобраться в этих дебрях. Именно по этой причине лучше начать свое знакомство с миром программирования с чего-нибудь попроще.

Python — это, пожалуй, лучший выбор для начинающего геймдева. Во-первых, синтаксис языка довольно прост. Для того чтобы начать программировать на Пайтоне, достаточно прочитать туториал и обладать нативным уровнем английского. Во-вторых, возможности данного языка программирования достаточно широки. Конечно, Пайтону не угнаться за C++ в плане функциональности. Тем не менее посредством Python можно создать вполне достойный софт (в том числе и игру). К примеру, на Пайтоне написаны такие игры, как "Батлфилд" (2005), "Цивилизация 4", "Симс 4" и много других проектов, которые стали настоящими хитами.

Java — еще один претендент, который определенно достоин внимания. Пожалуй, главное достоинство данного языка — полная кроссплатформенность. Это означает, что софт, написаный посредством "Ява", поддерживается всеми операционными системами ("Виндовс", "Линукс", "Андроид" и т.д.). Это позволяет быстро переделать игру под любую платформу. Помимо этого, Java дает программисту массу возможностей. За примерами далеко ходить не нужно. Вышеупомянутый "Майнкрафт" был написан именно на "Яве".

Создание игр без программирования

Однако что делать, если нет времени на изучение языков, но свою игру написать все-таки хочется? Тут на помощь приходят так называемые игровые конструкторы. Что это такое? Ответ на вопрос вы сможете найти ниже.

Конструктор игр — это специальная программа, которая объединяет в себе интегрированную среду разработки и движок. Проще говоря, это софт, с помощью которого можно делать свои игры без программирования. Если вы только начали свой путь геймдева, то конструкторы игр — как раз то, что вам нужно. С их помощью вы сможете понять, как происходит процесс разработки, на что стоит обратить свое внимание, и подметить для себя прочие важные аспекты.

Тем не менее подобные программы имеют и недостатки. Конструкторы игр обладают довольно скудным функционалом. Подобные программы накладывают на пользователя ограничения в плане жанра, графики, механики и т.д. Именно по этой причине создать достойный внимания проект с помощью конструктора вряд ли получится.

Программы для создания игр

Как можно было понять, конструкторы не предназначены для создания крупных проектов. Подобные программы необходимы для того, чтобы дать юному геймдеву первый опыт в плане разработки игр. В этой части статьи мы рассмотрим самые популярные программы для программирования игр, которые помогут новичкам сделать первые шаги в геймдев-среде.

Пожалуй, сама известная программа для разработки игр — Game Maker. Она предназначена для создания двухмерных проектов. Делать игры можно без навыков программирования. Вместо строчек кода пользователю предоставляют набор готовых действий. Все, что нужно сделать — создать объекты и определить правила взаимодействия между ними. Также стоит подметить, что рисовать спрайты можно прямо в Game Maker без использования посторонних программ. Поэтому софт является вполне самодостаточным. Мало того, Гейм Мейкер не обидит и продвинутых юзеров, которые обладают навыками программирования. Ведь в программе есть возможность добавлять свой исходный код. Посредством Game Maker можно создавать игры с видом сверху (РПГ, тактический шутер и т.д.) и сбоку (платформер).

Construct 2 — это еще один конструктор для разработки 2D-игр. Пожалуй, главная особенность данной программы — мультиплатформенность. Посредством "Конструкта" можно создавать игры для iOS, Android, Windows, Web и т.д. В плане функциональности Construct 2 ничем не уступает тому же "Гейм Мейкеру".

Вывод

Программирование игр — очень трудоемкий процесс, который длится месяцами, а то и годами. Поэтому если вы хотите стать профессиональным геймдевом, то необходимо развивать в себе такие качества, как терпение и сила воли.

fb.ru

Что нужно для создания игры 🚩 игры создать 🚩 Компьютеры и ПО 🚩 Другое


Придумайте сюжет и идею игры, которую вы хотите создать. Будет это бродилка, гонка или варианты драки, решать вам. Следует понимать, что создание игры процесс утомительный и требует очень много времени. Без определенных знаний создать игру у вас не получиться. Необходимо обучиться азам языков программирования, скриптовых языков, моделирования.

Выберите формат создания игры - 2D или 3D. Легче делать 2D, чем 3D: они не нагружают компьютер, а нужное количество программ, необходимых для создания игры, сводится к минимуму. Но даже для создания 2D-игр нужно хорошо уметь рисовать. Если вы не умеете рисовать, то можете пользоваться уже готовыми заготовками локаций, персонажей и т.д.

Одним из плюсов 3D-игр можно назвать красоту и зрелищность, но красота требует жертв, поэтому сразу становятся видны минусы. Вам потребуется знание различных языков программирования. Это самая сложная часть создания 3D-игры. Чем сложнее предполагается игра, тем сложнее языки. Их огромное множество и они познаются очень долго. Изучая один язык вы столкнетесь с необходимостью знания другого. И так по нарастающей. Другой очевидный минус в том, что нужны мощные компьютеры. Рисовать тут уже не нужно, но нужно учиться работать в программах для моделирования, но это не легче рисования и без фантазии тут не обойтись.

Существуют специальные конструкторы для создания игр. Из готовых деталей, которые вам даются в конструкторе, вы постепенно создаете свою игру. Они подходят как для 3D-игр, так и для 2D-игр. Если вам не хватает готовых деталей, то вы можете добавить свои и пользоваться ими. Чтобы заставить что-то двигаться, вам нужно будет присваивать объектам действия, используя готовые логические операции. При нехватке стандартных действий на помощь придут скриптовые языки. Существуют конструкторы, которые включают в себя общие языки программирования, они более функциональны, но в их работу сложнее вникнуть. Конструкторы обычно разбиты по жанрам, но есть и общие, которые подходят для создания игр различных жанров.

www.kakprosto.ru

12 игр, которые обучают детей программированию / Habr

Программирование сейчас очень популярно. По всему миру 36 миллионов детей принимают участие в мероприятиях движения «Час программирования». Цель этих мероприятий – помочь детям стать активными, а не пассивными пользователями технологий, а также получить знания, которые в будущем могут помочь устроиться на хорошую работу в нашем все более и более техническом мире.

Даже если ваши дети не хотят в будущем зарабатывать на жизнь программированием, базовое понимание принципов программирования развивает мышление и, в дальнейшем, ребенок лучше справляется с решением возникающих задач. Билл Гейтс когда-то сказал: «Если вы учитесь создавать программы, это развивает ваш разум, помогает вам лучше мыслить и создает образ восприятия вещей. В целом, я думаю, что человеку это будет полезно вне зависимости от сферы его деятельности».

Такие платформы, как Scratch и Alice позволяют детям (и взрослым) создавать собственные игры и анимации, используя упрощенные методы программирования. Однако не всем детям это интересно. И вот для таких детей существует множество игр, которые обучают базовым принципам программирования в веселой и доступной форме.


Мы отобрали несколько доступных вариантов, включая некоторые игры, которые до сих пор находятся в разработке, поэтому вам не придется их лихорадочно искать. Эти игры доступны на разных платформах – iOS, Android, ПК, Mac, есть даже настольные игры – при этом многие из них, и это огромный плюс, распространяются бесплатно.

Lightbot и Lightbot Jr.

Для кого: возраст 4-8 лет (Lightbot Jr), 9+ (Lightbot)
Платформа: Веб-браузеры, iOS, Android
Цена: Бесплатно (браузер), $3 (iOS/Android)
Больше информации: Браузерная игра, iTunes, Google Play

Экспертное мнение: «При кажущейся простоте, Lightbot освещает некоторые интересные аспекты продвинутого программирования» — Фритц Руэр, доцент компьютерных наук, Уилламеттский университет, Орегон.

Подпись: Во многих школах игра Lightbot используется для обучения основам программирования. Эта игра используется даже в некоторых университетах.

Lightbot – это игра-головоломка о программировании, созданная Дэнни Ярославским, канадским студентом. Цель игры – заставить робота подсветить все голубые плитки на 3D-решетке. Сложность состоит в том, что это нужно сделать в один подход, создав для робота серию команд.

Ярославский говорит, что Lightbot обучает планированию, тестированию, отладке, процедурам и циклам. Вашим детям точно понравится играть с симпатичным роботом, заставляя его подсвечивать все плитки в один подход.

Вы можете играть в бесплатную версию игры, в которой предлагается час игрового времени. Причем бесплатно можно играть как на компьютере, так и на вашем мобильном устройстве. А если этого недостаточно, то две полные версии Lightbot для разных возрастных групп сейчас продаются в iTunes и Google Play.

Code Monkey Island

Для кого: возраст 8+
Платформа: настольная игра
Цена: $40+
Больше информации: веб-сайт игры Code Monkey Island, Kickstarter
Экспертное мнение: «Code Monkey Island – это потрясающе веселая игра, которая знакомит детей с программированием» — педагог и активист по развитию технологий Фил Шапиро.

Подпись: Code Monkey Island не сделает из ваших детей программистов по мановению волшебной палочки, однако обучит их основам программирования.

Житель Бруклина Радж Сидху захотел объяснить детям основы программирования в увлекательной игровой форме. Он выбрал совершенно нетехническое решение для решения высокотехнической задачи и внедрил основы бинарной логики и условные команды в семейную настольную игру.

Играть в Code Monkey Island достаточно просто, да и времени игра занимает немного – всего лишь около 45 минут. Игроки используют карточки с инструкциями типа «Каждую обезьяну передвинуть на три клетки, НЕ наступая на скалы» для того, чтобы двигать свои отряды обезьян по острову.

Сидху выбрал формат настольной игры, потому что такие игры объединяют семью. «Я хотел создать что-то, во что могут играть дети, их родители, бабушки и дедушки. Однако при этом я хотел помочь детям через игру реализовать их способности к обучению», говорит он на своей странице Kickstarter.

Игра Code Monkey Island оказалась успешным проектом на Kickstarter. В августе эта игра должна уже получить распространение. Вы можете забронировать один экземпляр этой игры для себя, перечислив в фонд проекта на Kickstarter $40 или больше.

Kodable

Для кого: возраст 5-8 лет
Платформа: iOS
Цена: Бесплатно ($7 – Pro-версия)
Больше информации: веб-сайт игры Kodable, iTunes
Экспертное мнение: «Игра Kodable развивает навыки программирования, в результате чего программированию могут научиться даже маленькие детки. Для обучения им даже не нужно уметь читать» — Терри Эйкхольц, преподаватель программы K-5 для одаренных детей, Техас

Подпись: Соучредитель Грехен Хюбнер сообщает, что в Kodable могут играть даже двухлетние дети.

Kodable – это игра-лабиринт, в которой 105 уровней. Эта игра помогает обучать детей таким основам программирования, как условия, циклы, функции и отладка.

В игре совершенно не используется текст, поэтому в нее могут играть даже маленькие дети. Герои игры очень яркие, они похожи на забавных пришельцев и очень нравятся детям.

«Взрослые так боятся программирования, они считают программирование ужасным и сложным делом», говорит соучредитель игры Kodable Грехен Хюбнер в интервью TechRepublic. «Забавно, что многие взрослые недооценивают возможности своих детей. И то, что мы предлагаем детям возможность решать разные задачи в таком раннем возрасте, доказывает, насколько же дети умны».

В бесплатной версии Kodable 45 уровней. В самом приложении можно докупить разные уровни и конфигурации. В Pro-версии, которая стоит $7, также есть уроки по расширению словарного запаса и инструкции для обучения.

Robozzle

Для кого: возраст 6+ (и взрослые)
Платформа: веб-браузер, iOS, Android, Windows phone
Цена: Бесплатно (браузерная версия), $0-$2 (мобильная версия)
Больше информации: браузерная версия игры, iTunes, Google Play, Магазин приложений Windows
Экспертное мнение: «Игра Robozzle позиционируется как социальная игра-головоломка, но я воспринимаю ее как веселый и интересный способ обучения программированию. И, возможно, с помощью этой игры получится заинтересовать детей программированием» — Альфред Томпсон, учитель информатики в старшей школе.

Подпись: На первый взгляд игра Robozzle очень простая. Но вскоре игрок сможет убедиться, что все не так уж просто.

Если вы ищете занятие для детей постарше (или для себя), попробуйте поиграть в Robozzle. Это игра-головоломка, которую в свободное время создал программист компании Microsoft Игорь Островский.

Задача Robozzle – провести робота через лабиринты, используя ограниченные команды. Уровни сложности игры варьируются: некоторые уровни подходят для детей, а некоторые задачи заставят почесать голову даже опытных программистов.

В браузерную версию этой игры можно поиграть бесплатно (используя Silverlight), также игроки могут создавать, голосовать и комментировать новые уровни.

Игра Robozzle доступна на iOS, Windows Phone 7 и Android. Цены варьируются.

Cargo-Bot

Для кого: для детей от 5 лет и взрослых
Платформа: iOS
Цена: Бесплатно
Больше информации: iTunes
Экспертное мнение: «Отличное приложение для iPad для обучения программированию. С помощью него обучал своих двух детей» — Майк Лоуренс, преподаватель и соучредитель Google Teacher Academy.

Подпись: Игра Cargo-Bot для iPad была создана с помощью приложения Codea

Cargo-Bot – это первая игра, написанная специально для iPad. Простые уровни этой игры подходят для детей от 5 лет, однако дальше начинаются действительно сложные уровни.

Игроки должны передвигать коробки по заводу с помощью движущегося крана. При этом используются такие понятия программирования, как циклы, процедуры и отладка.

«Я хотел создать игру, смысл которой – перемещать коробки по заводу. Забудьте, что на самом деле вы программист», сказал разработчик игры Руи Виана в интервью Fast Company.

SpaceChem

Для кого: для детей от 10 лет и взрослых
Платформа: ПК, Mac, Linux, iOS, Android
Цена: Бесплатная демо-версия, $7 (Steam), $3 (iOS/Android)
Больше информации: веб-сайт игры SpaceChem, Steam, iTunes, Google Play
Экспертное мнение: «Я думаю, что SpaceChem – это лучшая из существующих игр по обучению программированию» — Нил Браун, исследователь в сфере компьютерного образования, Кентский университет, Великобритания.

Подпись: SpaceChem используют многие школы в образовательном процессе, но при этом это – игра.

Игра SpaceChem – это сочетание программирования и псевдохимии в условиях научной фантастики. Однако эта игра получила превосходные отзывы после ее выпуска в 2011 году.

Эта игра достаточно сложная, поэтому заставит подумать как учеников старшей школы, так и взрослых. Цель SpaceChem – построить механизм для борьбы с монстрами, используя такие понятия программирования, как исполнение заявок, циклы, переходы и подпрограммы. Компания-разработчик Zachtronics Industries пояснила, в чем же именно ценность этой игры.

«SpaceChem – это игра, которую я бы хотел дать себе в 12 лет, чтобы сходить с ума, решая головоломки», так написано в образовательном блоге Gaming to Learn. «Когда вы слышите, что люди говорят о важности обучения написанию кода – они говорят об этой игре. Такие игры учат игрока думать».

Robot Turtles

Для кого: 3-8 лет
Платформа: настольная игра
Цена: $25
Больше информации: веб-сайт игры Robot Turtles, Kickstarter
Экспертное мнение: «Начните учиться как можно раньше! Это потрясающе! Будущее теперь выглядит гораздо более вдохновляющим» — Джон Леджер, председатель правления, T-Mobile

Подпись: Игра в Robot Turtles.

Эта настольная игра, которая обучает детей программированию, в прошлом году собрала на Kickstarter $600000. При том, что сначала требовалось финансирование в $25000.

Игра оказалась востребованной. И это неудивительно, ведь Robot Turtles обучает основам программирования через карточки-инструкции, которыми управляется прохождение черепашек через лабиринт. Первоначальные 25000 копий игры были распроданы в один миг. Дети должны использовать ограниченный синтаксис, последовательность команд, а также проводить отладку при совершении ошибки. Создатель игры, Дэн Шапиро, говорит, что понимание, как играть, появляется за несколько секунд.

«Я очень верю в то, что программирование – это суперсила, которую вы можете предложить своим детям. Это путь к тому, что они не останутся в стороне от инноваций будущего», сказал Шапиро в интервью TechCrunch.

Игра Robot Turtles была недавно приобретена компанией по выпуску и продаже игр ThinkFun и уже в этом месяце стала доступна для массового рынка.

Code Combat

Для кого: 13+ (или младше при условии наблюдения/инструктажа)
Платформа: веб-браузер
Цена: Бесплатно
Больше информации: веб-сайт игры Code Combat
Экспертное мнение: «Очень креативный и захватывающий способ для обучения программированию через игру» — Джейсон Бэттлс, заместитель декана по разработке технологических библиотечных процессов и политик, Алабамский университет

Подпись: Code Combat – это забавное сочетание волшебников, воинов, огров и программирования.

Code Combat – единственная игра из нашего списка, в которой игроки должны использовать код в чистом виде (в настоящее время Javascript, экспериментальная поддержка CoffeeScript, Python, Clojure и Lua). Не позволяйте этому факту выбить вас из седла, так как игра Code Combat – это прекрасная возможность учиться с удовольствием.

Вы можете начинать с однопользовательских уровней этой игры в жанре «фэнтэзи», а потом применять ваши приобретенные знания программирования на других игроков.

Code Combat, как предполагается, останется бесплатной игрой, так как основной доход разработчиков – это предложение компаниям игроков высокого уровня. Да, действительно: играя в эту игру, вы можете получить работу.

Ludos (Puzzlets)
Для кого: 4-12 лет
Платформа: ПК, Mac, iOS
Цена: $100
Больше информации: Digital Dream Labs
Экспертное мнение: «Что выделяет Cloudboard (интерфейс панели Ludos) среди других доступных в настоящее время продуктов – это не только сочетание физического и цифрового мира, но и развитие навыков сотрудничества» — Терри Эйкхольц, преподаватель программы K-5 для одаренных детей, Техас

Подпись: В игре Ludos используются тайлы, поэтому для детей программирование становится тактильным.

Игра Ludos должна выйти в августе этого года. Цель игры – сделать программирование реальным практическим опытом для детей. Ludos позволяет игрокам размещать тайлы с командами непосредственно на сетке, программируя действия персонажей игры.

Cork the Volcano будет первой игрой Ludos с сильным акцентом на таких основах программирования, как планирование, последовательность и отладка. В дальнейшем в системе появятся и другие игры, ведь эта система является открытой платформой, и поэтому для нее каждый сможет создавать приложения.

Codemancer

Для кого: 9-14 лет
Платформа: ПК, Mac, iOS, Android
Цена: $20
Больше информации: веб-сайт Important Little Games, Kickstarter
Экспертное мнение: «Игра в жанре «фэнтэзи» с главной героиней, которая учит детей (и взрослых!) программированию? Мне нравится все в этой игре!» — Лоурен Скотт, веб-разработчик и младший инструктор, Dev Bootcamp

Подпись: Игра Codemancer собрала на Kickstarter в 4 раза больше денег, чем изначально было заявлено.

Разработчики Codemancer надеются, что после выпуска, который запланирован на лето следующего года, игре поможет выделиться ее интересный сюжет и героиня.

После запуска этого успешного проекта Kickstarter игроки будут использовать волшебные руны для управления действиями, помогая героине Авроре спасти жизнь ее отца. Создатель Роберт Локхарт надеется, что доступность игры разрушит все барьеры, которые препятствуют пониманию программирования детьми.

«Язык игры Codemancer очень доступен», говорит Локхарт на своей странице Kickstarter, «однако его также легко переводить на разные языки программирования. Программы становятся более сложными, когда мы внедряем такие понятия программирования, как переменные, условия и функции».

Machineers

Для кого: 8-14 лет
Платформа: ПК, Mac (версия для iPad в разработке)
Цена: Бесплатная демо-версия
Больше информации: веб-сайт игры Machineers
Экспертное мнение: «Кажется, что игра Machineers будет лучшим примером обучающей игры» — Пол Хайс, программист и разработчик игр

Подпись: Игра Machineers победила в номинации «Лучшая обучающая игра» на мероприятии Serious Games Showcase and Challenge во Флориде в 2012 году.

Игра Machineers – это игра в стиле adventure, в которой пользователи имеют дело со сломанными устройствами. Игроки должны починить устройства, используя принципы программирования и интерфейс drag-and-drop.

Энрике Лоде, член команды Danish Lohika Games, разработчиков Machineers, решил выпустить эту головоломку-приключение после того, как один ребенок-тестировщик пожаловался, что все развивающие игры похожи на «брокколи в шоколаде».

«Эта игра – подготовка к дальнейшему обучению», сказал Лоде в интервью Indie Statik. «В игре отсутствует какая-либо математика и код, поэтому дети не смогут научиться программировать. Однако игра развивает логическое мышление и то, что называется процессуальной грамотностью – умение читать и писать процессы».

Пока игра находится в разработке демо-версии Machineers для ПК и Mac можно скачать бесплатно. Lohika Games планирует запустить полноценную игру для iPad.

Bee-Bot

Для кого: 4-7 лет
Платформа: iOS
Цена: Бесплатно
Больше информации: iTunes
Экспертное мнение: «Не обращайте внимания на само устройство, просто пробуйте и ошибайтесь, выдвигайте гипотезы, проверяйте, тестируйте и добивайтесь успеха» — Дог Питерсон, сессионный преподаватель, факультет обучения, Виндзорский университет, Канада

Подпись: Многие школы используют игру Bee-Bot для обучения основам программирования

Разработчик обучающих игр TSS создал BeeBot для того, чтобы помочь детям разобраться с объектным языком программирования и последовательностью команд в программировании. Простое и доступное приложение имеет 12 уровней, ограниченных по времени выполнения, которые представляют собой лабиринты с постоянным повышением уровня сложности.

Для детей старше 7 лет существует дополнительное приложение под названием BeeBot Pyramid. Оно распространяется по цене $0,99.

habr.com

Отправить ответ

avatar
  Подписаться  
Уведомление о