GrabDuck

7 курсов, чтобы начать делать игры - Библиотека программиста

:

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

Среди площадок в этом обзоре есть и Coursera, и YouTube, так что к выбору курса можно подойти не только исходя из языка, но и из формата обучения. Кстати, некоторые курсы платные, но так или иначе предусматривают бесплатный вариант изучения. На Coursera, к примеру, если не важен диплом/сертификат, можно получить полный доступ к материалам в качестве слушателя. А кто-то, например, не даст просто так доступ к исходникам, зато к видеоархиву – пожалуйста.

Площадка: Coursera
Языки: C#, английский
Длительность обучения: 12 недель
Средняя оценка пользователей: 4.7 / 5
Начало: 30 января
Цена: 1847 рублей

Курс ведет Тим Чамиллард (Tim Chamillard), профессор Системы университетов штата Колорадо.

Создатели курса выбрали C# в качестве основного языка не только из-за Unity, как может показаться сначала. Готовить игры будут на MonoGame, кроссплатформенной реализации игрового движка XNA. Он позволяет писать игры не только под Windows и Windows Phone, как изначально планировали Microsoft, но и под кучу других платформ, включая iOS, Android и Mac. К тому же курс рассчитан на полных новичков в программировании, а C#, по мнению авторов, отлично подходит, чтобы постигать азы.

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

План курса

Первая неделя. Введение в курс, типы данных, переменные, хранение данных, первая программа на C#.
Вторая неделя. Классы и объекты, основы MonoGame/XNA
Третья неделя. Строки, if/switch, как делается выбор в играх.
Четвертая неделя. Закрепление, никаких новых материалов на этой неделе.
Пятая неделя. Контроллеры, массивы и классы колекций в MonoGame/XNA.
Шестая неделя. Закрепление пройденного.
Седьмая неделя. Циклы.
Восьмая неделя. Закрепление пройденного.
Девятая неделя. Проектирование и реализация классов.
Десятая неделя. Закрепление пройденного.
Одинадцатая неделя. Воспроизведение аудио и работа с вводом/выводом данных в MonoGame/XNA.
Двенадцатая неделя. Закрепление и финальный тест.

Кстати, о тестах. Чтобы получить доступ к материалам каждой следующей недели, необходимо успешно сдать промежуточную контрольную.

Площадка: Coursera
Языки: Python, английский; есть субтитры на итальянском, испанском и упрощенном китайском
Длительность обучения: 5 недель
Средняя оценка пользователей: 4.8 / 5
Начало: 6 февраля
Цена: 3 121 рублей в месяц

Курс ведут лекторы Джон Грайнер (John Greiner) и Стефан Вонг (Stephen Wong), а также профессора Скотт Рикснер (Scott Rixner) и Джо Уоррен (Joe Warren) на базе Университета Райса.

Этот курс состоит из двух частей и служит подготовкой к другим курсам в рамках специализации углубленного изучения компьютерных наук. То есть, казалось бы, к играм имеет отношения посредственное. Однако в Райсе знают, что нужно людям, поэтому каждая неделя обучения заканчивается написанием мини-игры или простого проекта, а на финальной неделе будет разрабатываться классическая игра «Понг» (это как арканоид, только, напротив, вашей ракеткой будет ракетка соперника, а не блоки).

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

План курса

Первая неделя. Выражения, переменные. Калькулятор.
Вторая неделя. Логика, функции и условия. Камень-ножницы-бумага.
Третья неделя. Программирование и события, локальные и глобальные переменные. Простая угадайка.
Четвертая неделя. Canvas, рисование, таймеры. Секундомер.
Пятая неделя. Списки, ввод с клавиатуры, основы моделирования движений. Понг.

Чтобы успешно завершить курс, нужно не только сдать промежуточные тесты, но и подготовить усложненную версию программы в конце недели (камень-ножницы-бумага-ящерица-Спок, например).

Площадка: handmadehero.org
Языки: C++, английский
Начало: 14 ноября 2014 года
Цена: $15

Курс ведет Кейси Муратори (Casey Muratori)игродел с 1999 года, соавтор множества игровых библиотек.

В ноябре 2014 Кейси решил, что пора заняться чем-то целиком и полностью своим и с тех пор делает проект Handmade Hero. Если говорить о проекте коротко, за 15 долларов можно получить доступ к базе кода со всеми билдами, а также получить финальную версию игры, когда она будет готова.

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

Игра делается полностью из кастомного кода и даже кастомного арта, который готовит для Кейси художник Янгтян Ли (Yangtian Li). Еще автор обещает кроссплатформенность, но только после полноценного релиза на Windows.

Площадка: Khan Academy
Языки: JS, английский

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

План курса

Введие в игры и визуализацию. Кратко о курсе.
Управление сценами. Как переключаться между сценами в приложении, даже если они анимированные и интерактивные.
Как делать для приложения легко кастомизируемые кнопки.
Преобразования. Как правильно передвигать/вращать/масштабировать объекты.
Трехмерные формы. Основы 3D в JS.
Простой скроллер: мини-игра Hoppy Beaver.
Как сделать игру на запоминание. Переворачиваем карточки и ищем пару.

Курс бесплатный и не имеет лимитов по времени. Некоторые занятия подготовлены в видео, где-то информация подается текстом.

Здесь, в отличие от прошлых примеров даже и не курс вовсеэто небольшая статья о том, как с помощью html, canvas и js сделать простую игру не ради игры, а чтобы понять как работает отрисовка в браузере. И сказать, что игра простая,это ничего не сказать: по карте в 512х480 px перемещается персонаж, ловящий гоблинов. В процессе лишь увеличивается счетчик пойманых зеленых гадов.

Статья разбита таким образом:

  1. Создание игровой области, инициализация Canvas.
  2. Подгрузка изображений. Бэкраунд, герой и гоблин.
  3. Создание объектов. Инициализация созданных персонажей.
  4. Обработка ввода с клавиатуры. Стрелочки.
  5. Как начинается игра.
  6. Обновление объектов. Событие пересечения игрока и гоблина.
  7. Рендерим объекты.
  8. Главный цикл игры.
  9. Заметка о циклах.
  10. Можно играть!

Еще один личный проект игродела, в этот раз целиком на YouTube. В своих видео автор затрагивает разработку на разных языках (тут и C++, и Java, и C#) и игровых движках. В последнее время Cherno сосредоточен на разработке собственного игрового движка Sparkly и даже делает на нем какие-то игры. Сейчас на канале уже сотни видео, так что найти что-то под свои вкус и силы большого труда не составит.

Площадка: Udacity
Языки: js, html5, английский
Длительность обучения: около 2 месяцев
Цена: бесплатно

Курс подготовлен Google.

Речь пойдет о том, как правильно использовать компоненты, чтобы делать хорошие игры и высокопроизводительные приложения. Этот курс также является первой ступенькой в изучении разработки для VR, так что Udacity предлагает продолжить, если этот курс кого-то заинтересует. Есть важный момент: курс расчитан на середнячков и предполагает, что какие-то знания программирования и веб-технологий в целом у студента имеются.

План курса

Урок 1. Введение в рендеринг Канвасом. Немного об основах Canvas и формате изображений.
Урок 2. Атласы. Как Канвас работает с большими объемами графики. Атласы против спрайтов.
Урок 3. Отрисовка карты. Глубокое погружение в данные карт.
Урок 4. Обработка событий. Пользовательский ввод. Клавиатура и мышь.
Урок 5. Иерархия сущностей. Создание сущностей, порядок операций над ними.
Урок 6. Использование внешних библиотек. Box2D.
Урок 7. Работа с аудио. Звуки и WebAudio.
Урок 8. Асинхронная загрузка. Кэширование изображений.

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