7 курсов, чтобы начать делать игры
Мы подготовили обзор семи онлайн-курсов для тех, кто решил делать игры, но так и не смог определиться, за что же взяться вначале.
Среди площадок в этом обзоре есть и Coursera, и YouTube, так что к выбору курса можно подойти не только исходя из языка, но и из формата обучения. Кстати, некоторые курсы платные, но так или иначе предусматривают бесплатный вариант изучения. На Coursera, к примеру, если не важен диплом/сертификат, можно получить полный доступ к материалам в качестве слушателя. А кто-то, например, не даст просто так доступ к исходникам, зато к видеоархиву – пожалуйста.
1. Программирование игр на C# для начинающих
Площадка: 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.
Двенадцатая неделя. Закрепление и финальный тест.
Кстати, о тестах. Чтобы получить доступ к материалам каждой следующей недели, необходимо успешно сдать промежуточную контрольную.
2. Введение в интерактивное программирование на Python
Площадка: Coursera
Языки: Python, английский; есть субтитры на итальянском, испанском и упрощенном китайском
Длительность обучения: 5 недель
Средняя оценка пользователей: 4.8 / 5
Начало: 6 февраля
Цена: 3 121 рублей в месяц
Курс ведут лекторы Джон Грайнер (John Greiner) и Стефан Вонг (Stephen Wong), а также профессора Скотт Рикснер (Scott Rixner) и Джо Уоррен (Joe Warren) на базе Университета Райса.
Этот курс состоит из двух частей и служит подготовкой к другим курсам в рамках специализации углубленного изучения компьютерных наук. То есть, казалось бы, к играм имеет отношения посредственное. Однако в Райсе знают что нужно людям, поэтому каждая неделя обучения заканчивается написанием мини-игры или простого проекта, а на финальной неделе будет разрабатываться классическая игра «Понг» (это как арканоид, только, напротив, вашей ракеткой будет ракетка соперника, а не блоки).
Первая часть курса рассчитана на людей, поверхностно знакомых или не знакомых с компьютерными науками совсем. Поэтому перед тем, как писать что-то интересное, придется изучить основы.
План курса
Первая неделя. Выражения, переменные. Калькулятор.
Вторая неделя. Логика, функции и условия. Камень-ножницы-бумага.
Третья неделя. Программирование и события, локальные и глобальные переменные. Простая угадайка.
Четвертая неделя. Canvas, рисование, таймеры. Секундомер.
Пятая неделя. Списки, ввод с клавиатуры, основы моделирования движений. Понг.
Чтобы успешно завершить курс, нужно не только сдать промежуточные тесты, но и подготовить усложненную версию программы в конце недели (камень-ножницы-бумага-ящерица-Спок, например).
3. Handmade Hero – интерактивная база кода + полноценная игра
Площадка: handmadehero.org
Языки: C++, английский
Начало: 14 ноября 2014 года
Цена: $15
Курс ведет Кейси Муратори (Casey Muratori) — игродел с 1999 года, соавтор множества игровых библиотек.
В ноябре 2014 Кейси решил, что пора заняться чем-то целиком и полностью своим и с тех пор делает проект Handmade Hero. Если говорить о проекте коротко, за 15 долларов можно получить доступ к базе кода со всеми билдами, а также получить финальную версию игры, когда она будет готова.
Как поясняет автор, каждая строчка задокументирована и прокомментирована в видео, так что это не просто куча кода, но и интерактивное пособие по созданию сложного проекта. Самые свежие видео можно смотреть на Твитче автора, а прошлые записи доступны всем желающим на YouTube.
Игра делается полностью из кастомного кода и даже кастомного арта, который готовит для Кейси художник Янгтян Ли (Yangtian Li). Еще автор обещает кроссплатформенность, но только после полноценного релиза на Windows.
4. Углубленный JS – игры и визуализация
Площадка: Khan Academy
Языки: JS, английский
Этот курс почти целиком посвящен созданию игр. В течение всего курса будут рассказывать, как делать различные мини-игры, а также расскажут об основах визуализации, 3D-графики, создании кнопок, менюшек и всего, что может понадобиться в производстве полноценной игры.
План курса
Введение в игры и визуализацию. Кратко о курсе.
Управление сценами. Как переключаться между сценами в приложении, даже если они анимированные и интерактивные.
Как делать для приложения легко кастомизируемые кнопки.
Преобразования. Как правильно передвигать/вращать/масштабировать объекты.
Трехмерные формы. Основы 3D в JS.
Простой скроллер: мини-игра Hoppy Beaver.
Как сделать игру на запоминание. Переворачиваем карточки и ищем пару.
Курс бесплатный и не имеет лимитов по времени. Некоторые занятия подготовлены в видео, где-то информация подается текстом.
5. Простая игра на HTML5/Canvas
Здесь, в отличие от прошлых примеров даже и не курс вовсе — это небольшая статья о том, как с помощью html, canvas и js сделать простую игру не ради игры, а чтобы понять как работает отрисовка в браузере. И сказать, что игра простая, — это ничего не сказать: по карте в 512х480 px перемещается персонаж, ловящий гоблинов. В процессе лишь увеличивается счетчик пойманных зеленых гадов.
Статья разбита таким образом:
- Создание игровой области, инициализация Canvas.
- Подгрузка изображений. Бэкраунд, герой и гоблин.
- Создание объектов. Инициализация созданных персонажей.
- Обработка ввода с клавиатуры. Стрелочки.
- Как начинается игра.
- Обновление объектов. Событие пересечения игрока и гоблина.
- Рендерим объекты.
- Главный цикл игры.
- Заметка о циклах.
- Можно играть!
6. TheChernoProject
Еще один личный проект игродела, в этот раз целиком на YouTube. В своих видео автор затрагивает разработку на разных языках (тут и C++, и Java, и C#) и игровых движках. В последнее время Cherno сосредоточен на разработке собственного игрового движка Sparkly и даже делает на нем какие-то игры. Сейчас на канале уже сотни видео, так что найти что-то под свои вкус и силы большого труда не составит.
7. Разработка игр на HTML5
Площадка: Udacity
Языки: js, html5, английский
Длительность обучения: около 2 месяцев
Цена: бесплатно
Курс подготовлен Google.
Речь пойдет о том, как правильно использовать компоненты, чтобы делать хорошие игры и высокопроизводительные приложения. Этот курс также является первой ступенькой в изучении разработки для VR, так что Udacity предлагает продолжить, если этот курс кого-то заинтересует. Есть важный момент: курс рассчитан на середнячков и предполагает, что какие-то знания программирования и веб-технологий в целом у студента имеются.
План курса
Урок 1. Введение в рендеринг Канвасом. Немного об основах Canvas и формате изображений.
Урок 2. Атласы. Как Канвас работает с большими объемами графики. Атласы против спрайтов.
Урок 3. Отрисовка карты. Глубокое погружение в данные карт.
Урок 4. Обработка событий. Пользовательский ввод. Клавиатура и мышь.
Урок 5. Иерархия сущностей. Создание сущностей, порядок операций над ними.
Урок 6. Использование внешних библиотек. Box2D.
Урок 7. Работа с аудио. Звуки и WebAudio.
Урок 8. Асинхронная загрузка. Кэширование изображений.