Краткая экскурсия в мир вечерних сходок
Если вдруг вы еще не посвящены в тайный мир айтишных посиделок, знайте, у программистов есть традициякаждый год 31 декабря собираться раз в неделю на нейтральной территории восполнять нехватку общения, делиться эмоциями и своими переживаниями.
Кто-то может подумать, что это сходка алкоголиков, но нет, тут мы обсуждаем перспективы российского геймдева и пытаемся немного предсказать будущее IT.Помните, алкоголь вредит вашему здоровью.
Если вдруг вы еще не посвящены в тайный мир айтишных посиделок, знайте, у программистов есть традиция
Опять же, цены на психотерапевта идут только в гору…
Кто-то может подумать, что это сходка алкоголиков, но нет, тут мы обсуждаем перспективы российского геймдева и пытаемся немного предсказать будущее IT.
❤3🔥2🤮1
Фантастические нетворкинги и места, где они обитают
С одной стороны, может показаться, что все эти встречи и активности чистой воды веселье, и ничего более, но правда уже где-то близко, господа бизнесмены. В синопсисе к сегодняшнему разгону про сообщество, я обещал рассказать и про прагматическую сторону.
Никогда не знаешь с кем ты познакомишься, и к чему это приведет. Всегда полезно иметь парочку знакомых в финтехе. Поверьте, рано или поздно, они затащат вас в свою компанию. Получать рекрутинговый бонус всегда приятно, а знать, что теперь, с тобой работает прекрасный, уже знакомый человек — вдвойне.
По своим наблюдениям, я очень часто вижу, что в IT нет случайных людей. Много знакомых, родственников. Нет-нет, я не хочу сказать, что у программистов сплошной блат, отнюдь, напротив, это очень открытое пространство, в котором ценят, в первую очередь за скилл, но никак не за связи.
Как бы, на первый взгляд, ни казалось, что IT это про компьютеры и интернет, в реальности, на первом месте всегда стоят люди. В поп-культуре программист — неряха, чаще всего, нелюдим, но, на деле, это самый обычный человек, со своими интересами и ценностями.
Мы рады окружать себя интересными людьми, с которыми нам будет не только комфортно работать, но и просто приятно поговорить. Мы любим активно проводить время в хорошей компании. Собственно, локально комьюнити для этого *(и не только)* и создают. И я рад быть его частью.
С одной стороны, может показаться, что все эти встречи и активности чистой воды веселье, и ничего более, но правда уже где-то близко, господа бизнесмены. В синопсисе к сегодняшнему разгону про сообщество, я обещал рассказать и про прагматическую сторону.
Никогда не знаешь с кем ты познакомишься, и к чему это приведет. Всегда полезно иметь парочку знакомых в финтехе. Поверьте, рано или поздно, они затащат вас в свою компанию. Получать рекрутинговый бонус всегда приятно, а знать, что теперь, с тобой работает прекрасный, уже знакомый человек — вдвойне.
По своим наблюдениям, я очень часто вижу, что в IT нет случайных людей. Много знакомых, родственников. Нет-нет, я не хочу сказать, что у программистов сплошной блат, отнюдь, напротив, это очень открытое пространство, в котором ценят, в первую очередь за скилл, но никак не за связи.
Как бы, на первый взгляд, ни казалось, что IT это про компьютеры и интернет, в реальности, на первом месте всегда стоят люди. В поп-культуре программист — неряха, чаще всего, нелюдим, но, на деле, это самый обычный человек, со своими интересами и ценностями.
Мы рады окружать себя интересными людьми, с которыми нам будет не только комфортно работать, но и просто приятно поговорить. Мы любим активно проводить время в хорошей компании. Собственно, локально комьюнити для этого *(и не только)* и создают. И я рад быть его частью.
👀2❤1🔥1
Несмотря на то, что популярность метавселенных уже давно сошла на нет, интерес к 3D в веб-технологиях, и к Three.js в частности, только растёт. За последние годы 3D серьёзно изменило индустрию веб-приложений. Сайты стали красочнее, интерактивнее, а главное, они стали приковывать к себе много внимания: получают интернет-награды, о них пишут в СМИ, такие сайты становятся трендсеттерами.
Поэтому я постараюсь не только похвалиться, какие мы молодцы и рассказать про нашу маленькую метавселенную, но и охватить феномен Web 3D в целом. А на закуску я поделюсь небольшими советами по Three.js, которое я сумел вычленить за год его активного использования.
Графики взял из Google Trends.
Поэтому я постараюсь не только похвалиться, какие мы молодцы и рассказать про нашу маленькую метавселенную, но и охватить феномен Web 3D в целом. А на закуску я поделюсь небольшими советами по Three.js, которое я сумел вычленить за год его активного использования.
Графики взял из Google Trends.
👍6❤2
Верните мой 2007
Наверняка вы уже видели множество лэндингов, использующих 3D в качестве метода повествования. О них, сегодня, речь, увы, не пойдёт. Мы поговорим о более экспериментальной категории — онлайн-играх в вебе. Кроме того, так как моя компетенция пока что ограничивается исключительно Three.js, о сборках Unity под HTML5 и прочих игровых движках мы сегодня умолчим.
Помните Танки Онлайн? Казалось бы, бум веб-игр остался в 2009, и если речь идет о прибыльном многопользовательском проекте, то в голову, первым делом, приходит полноценная AAA игра. Но неожиданная популярность IO игр в 2019 году показывает, что интерес к такому типу развлечений ещё остался.
Я подобрал пару популярных игр описываемого формата для ознакомления:
https://crazybattle.fun/
https://narrow.one/
Хоть они и не могут похвастаться продвинутой графикой или уникальным геймплеем, всё равно в силах формировать целые комьюнити вокруг себя. Они интересны далеко не самому узкому кругу лиц, и кроме того, прекрасно монетизированы.
С развитием веб-технологий относительно 3D (например, WebGPU), я уверен, что скоро нас ждет очередной скачок интереса к веб-проектам. А при удачном стечении обстоятельств, возможно, нового поколения.
Наверняка вы уже видели множество лэндингов, использующих 3D в качестве метода повествования. О них, сегодня, речь, увы, не пойдёт. Мы поговорим о более экспериментальной категории — онлайн-играх в вебе. Кроме того, так как моя компетенция пока что ограничивается исключительно Three.js, о сборках Unity под HTML5 и прочих игровых движках мы сегодня умолчим.
Помните Танки Онлайн? Казалось бы, бум веб-игр остался в 2009, и если речь идет о прибыльном многопользовательском проекте, то в голову, первым делом, приходит полноценная AAA игра. Но неожиданная популярность IO игр в 2019 году показывает, что интерес к такому типу развлечений ещё остался.
Я подобрал пару популярных игр описываемого формата для ознакомления:
https://crazybattle.fun/
https://narrow.one/
Хоть они и не могут похвастаться продвинутой графикой или уникальным геймплеем, всё равно в силах формировать целые комьюнити вокруг себя. Они интересны далеко не самому узкому кругу лиц, и кроме того, прекрасно монетизированы.
С развитием веб-технологий относительно 3D (например, WebGPU), я уверен, что скоро нас ждет очередной скачок интереса к веб-проектам. А при удачном стечении обстоятельств, возможно, нового поколения.
❤3👀1
Как мы докатились до жизни такой?
Внутри Мерка появилась острая необходимость овладеть искусством интеграции трехмерных сцен. Всё чаще в проектах требовалось 3D в том или ином количестве, а кроме исключительно просветительских посылов перед нами стояли и более прагматичные задачи. Например, довольно грандиозная задача по созданию, пускай и небольшой, но все же собственной метавселенной ✨
Внутри Мерка появилась острая необходимость овладеть искусством интеграции трехмерных сцен. Всё чаще в проектах требовалось 3D в том или ином количестве, а кроме исключительно просветительских посылов перед нами стояли и более прагматичные задачи. Например, довольно грандиозная задача по созданию, пускай и небольшой, но все же собственной метавселенной ✨
🔥5❤1
Первый блин
Передо мной стояла исследовательская задача — найти инструмент, благодаря которому мы сможем обуздать киберпространство. Я нашел многообещающее решение, которое подходило нам по многим критериям: оно было open-source, имело встроенный аудио- и текстовый чат, поддерживало серверную физику, и что немаловажно, было написано на знакомом нам стеке: https://thirdroom.io
Одним из главных минусов стала слишком сложная архитектура — весь нетворкинг работал через Matrix (распределенная mesh-сеть), требовал NATS, что делало использование вместе с Docker и nginx невероятно проблематичным.
Передо мной стояла исследовательская задача — найти инструмент, благодаря которому мы сможем обуздать киберпространство. Я нашел многообещающее решение, которое подходило нам по многим критериям: оно было open-source, имело встроенный аудио- и текстовый чат, поддерживало серверную физику, и что немаловажно, было написано на знакомом нам стеке: https://thirdroom.io
Одним из главных минусов стала слишком сложная архитектура — весь нетворкинг работал через Matrix (распределенная mesh-сеть), требовал NATS, что делало использование вместе с Docker и nginx невероятно проблематичным.
❤5
Также мы рассматривали Mozilla Hubs для реализации метаверса. Но в связи с отсутствием встроенной возможности создания заскриптованных объектов и многих необходимых нам возможностей, от этого варианта мы отказались ещё на этапе совместного демо-созвона.
❤2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Как закалялась сталь
Спустя ещё немного времени было окончательно решено оставить попытки найти уже готовое решение и двигаться в сторону своего собственного. Дело осталось за малым — всего лишь подобрать стек.
В качестве системы рендеринга я выбрал Three.js и его React обертку.
“Easy to learn - hard to master” — именно так можно описать путь обучения. Первую демку я смог собрать буквально за один вечер
На видео можно увидеть наличие физики, в роли модели физического мира выступала библиотека Rapier, выбрали мы её, потому что у неё довольно прозрачные концепты. Кроме того, пакет поставляется в виде WASM, что выражается в большом приросте производительности относительно аналогичных решений на JS.
Спустя ещё немного времени было окончательно решено оставить попытки найти уже готовое решение и двигаться в сторону своего собственного. Дело осталось за малым — всего лишь подобрать стек.
В качестве системы рендеринга я выбрал Three.js и его React обертку.
“Easy to learn - hard to master” — именно так можно описать путь обучения. Первую демку я смог собрать буквально за один вечер
На видео можно увидеть наличие физики, в роли модели физического мира выступала библиотека Rapier, выбрали мы её, потому что у неё довольно прозрачные концепты. Кроме того, пакет поставляется в виде WASM, что выражается в большом приросте производительности относительно аналогичных решений на JS.
❤5
This media is not supported in your browser
VIEW IN TELEGRAM
В качестве сетевых библиотек были выбраны geckos.io для общения по UDP через WebRTC для быстрого обмена пакетами. В них мы передаём текущее состояние мира.
А для тех событий, в получении которых мы должны убедиться, я выбрал socket.io — одна из самых популярных библиотек для общения по WebSocket для Node.js.
А для тех событий, в получении которых мы должны убедиться, я выбрал socket.io — одна из самых популярных библиотек для общения по WebSocket для Node.js.
🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Разработку самого 3D экспириенса мы вели волнами. Каждый раз зачатки метавселенной менялись разительно. Сначала мы добавили базовое отображение персонажа и его движение.
❤3
После этого порядок был такой:
− поэксперементировали с инстансингом;
− после, начали работать над пост-процессингом;
− поработали над коллайдерами и связанными событиями;
− интегрировали видео-материал;
- сделали пространственное аудио и систему привязки событий к анимациям.
Это еще не все 👇👇👇
− поэксперементировали с инстансингом;
− после, начали работать над пост-процессингом;
− поработали над коллайдерами и связанными событиями;
− интегрировали видео-материал;
- сделали пространственное аудио и систему привязки событий к анимациям.
Это еще не все 👇👇👇
❤3👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Далее завезли поиск маршрутов. Теперь можно было управлять роботом не только клавиатурой, но и мышью.
❤1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Я создал систему маркеров. Они показывают направление к предмету.
❤2👀1
Не обошлось и без экспериментов. Мы пробовали использовать рендеринг через WebWorker с помощью react-three-offscreen — это должно было помочь разгрузить UI-поток. Но из-за того что библиотека до сих пор находится в экспериментальной стадии, количество проблем совместимости не дало нам возможности использовать её.
Ещё мы попробовали отрендерить игру через WebGPU. Результат на скрине, и, как видите, не слишком удачный. WebGPU, увы, пока не поддерживает пост-процессинг.
Ещё мы попробовали отрендерить игру через WebGPU. Результат на скрине, и, как видите, не слишком удачный. WebGPU, увы, пока не поддерживает пост-процессинг.
❤4