Игра "Out of Insight" с Siberian Game Jam

Тема джема:  „Start with nothing”.


Страница игры на itch.io ← можно поиграть в браузере, но только на компьютере, мобильные устройства не поддерживаются.

Игра "Out of Insight" с Siberian Game Jam Gamedev, Gamejam, Арт, Инди игра, Длиннопост

Пустота. Чёрная пустота. Ничего не получается вспомнить. Но нужно вспомнить, пустота невыносима. Вперёд, вперёд, что-то мелькает на границе сознания. Хватать по крупицам, набирать смысл, цвет. Вспоминать. Что же произошло? Ладно, пока не важно. Пока нужно собирать себя, чтобы поймать инсайт. Собирать нужный цвет.


Игрок управляет бесформенной, бесцветной сущностью, которая летит сквозь коридоры подсознания, собирая цветные крупицы. Чтобы пробраться на следующий уровень, придётся собрать нужный цвет и не разбиться о препятствия. Управление в игре — только с клавиатуры, поэтому смартфоны и планшеты оказались не у дел.


Создание игры

На этом джеме к команде присоединился Скоба, специалист по программированию визуальных эффектов. Мэвен и Ника, к сожалению, принять участие не смогли, так что мы решили рискнуть и сделать игру в 3D, чего никогда раньше не делали (да, жизнь нас не учит).


Однажды, за несколько недель до джема, Дина нашла в интернете вот такую штуку. Очень просто: надо смешать указанный цвет из базовых цветов. Механика цветового смешивания показалась нам необычной. После нескольких обсуждений мы решили соединить её с горизонтальным скролл-шутером (от шутера там, правда, ничего не осталось). Так родилась концепция: летишь, собираешь нужные цвета, уворачиваешься от ненужных.


Поскольку из художников у нас осталась только Эви, мы позвали Оксану, а так же рассчитывали поискать прямо на джеме художника и 3D-моделлера. Артур с Анхелем не пришли к консенсусу по поводу движка, и Артур присоединился на этот джем к другой команде (они сделали шикарную игру про вендинговый автомат, который сражается с другими вендинговыми автоматами).


Подбить идею под тему оказалось легко. Дина придумала душераздирающую историю про человека, попавшего в кому, растерявшего всего себя и выбирающегося из глубин подсознания в реальный мир.

Игра "Out of Insight" с Siberian Game Jam Gamedev, Gamejam, Арт, Инди игра, Длиннопост

Софа и Ода как раз искали себе команду, и мы их усадили за наш стол. Поначалу дело шло с трудом, ведь многие участники команды видели друг друга впервые. К нашему счастью, Оксана взяла на себя роль арт-директора проекта и успевала рисовать, делать наброски, делить задачи между художниками и всем помогать.

Игра "Out of Insight" с Siberian Game Jam Gamedev, Gamejam, Арт, Инди игра, Длиннопост

Анхель и Скоба взялись за код. Скоба писал шейдеры, делал освещение и затенение, накладывал эффекты на модели и творил прочую шейдерную магию. Анхель привычно накидывал игровую логику на GDScript. Ничто не предвещало беды.


Довольно быстро мы сделали прототип, где персонаж летал, управлялся, собирал цветные пузыри и умирал от столкновений с препятствиями. Дело оставалось за малым: перекрашивать нашего бесформенного героя и определять, попал он в нужный цвет или нет. Анхель считал, что такая тривиальная задача, как смешать несколько цветов, давно решена, и решение легко будет найти на просторах интернета. 2019 год же, правда?


Большая. Ошибка.

Оказалось, что решения нет. Ну, на самом деле как бы есть, но прямой синтез цвета нам не подошёл — ни аддитивный, ни субтрактивный. Хотелось, чтобы было так: жёлтый + синий = зелёный, красный + синий = фиолетовый, и так далее. Как на уроках рисования в школе учили. Выяснилось вот что: наиболее адекватный на сегодняшний день метод смешения цвета, кторый используют Krita и последние версии Photoshop — это так называемая модель Кубелки-Мунка. Она происходит из теории спектроскопии и описывает физическую модель преломления и отражения света реальными телами. Вот, например, научная работа, которая как раз применяет модель Кубелки-Мунка непосредственно к цветовому смешению.


Короче, после подробного изучения вопроса мы отказались от этой идеи и начали экспериментировать с более простыми моделями. Конечно, физику не обманешь, и получалось в любом случе не совсем то, что хотелось бы. Остановились мы на аддитивном синтезе в цветовой модели RYB (красный-жёлтый-синий). В ней хотя бы жёлтый с синим давали зелёный. Времени на эту задачу ушло гораздо больше, чем мы рассчитывали.


Второй проблемой стало определение попадания текущего цвета в целевой. Поскольку времени у нас было уже мало, игра просто считает декартово расстояние между точками в цветовом кубе. Это приводит к странностям. Дело в том, что человеческое зрение нелинейное. Например, два далеко друг от друга находящихся зелёных оттенка кажутся почти одинаковыми, в то время как два отличающихся на небольшую величину синих оттенка выглядят абсолютно разными. Желающие могут ознакомиться, к примеру, с этим материалом. Так что не важно, что вам кажется, важно, сколько процентов совпадения показывает игра 😜️.


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


А вот такие были бы кат-сцены, если б мы успели их сделать. Автор — Оксана Рар.

Игра "Out of Insight" с Siberian Game Jam Gamedev, Gamejam, Арт, Инди игра, Длиннопост

Мораль

- Если идея кажется банальной и легко реализуемой — проверь заранее, это может быть не так.

- Не делай процедурной генерации уровней, даже самой простой — это гораздо труднее, чем кажется. Гораздо труднее.

- Не зацикливайся на трудной задаче. Ищи обходной путь. Самый простой из адекватных. Какая разница, насколько хорошо работает алгоритм в игре, если игры нет?

- Godot Engine для 3D-проектов с сильно кастомизированным освещением подходит очень плохо — по сути, приходится отключать встроенную систему освещения и писать с нуля свою, так как встроенная не содержит никаких возможностей к расширению.

- Смешивать цвета трудно.


Итоги

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


Команда

Дина Грико - гейм-дизайн, нарратив, управление проектом, звуковое оформление

Оксана Рар - графика, организация работы художников

Анастасия „Ода” Купцова - 3D-моделирование

Эвелина „Эви” Майер - графика

Софа Егорова - графика

Анатолий „Анхель” Грико - программирование игровой логики

Антон „Скоба” Сердитов - программирование 3D-графики и эффектов

Дмитрий „Blazze Di” Алдагаров - музыка, звуковое оформление



Создай свою игру за 72 часа 1–4 апреля!


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


Тебя ждут:

• Бесплатное участие

• 72 часа на разработку

• 1200 участников в Discord

• Помощь специалистов из игровой индустрии

• 9 номинаций — в том числе за лучшее чувство юмора

• В жюри — эксперты из DevGAMM, tinyBuild, Playstation, CD Projekt RED

• Стримы игр и призы для победителей


Расскажи друзьям — пусть о джеме узнает тот, кто давно мечтал делать игры!


ᕕʕ •ᴥ•ʔ୨ Вперёд заявляться!

Игра "Out of Insight" с Siberian Game Jam Gamedev, Gamejam, Арт, Инди игра, Длиннопост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"