раздел 47

Геймдев: зал «Комета»

Курс для того, кто пишет на TypeScript, знает основы Rust и ни разу не делал игр. В Посаде закрыт зал игровых автоматов «Комета»: его основатель умер и оставил тетради с набросками игр и недописанную RPG. Внучка нанимает тебя оживить зал автомат за автоматом, пока напротив не открылся клуб с гача-автоматами. Игры собираешь на Bevy: игровой цикл и ECS, векторы и матрицы, физика, ощущение от игры, платформер и левел-дизайн, геймдизайн и баланс, теория игр, ИИ врагов, роглайк, процедурная генерация, сценарий и ветвящиеся диалоги, своя RPG на свободных ассетах, 3D и тренажёр. Код проверяется тестами без окна, а саму игру ты запускаешь у себя.

56 уроков56 тем · 5 кластеров

Начать раздел
Хочу пройти

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

Уроки раздела в премиуме: 1 200 ₽ в месяц или 10 000 ₽ в год. Оплата пока не подключена, доступ открывается промокодом. ввести промокод

Мастерская: Ракетка

этапов 0 из 11

Мастерская: Кирпичник

этапов 0 из 11

Мастерская: Нашествие

этапов 0 из 11

Мастерская: Метеор

этапов 0 из 13

Уроки раздела

Зал закрыт: что такое игра

  1. Зал закрытM~30 мин
  2. MDA и основной циклM~25 мин
  3. Первое окноM~35 мин
  4. Стенд без окнаM~35 мин

Первый автомат: цикл и ECS

Изделие «Ракетка», крейт raketka

  1. Игровой циклM~30 минпремиум
  2. Время кадраM~25 минпремиум
  3. Фиксированный шагM~30 минпремиум
  4. Данные вместо объектовM~25 минпремиум
  5. Компоненты и запросыM~25 минпремиум
  6. Ресурсы и командыM~25 минпремиум
  7. Сообщения и наблюдателиM~30 минпремиум
  8. ВводM~25 минпремиум
  9. Порядок системM~25 минпремиум
  10. Состояния игрыM~25 минпремиум
  11. Плагины и тест матчаM~30 минпремиум
  12. Босс: дуэль ракетокMS~80 минпремиум

Векторы: геометрия для игры

Изделие «Кирпичник», крейт kirpichnik

  1. Точки и векторыM~35 минпремиум
  2. Длина и нормализацияM~25 минпремиум
  3. Скалярное произведениеM~30 минпремиум
  4. ПроекцияM~25 минпремиум
  5. Слева или справаM~25 минпремиум
  6. Углы и atan2M~30 минпремиум
  7. ПоворотM~30 минпремиум
  8. ОтражениеM~25 минпремиум
  9. Lerp и remapM~25 минпремиум
  10. Прямоугольники AABBM~25 минпремиум
  11. КругиM~25 минпремиум
  12. Отклик на столкновениеM~25 минпремиум
  13. Уровни из данныхM~25 минпремиум
  14. Босс: кирпичикиMS~80 минпремиум

Сок: отклик и полировка

Изделие «Нашествие», крейт nashestvie

  1. Ощущение от игрыM~30 минпремиум
  2. Кривые плавностиM~30 минпремиум
  3. ТвиныM~25 минпремиум
  4. Сглаживание без привязки к FPSM~25 минпремиум
  5. Тряска экранаM~25 минпремиум
  6. Хитстоп и вспышкаM~25 минпремиум
  7. Анимация кадрамиM~30 минпремиум
  8. Автомат анимацииM~30 минпремиум
  9. ЧастицыM~25 минпремиум
  10. ЗвукM~25 минпремиум
  11. Пул и волныM~25 минпремиум
  12. Босс: нашествиеMS~80 минпремиум

Инерция: физика на тяжёлом джойстике

Изделие «Метеор», крейт meteor

  1. КинематикаM~30 минпремиум
  2. Явный и полунеявный ЭйлерM~30 минпремиум
  3. Интегрирование ВерлеM~30 минпремиум
  4. Силы и массаM~30 минпремиум
  5. СопротивлениеM~30 минпремиум
  6. Поворот и тяга по носуM~30 минпремиум
  7. Заворот экранаM~30 минпремиум
  8. ИмпульсыM~35 минпремиум
  9. Разделяющая осьM~30 минпремиум
  10. Хеш-сеткаM~30 минпремиум
  11. ТуннелированиеM~35 минпремиум
  12. РасколM~30 минпремиум
  13. ГравитацияM~30 минпремиум
  14. Босс: метеорMS~80 минпремиум

Понятия курса

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

Зал закрыт: что такое игра

  • Зал закрытЧто делает автомат игрой: правила, цель, обратная связь, добровольность и магический круг. Почему игру делают и числами, и руками, и как устроен курс.урок 1 · Зал закрытопираются: урок 2
  • Первое окноBevy у себя: шаблон komet-template, cargo run, окно, камера и белый квадрат. App, DefaultPlugins и MinimalPlugins, система и расписание; почему первая сборка долгая.урок 3 · Первое окноопираются: урок 4
  • Стенд без окнаКак курс проверяет игру без окна: MinimalPlugins, app.update(), время вручную через TimeUpdateStrategy и запрос в тесте. Что проверяет раннер, а что ты смотришь у себя.урок 4 · Стенд без окнаопираются: урок 5
  • MDA и основной циклМеханика, динамика и эстетика на одном автомате; основной цикл «действие, отклик, решение» и восемь видов удовольствия.урок 2 · MDA и основной циклопираются: урок 3

Первый автомат: цикл и ECS

Векторы: геометрия для игры

Сок: отклик и полировка

  • Автомат анимацииСостояния анимации пушки: покой, движение, выстрел, обломки; приоритеты переходов и клип, который доигрывается.урок 38 · Автомат анимацииопираются: урок 39
  • Анимация кадрамиСпрайт-лист и атлас, клип как данные, номер кадра по времени по кругу и до последнего кадра.урок 37 · Анимация кадрамиопираются: урок 38
  • ЗвукЗвук как сообщение: что сыграть, как высоко и как громко; разброс высоты против пулемётной трели и громкость по расстоянию.урок 40 · Звукопираются: урок 41
  • Кривые плавностиEase-in, ease-out, кубическая, back и elastic: доля времени становится долей пути; почему линейное движение выглядит мёртвым.урок 32 · Кривые плавностиопираются: урок 33
  • Ощущение от игрыОтклик в реальном времени, симулированное пространство и полировка по Свинку; тот же тир сухим и живым. Первый этап «Нашествия»: пушка и строй.урок 31 · Ощущение от игрыопираются: урок 32
  • Пул и волныПул объектов против создания и удаления, волны врагов из таблицы и строй, который с каждой волной быстрее.урок 41 · Пул и волныопираются: урок 42
  • Сглаживание без привязки к FPSПочему lerp(a, b, 0.1) каждый кадр зависит от частоты кадров и как доля 1 - exp(-k·dt) это чинит; камера за пушкой.урок 34 · Сглаживание без привязки к FPSопираются: урок 35
  • ТвиныТвин как данные на сущности: начало, конец, длительность, кривая, задержка и цепочки; одна система играет все твины.урок 33 · Твиныопираются: урок 34
  • Тряска экранаТравма вместо силы удара, смещение как квадрат травмы, шум вместо случайных чисел и таяние по настоящим часам.урок 35 · Тряска экранаопираются: урок 36
  • Хитстоп и вспышкаЗамирание игры на долю секунды после удара: пауза игрового времени, отсчёт по настоящему, вспышка на месте попадания.урок 36 · Хитстоп и вспышкаопираются: урок 37
  • ЧастицыЭмиттер, разброс угла и скорости с сидом, время жизни и цвет, который остывает к прозрачному.урок 39 · Частицыопираются: урок 40
  • Босс: нашествиеТир целиком с соком: бомбы, тарелка, жизни и конец игры; один выключатель сока и плейтест без сока и с соком.урок 42 · Босс: нашествиеопираются: урок 43

Инерция: физика на тяжёлом джойстике

  • ГравитацияОбратные квадраты, смягчение у центра и круговая орбита вокруг звезды.урок 55 · Гравитацияопираются: урок 56
  • Заворот экранаТор: сшитые края, кратчайшее расстояние через край и копии тела у границы.урок 49 · Заворот экранаопираются: урок 50
  • ИмпульсыСохранение импульса, упругий и неупругий удар, коэффициент восстановления: столкновение камней без слипания.урок 50 · Импульсыопираются: урок 51
  • Интегрирование ВерлеПозиции без скорости, связи между точками и верёвка, которая не растягивается.урок 45 · Интегрирование Верлеопираются: урок 46
  • КинематикаПозиция, скорость и ускорение; уравнения движения при постоянном ускорении. Первый этап «Метеора»: корабль с тягой, который летит, пока его не остановишь.урок 43 · Кинематикаопираются: урок 44
  • Поворот и тягаУгол, угловая скорость и момент инерции; тяга идёт по носу, а полёт остаётся прежним.урок 48 · Поворот и тяга по носуопираются: урок 49
  • РасколКак разделить камень на два, не потеряв импульс, и почему случайность идёт от сида.урок 54 · Расколопираются: урок 55
  • Силы и массаВторой закон Ньютона и сумма сил как накопитель: законы складывают силы, масса решает, что из этого выйдет.урок 46 · Силы и массаопираются: урок 47
  • СопротивлениеПредельная скорость и затухание, которое не зависит от частоты кадров: почему экспонента, а не 1 - k·dt.урок 47 · Сопротивлениеопираются: урок 48
  • Теорема о разделяющей осиСтолкновение выпуклых многоугольников: оси рёбер, тени на осях и вектор выталкивания.урок 51 · Разделяющая осьопираются: урок 52
  • ТуннелированиеБыстрая пуля пролетает сквозь камень между кадрами: момент касания движущегося круга и подшаги.урок 53 · Туннелированиеопираются: урок 54
  • Хеш-сеткаШирокая фаза: почему перебор пар не тянет 500 камней, как сетка их отсеивает и когда лучше квадродерево.урок 52 · Хеш-сеткаопираются: урок 53
  • Явный и полунеявный ЭйлерКак шагать по времени: почему у явного Эйлера растёт энергия и расползается орбита и почему перестановка двух строк это чинит.урок 44 · Явный и полунеявный Эйлеропираются: урок 45
  • Босс: метеорШутер целиком: волны камней, раскол, звезда, тарелка, жизни и меню; плейтест Гоши.урок 56 · Босс: метеор