Это руководство/документация для разработки игры в качестве индивидуального проекта. Это не туториал с тысячей пунктов, следуя которым вы получите готовый продукт. Это скорее материал для размышлений, который поможет направить вас в нужное русло, будь то выбор жанра, алгоритма, составление технического задания и т.д. Документ ставит вопросы, предлагает базовые варианты решений, подсказывает, где искать дополнительную информацию: темы, алгоритмы, паттерны, книги.
На данный момент документ находится в версии 0.4. Он содержит основные сведения, необходимые на данном этапе разработки игры. Различные разделы будут пересмотрены и дополнены, будут добавлены новые. Все предложения, замечания, вопросы можно отправить через мою группу Telegram или в личные сообщения.
Куски кода предназначены для демонстрации конкретной идеи, а не использования в продакшене.
Для первокурсников ИРИТ-РТФ, изучающих "Основы программирования": Python ("Алгоритмы ИИ") и C# (Программная инженерия, ПИ и т.д.), у которых я (Васильев Р.В.) веду занятия. Эта памятка подойдет и другим, но какие-то вещи упоминаются как что-то разумеющееся, поскольку объяснялось на парах, какие-то вещи упрощены, т.к. акцент смещен на что-то другое. По всем вопросам, как и всегда, можно обращаться в телеграм или задавать их на занятиях.
Вы развиваете навыки разработки проекта с нуля. Практические задания на курсе требовали написания лишь нескольких методов. Проектный практикум предполагает работу в команде, где каждый член команды "поддерживает" других. В данном случае вы сами выбираете, что и как делать, разрабатываете проект с нуля, сталкиваясь с последствиями своих решений. В итоге это ваше портфолио, которое можно будет предъявить на собеседованиях. Акцент делается на программировании: анализе проблем, поиске и сравнении решений, проектировании игры и ее эффективной реализации в коде, а не просто на написании кода, которое не является, да и не являлось какой-то основной задачей программиста (помним про 90% на 10%)
От вас не требуется создать гениальную игру, которая была бы разработана на коленке за пару месяцев и принесла бы миллиарды или была бы убийцей Ведьмака/Доты/прочих. Также не требуется абсолютная оригинальность. Под оригинальностью игры здесь подразумевается уникальное сочетание механик, которые могли быть использованы в других играх. Прямое копирование Hotline Miami - не лучший вариант. Перенос Hotline Miami в средневековье - чуть лучше, но все равно не идеально, поскольку изменения в дизайне, а все остальное вы повторяете. Комбинация механик из Hotline Miami и The Binding of Isaac с переработкой и переосмыслением - вот что действительно может считаться отличным решением.
*игры тут приведены в качестве примеров
Слева у вас меню навигации. Категории в ней примерны, поскольку многие статьи задрагивают по несколько областей.
Есть теги, по которым можно фильтровать статьи.
| Шаг | Раздел | О чём |
|---|---|---|
| 1 | Выбор жанра | Жанры, их сложность, что от вас потребуется |
| 2 | Техническое задание | Как оформить идею в план: фичи, сценарии, приоритеты |
| 3 | Основной игровой цикл | Кадры, deltaTime, Input -> Update -> Render - фундамент, на котором всё держится |
| 4 | Архитектура | MVC, ECS, событийная модель - как структурировать код внутри цикла |
| 5 | Алгоритмы | Поиск путей, процедурная генерация, ИИ врагов и многое другое |
Разделы 3 и 4 - основная часть документации. Там же найдёте ссылки на конкретные темы: коллизии, камера, анимации, частицы, освещение, процедурная генерация, ИИ врагов, случайность, мультиплеер, отладка и т.д.