30-го апреля после сытного обеда я сел и почесал голову: завтра намечается 1 мая, а в этот день в Новосибирске традиционно проходит широко известное культурное мероприятие — Монстрация.
Понятное дело, что никакой Монстрации в этот раз не предполагалось, в связи с карантином, а её автор — Артём Лоскутов — предложил всем уйти в онлайн:
Ну, что же, подумал я: онлайн, так онлайн. Почему бы и нет.
Недавно я посетил большую международную онлайн-конференцию в виртуальной реальности Lava Virtual World, где присутствовало почти тысяча человек. Вдохновившись этим примером я подумал: а что можно сделать за пару-тройку часов, чтобы завтра представить что-то рабочее и интересное для организации демонстрации в онлайн.
Работаю я в основном с Unity 3D, поэтому сначала возникла мысль использовать Photon Engine для быстрой реализации мультиплеерного взаимодействия. Но бесплатная версия у них очень ограничена по количеству участников, а ведь к нам на онлайнстрацию может внезапно прийти и тысяча человек.
Тогда было решено реализовать очень простой сценарий: мы делаем простую игровую сцену с простыми персонажами, а любой пользователь может оставить своё имя и сообщение, добавив себя к толпе демонстрантов.
На изображении ниже уже конечный результат.

Сделать простую сцену и инстанциировать настроенные префабы — это очень лёгкое дело. Самая сложная тут задача — это сделать web-api и базу данных, чтобы хранить и обновлять информацию об участниках. У меня уже есть проверенный путь, к которому мы прибегали, когда делали корпоративный портал дополненной реальности для Росатома: мы использовали NodeJS, базу данных MongoDB и платформу Heroku для быстрого развёртывания приложения. Этим же путём мы решили пойти и в этот раз.
В итоге, буквально через три с лишним часа на свет появилось приложение онлайн-демонстрации, которое я решил назвать Онлайнстрация. Конечно, приложение далеко от идеала, можно многое оптимизировать. Элементарно создание персонажей фактически устанавливает новый игровой объект на сцене, что очень неприятно для производительности. В идеале, если мы рассчитываем на количество пользователей от 500 и выше, то лучше реализовать все сущности, используя шаблон Entity Component System и его реализацию DOTS в Unity. То есть фактически это не рабочее приложение, а прототип.
Но для фана и демонстрации стека технологий — вполне сойдёт, как нам кажется.
Понятное дело, что никакой Монстрации в этот раз не предполагалось, в связи с карантином, а её автор — Артём Лоскутов — предложил всем уйти в онлайн:
«Вирус лишил нас иерархий: теперь нет больших и маленьких монстраций, все оказались в первом ряду своей личной монстрации, где каждый лозунг — главный. Тотальная децентрализация. Монстрация становится Облачной, отражаясь облаком фотографий — своих главных визуальных артефактов, в облаке репортажей, постов, твитов и сториз».
Ну, что же, подумал я: онлайн, так онлайн. Почему бы и нет.
Недавно я посетил большую международную онлайн-конференцию в виртуальной реальности Lava Virtual World, где присутствовало почти тысяча человек. Вдохновившись этим примером я подумал: а что можно сделать за пару-тройку часов, чтобы завтра представить что-то рабочее и интересное для организации демонстрации в онлайн.
Работаю я в основном с Unity 3D, поэтому сначала возникла мысль использовать Photon Engine для быстрой реализации мультиплеерного взаимодействия. Но бесплатная версия у них очень ограничена по количеству участников, а ведь к нам на онлайнстрацию может внезапно прийти и тысяча человек.
Тогда было решено реализовать очень простой сценарий: мы делаем простую игровую сцену с простыми персонажами, а любой пользователь может оставить своё имя и сообщение, добавив себя к толпе демонстрантов.
На изображении ниже уже конечный результат.

Сделать простую сцену и инстанциировать настроенные префабы — это очень лёгкое дело. Самая сложная тут задача — это сделать web-api и базу данных, чтобы хранить и обновлять информацию об участниках. У меня уже есть проверенный путь, к которому мы прибегали, когда делали корпоративный портал дополненной реальности для Росатома: мы использовали NodeJS, базу данных MongoDB и платформу Heroku для быстрого развёртывания приложения. Этим же путём мы решили пойти и в этот раз.
В итоге, буквально через три с лишним часа на свет появилось приложение онлайн-демонстрации, которое я решил назвать Онлайнстрация. Конечно, приложение далеко от идеала, можно многое оптимизировать. Элементарно создание персонажей фактически устанавливает новый игровой объект на сцене, что очень неприятно для производительности. В идеале, если мы рассчитываем на количество пользователей от 500 и выше, то лучше реализовать все сущности, используя шаблон Entity Component System и его реализацию DOTS в Unity. То есть фактически это не рабочее приложение, а прототип.
Но для фана и демонстрации стека технологий — вполне сойдёт, как нам кажется.