Разработка видеоигр
Разработка видеоигр
Разработка видеоигр — это междисциплинарный процесс, объединяющий программирование, дизайн, анимацию, звукорежиссуру, нарратив и управление проектами. Это создание интерактивных цифровых миров, где каждая механика, каждый пиксель и каждый звук служат одной цели: обеспечить игроку насыщенный, увлекательный и осмысленный опыт.
Современная игровая разработка может вестись как крупными студиями с сотнями специалистов, так и одним человеком с ноутбуком — главное отличие лежит в масштабе, а не в сути процесса.
Основы игровых систем
Любая игра начинается с понимания её внутреннего устройства.
- 1.18. Компьютерные игры
- 1.18. Классификация видеоигр - жанры и платформы
- 1.18. Архитектура игрового приложения
- 1.18. Системы ввода и пользовательский интерфейс в играх
- 1.18. Игровая логика и правила
- 1.18. Игры как объект анализа и разработки в IT
- 1.18. DirectX, OpenGL и Vulkan — простыми словами — простыми словами — простыми словами — простыми словами — простыми словами
- 1.18. DLSS и FSR — апскейлинг в играх — апскейлинг в играх — апскейлинг в играх — апскейлинг в играх — апскейлинг в играх
- 1.18. Компьютерные игры — итоги — итоги — итоги — итоги — итоги
- 1.18. Компьютерные игры — чек-лист — чек-лист — чек-лист — чек-лист — чек-лист
- 1.18. Тест на геймера
На низком уровне игры оперируют данными так же, как и любые программы:
- 4.06. Архитектура выполнения программ
- 4.06. Битовые операции и низкоуровневое представление данных
- 4.06. Архитектура выполнения — итоги — итоги — итоги — итоги — итоги
- 4.06. Архитектура выполнения — чек-лист — чек-лист — чек-лист — чек-лист — чек-лист
- 4.06. Ошибки, исключения и отказоустойчивость
- 4.06. Отладка и видимость состояния
- 4.06. Вызовы и иерархия
- 4.06. Ресурсопотребление и метрики
- 4.06. Неиспользуемый код и технический долг
- 4.06. Сборка и культура производительности
Языки и технологии
Выбор языка зависит от платформы, жанра и целей проекта.
- 5.15. Основы языка Lua
- 5.15. Справочник по Lua
- 5.15. Экосистема приложений на Lua
- 5.15. История языка Lua
- 5.15. Первая программа на Lua
- 5.15. Синтаксис и пунктуация в Lua
- 5.15. Типы данных и объявление переменных в Lua
- 5.15. Управляющие конструкции и циклы в Lua
- 5.15. Функции, замыкания и анонимные функции
- 5.15. Метатаблицы и метаметоды
- 5.15. Модули и организация кода
- 5.15. Работа с памятью и сборка мусора
- 5.15. Асинхронность и кооперативная многозадачность
- 5.15. Архитектура выполнения и встраиваемость
- 5.15. Luau - типизированный диалект Lua от Roblox
- 5.15. Рекомендации по разработке на Lua
- 5.15. Простые приложения на Lua
- 5.15. Ключевые слова языка Lua
- 5.15. Встроенные функции и стандартная библиотека Lua
- 5.15. Объектно-ориентированное программирование в Lua
- 5.15. Работа со строками, таблицами и файлами
- 5.15. Обработка ошибок в Lua
- Разработка игр с использованием C++ — основа большинства AAA-движков (Unreal Engine, CryEngine).
- Java игры — популярны в образовательных и мобильных проектах.
- Языки программирования игр
Игровые движки
Движок — это каркас, на котором строится игра. Он предоставляет готовые решения для графики, физики, звука и ввода.
- 9.11. Введение в программирование
- 9.11. Блоки
- 9.11. Scratch
- 9.11. Edublocks
- 9.11. Типы данных
- 9.11. Программа на Python
- 9.11. Программа на JavaScript
- 9.11. Путеводитель по языкам
- 9.11. MIT App Inventor
- 9.11. PascalABC.NET
- 9.11. Кумир
- 9.11. Стартовые проекты MIT Scratch
- 9.11. Scratch: платформер и демосцена
- 9.11. Практика 1 — радуга — радуга — радуга — радуга
- 9.11. Практика 2 — лабиринт — лабиринт — лабиринт — лабиринт
- 9.11. Практика 3 — баскетбол — баскетбол — баскетбол — баскетбол
- 9.11. Практика 4 — арканоид — арканоид — арканоид — арканоид
- 9.11. Практика 5 — астероиды — астероиды — астероиды — астероиды
- 9.11. Практика 6 — платформер — платформер — платформер — платформер
- 9.11. Метод обучения
- 9.11. Практика — Прыг-скок — Прыг-скок — Прыг-скок — Прыг-скок
- 9.11. Python — структуры данных — структуры данных — структуры данных — структуры данных
- 9.11. Python — turtle — turtle — turtle — turtle
- 9.11. Python — классы — классы — классы — классы
- 9.11. Практика — платформер — платформер — платформер — платформер
- 9.11. Программирование — итоги — итоги — итоги — итоги
Популярные платформы:
- 9.04. Процесс разработки видеоигр
- 9.04. Разработка на Roblox
- 9.04. Разработка на Unity
- 9.04. Unreal Engine
- 9.04. Дорожная карта геймдева
- 9.04. Разработка в Minecraft
- 9.04. Архитектура гонок
- 9.04. Ритм игры
- 9.04. Команда разработки
- 9.04. Игровой движок
- 9.04. Виды игровых движков
- 9.04. Языки программирования игр
- 9.04. Моделирование
- 9.04. Текстуры
- 9.04. Гейм-дизайн
- 9.04. PC
- 9.04. PlayStation
- 9.04. Nintendo
- 9.04. Xbox
- 9.04. Мобильные игры
- 9.04. Оптимизация игр
- 9.04. Тестирование игр
- 9.04. Каталог open-source клонов игр
- 9.04. Звук и музыка в играх — FMOD и Wwise — FMOD и Wwise — FMOD и Wwise — FMOD и Wwise — FMOD и Wwise
- 9.04. Игровая доступность (accessibility)
- 9.04. ИИ в играх
- 9.04. Unreal Engine 6
- 9.04. Verse
- Разработка на Unity, Справочник по Unity
- Разработка на Roblox, Справочник по Roblox
- Каталог open-source клонов игр — osgameclones.com для разбора чужих репозиториев.
- Практикум — о разделе — о разделе — о разделе — о разделе — о разделе — мини-проекты на Python (Pygame), Java и TypeScript; Приключения Урала Батыра уже можно сыграть в браузере.
Команда и процесс разработки
Игра — результат совместной работы множества ролей.
- 9.11. Введение в программирование
- 9.11. Блоки
- 9.11. Scratch
- 9.11. Edublocks
- 9.11. Типы данных
- 9.11. Программа на Python
- 9.11. Программа на JavaScript
- 9.11. Путеводитель по языкам
- 9.11. MIT App Inventor
- 9.11. PascalABC.NET
- 9.11. Кумир
- 9.11. Стартовые проекты MIT Scratch
- 9.11. Scratch: платформер и демосцена
- 9.11. Практика 1 — радуга — радуга — радуга — радуга
- 9.11. Практика 2 — лабиринт — лабиринт — лабиринт — лабиринт
- 9.11. Практика 3 — баскетбол — баскетбол — баскетбол — баскетбол
- 9.11. Практика 4 — арканоид — арканоид — арканоид — арканоид
- 9.11. Практика 5 — астероиды — астероиды — астероиды — астероиды
- 9.11. Практика 6 — платформер — платформер — платформер — платформер
- 9.11. Метод обучения
- 9.11. Практика — Прыг-скок — Прыг-скок — Прыг-скок — Прыг-скок
- 9.11. Python — структуры данных — структуры данных — структуры данных — структуры данных
- 9.11. Python — turtle — turtle — turtle — turtle
- 9.11. Python — классы — классы — классы — классы
- 9.11. Практика — платформер — платформер — платформер — платформер
- 9.11. Программирование — итоги — итоги — итоги — итоги
Ключевые дисциплины:
- Гейм-дизайн — проектирование правил, уровней, экономики.
- Моделирование — создание 3D-объектов.
- Текстуры — оформление поверхностей.
Платформы и оптимизация
Игры выпускаются на разных устройствах, каждое из которых требует особого подхода.
- 2.02. Платформы в IT
- 2.02. Виртуализация
- 2.02. Программные платформы
- 2.02. Инструменты виртуализации
- 2.02. Платформы — итоги — итоги — итоги — итоги — итоги
- 2.02. Платформы — чек-лист — чек-лист — чек-лист — чек-лист — чек-лист
- 2.02. Серверные платформы
- Почему AAA-разработка такая дорогая, PlayStation, Xbox, Nintendo
- Мобильные игры, Мобильные игры
- Виртуальная реальность
- Производительность портативных игровых устройств
Особое внимание уделяется производительности:
- 2.02. Платформы в IT
- 2.02. Виртуализация
- 2.02. Программные платформы
- 2.02. Инструменты виртуализации
- 2.02. Платформы — итоги — итоги — итоги — итоги — итоги
- 2.02. Платформы — чек-лист — чек-лист — чек-лист — чек-лист — чек-лист
- 2.02. Серверные платформы
- Оптимизация игр
- Архитектура гонок
- Ритм игры
Тестирование и качество
Качество игры проверяется на всех этапах.
- 9.11. Введение в программирование
- 9.11. Блоки
- 9.11. Scratch
- 9.11. Edublocks
- 9.11. Типы данных
- 9.11. Программа на Python
- 9.11. Программа на JavaScript
- 9.11. Путеводитель по языкам
- 9.11. MIT App Inventor
- 9.11. PascalABC.NET
- 9.11. Кумир
- 9.11. Стартовые проекты MIT Scratch
- 9.11. Scratch: платформер и демосцена
- 9.11. Практика 1 — радуга — радуга — радуга — радуга
- 9.11. Практика 2 — лабиринт — лабиринт — лабиринт — лабиринт
- 9.11. Практика 3 — баскетбол — баскетбол — баскетбол — баскетбол
- 9.11. Практика 4 — арканоид — арканоид — арканоид — арканоид
- 9.11. Практика 5 — астероиды — астероиды — астероиды — астероиды
- 9.11. Практика 6 — платформер — платформер — платформер — платформер
- 9.11. Метод обучения
- 9.11. Практика — Прыг-скок — Прыг-скок — Прыг-скок — Прыг-скок
- 9.11. Python — структуры данных — структуры данных — структуры данных — структуры данных
- 9.11. Python — turtle — turtle — turtle — turtle
- 9.11. Python — классы — классы — классы — классы
- 9.11. Практика — платформер — платформер — платформер — платформер
- 9.11. Программирование — итоги — итоги — итоги — итоги
Индустрия и экосистема
Разработка не заканчивается на коде — игра должна дойти до игрока.
- 9.11. Введение в программирование
- 9.11. Блоки
- 9.11. Scratch
- 9.11. Edublocks
- 9.11. Типы данных
- 9.11. Программа на Python
- 9.11. Программа на JavaScript
- 9.11. Путеводитель по языкам
- 9.11. MIT App Inventor
- 9.11. PascalABC.NET
- 9.11. Кумир
- 9.11. Стартовые проекты MIT Scratch
- 9.11. Scratch: платформер и демосцена
- 9.11. Практика 1 — радуга — радуга — радуга — радуга
- 9.11. Практика 2 — лабиринт — лабиринт — лабиринт — лабиринт
- 9.11. Практика 3 — баскетбол — баскетбол — баскетбол — баскетбол
- 9.11. Практика 4 — арканоид — арканоид — арканоид — арканоид
- 9.11. Практика 5 — астероиды — астероиды — астероиды — астероиды
- 9.11. Практика 6 — платформер — платформер — платформер — платформер
- 9.11. Метод обучения
- 9.11. Практика — Прыг-скок — Прыг-скок — Прыг-скок — Прыг-скок
- 9.11. Python — структуры данных — структуры данных — структуры данных — структуры данных
- 9.11. Python — turtle — turtle — turtle — turtle
- 9.11. Python — классы — классы — классы — классы
- 9.11. Практика — платформер — платформер — платформер — платформер
- 9.11. Программирование — итоги — итоги — итоги — итоги
Исторический контекст помогает понять эволюцию жанров и технологий:
- 9.11. Введение в программирование
- 9.11. Блоки
- 9.11. Scratch
- 9.11. Edublocks
- 9.11. Типы данных
- 9.11. Программа на Python
- 9.11. Программа на JavaScript
- 9.11. Путеводитель по языкам
- 9.11. MIT App Inventor
- 9.11. PascalABC.NET
- 9.11. Кумир
- 9.11. Стартовые проекты MIT Scratch
- 9.11. Scratch: платформер и демосцена
- 9.11. Практика 1 — радуга — радуга — радуга — радуга
- 9.11. Практика 2 — лабиринт — лабиринт — лабиринт — лабиринт
- 9.11. Практика 3 — баскетбол — баскетбол — баскетбол — баскетбол
- 9.11. Практика 4 — арканоид — арканоид — арканоид — арканоид
- 9.11. Практика 5 — астероиды — астероиды — астероиды — астероиды
- 9.11. Практика 6 — платформер — платформер — платформер — платформер
- 9.11. Метод обучения
- 9.11. Практика — Прыг-скок — Прыг-скок — Прыг-скок — Прыг-скок
- 9.11. Python — структуры данных — структуры данных — структуры данных — структуры данных
- 9.11. Python — turtle — turtle — turtle — turtle
- 9.11. Python — классы — классы — классы — классы
- 9.11. Практика — платформер — платформер — платформер — платформер
- 9.11. Программирование — итоги — итоги — итоги — итоги
Разработка видеоигр — это не просто кодирование, а акт творчества, требующий технической дисциплины, художественного вкуса и глубокого понимания человеческого поведения. Это область, где инженерия встречается с искусством, а логика — с эмоциями. В ней возможны как коммерческие хиты, так и авторские эксперименты, и каждая игра — это уникальный диалог между создателем и игроком.