Наигрался я такой в Boneworks, и понравилась мне тема взаимодействия с миром. Какое все вокруг физичное и можно потрогать. Плюс крайне понравилась тема карабканья по поверхностями. Да и в целом тема карабканья в ВР мне нравилась. А все игры об этом ВР это лишь виртуальные скучные альпинистские дорожки.
И вот взял я 6 часов свободного времени каждый день, свою тян для работы над 3д моделями, и сели делать игру. При этом у обоих опыта 0 в этом было.
Сделали за пол года демку на 30 минут игры. Лишь первый уровень. Задача - залезть повыше и перейти на следующий уровень. Как залезть - вопрос уже другой. Как сможешь и как получится. Ломай окна, замки, или ищи ключи либо выступы на стенах, аль другие способы. Свобода действий, как говорится.
И какие уроки я извлек за это время?
- ВР и навороченная графика - малосовместимые вещи. Вырубай пост эффекты, тени, отражения, и подобно говно. Пускай лоу поли и становится красивым со всем этим, но 13ms на отрисовку кадра - не играбельно
- Делай ЛОДы для моделек. И настрой occlusion culling нормально. А то даже модельки на 100 полигонов замучают ГПУ, если их отрисовывается по 5к одновременно.
- Работа с физикой - это адский непредсказуемый пиздец. В любой момент разработки, руки или тело игрока может начать вести себя не так, как обычно. Или от касания стул может улететь у хуям. При разной частоте ВР шлема физика по разному себя ведет. Игра с физикой это круто, я все равно будут это делать. Но как же это запарно, ужас
- Оптимизация скриптов. Это пункт на целую статью. Как стоит кэшировать переменные, не перебирать объекты каждый кадр, пореже вызывать функции физики, и многое-многое другое. Но в целом с этим проблем у меня не было. 1мс на все скрипты вместе взятые - вроде довольно хорошо
- Сделать реалистичный и одновременно удобный для игры левел дизайн - невозможно. Реалистичный интерьер не подходит для карабканья. А прикольные препятствия не выглядит реалистично. По итогу приходится сначала сидеть на одном стуле (делать интерьер), а потом садится на второй (раскидывать предметы так, чтобы они сформировали препятствия). Получился баланс
- Делать скрипты лучше модульными и минимально зависимыми от друг друга. Чем больше у них связей - тем сильнее получается спагетти код. И тогда модифицировать/расширять код становится сложнее, не зацепив другие механики. К счастью, я успел понять и отрефакторить это раньше, чем это стало проблемой
- Разработка ВР игры про физику - слишком нишевое дело. Я задал на форумах 23 вопроса. Мне ответили только на 1 из них. Нагуглить решение проблем невозможно. Ибо слишком специфичные они. Так что при разработке чего-то необычного приходится надеяться только на себя
Какой мог итог? Я выгорел за эти пол года. Не из-за самого процесса разработки. Мне нравится кодить. Но меня без смазки ебет физический движок и оптимизация графики.
Я могу месяц не трогать физику, и утром она может сказать "иди нахуй, теперь руки будут иметь в 3 раза меньше скорости, а крутится в 20 раз быстрее". Либо движущиеся объекты начали двигаться рывками. А вчера вечером все работало
Либо кодишь себе фичи спокойно, а потом хуяк - теперь у нас проседания ФПС каждые 4-10 секунд. И даже откатив код на версию месячной давности - это все равно здесь. Знали бы вы, как я уже заебался с этим. Мне нужно взять отпуск
Теперь я хочу просто доделать демку, дополировать до играбельного состояния. Может релизнуть её как бесплатную игру. Либо за 100 рублей. А потом взять перерыв, и начать другой проект. Тоже физический ВР, с новыми знаниями, и начать с нуля опять пилить совсем другое.
Данная задумка мне просто перестала нравится.
Просто хотел поделится и пообщаться в комментах, кому было интересно. Как с психологом. Рад ответить на любой вопрос