Cryptovoxels — это виртуальный мир на блокчейне Ethereum. Следите за нами в Twitter или присоединяйтесь к Discord.
Cryptovoxels продвинулись до такой степени, что есть несколько крупных кусков работы, которые нужно решить. Я думаю, что в любом крупном проекте вы должны разделить свою работу между быстрыми победами (исправление ошибок, небольшие функции), которые вы развертываете часто, и большими кусками работы, которые вы не можете разбить за утро.
Это история о 3 больших долгосрочных ветках, которые у меня были для Cryptovoxels.
функция/видео
Эта функция добавляет элементы видео, возможность встроить мир в вашу посылку. Будь то предварительно записанное видео, которое вы размещаете в формате .mp4, или прямая трансляция в формате HTTP Live Streaming.
Эта ветвь на самом деле не заняла много времени, чтобы появиться, но я думал об этом в течение долгого времени. Есть несколько проблем, о которых следует помнить:
- Видео тяжело рендерится, поэтому вы можете делать только по одному за раз.
- Как вы делаете позиционный звук при воспроизведении видео
- Как должен работать пользовательский интерфейс
- Как мы проксируем видео (чтобы соблюдать ограничения на смешанное содержимое cors и HTTPS)
- Как обеспечить синхронизацию всех видео (чтобы несколько пользователей одновременно видели одно и то же видео)
Как оказалось, основную проблему синхронизации видео мы решили, включив HLS/он же потоковое видео. Если все смотрят прямую трансляцию, то она в основном синхронизирована.
Эту ветку я надеюсь выпустить сегодня.
функция/микрофон
Микрочат — такой ключевой элемент виртуального мира, что почти смущает то, что потребовалось так много времени, чтобы прийти к криптовокселям. Вы можете видеть других людей, почему вы не можете поговорить с ними. На самом деле несколько лет назад у меня работал голосовой чат в старых версиях SceneVR, поэтому я знаю, как это сделать, но реализация его для работы в Cryptovoxels столкнулась с кучей небольших неожиданных препятствий.
Надеюсь, это скоро произойдет. Позиционное аудио с голосовым чатом (и отключение звука, уважение конфиденциальности людей) и сопутствующие вещи (отключение звука для тех, кто находится в AFK), возможность блокировать людей. Для действительно хорошего голосового чата требуется много всего, основы отправки аудиопотока по WebRTC выполнены, все мелкие детали еще требуют времени.
Я подозреваю, что с этой веткой я просто быстро закончу это и разверну, а затем вернусь ко всем инструментам управления конфиденциальностью, что немного проблематично — если вы присоединитесь к миру, а кто-то ужасно ведет себя в голосовом чате, ваш единственный вариант будет заглушать весь мир, но надо с чего-то начинать.
функция/сценарий
Эта ветвь включала в себя множество экспериментов (я думал об использовании Lua в качестве языка сценариев на одном этапе), множество фальстартов и, наконец, хороший взлом.
Ключом к запуску этой ветки было решение, что все редактирование должно происходить в мире, что нет отдельной страницы для написания сценариев для посылки, вы просто добавляете модель .JS, и этот физический объект содержит сценарии. для вашей посылки.
Как только я это сделал, я быстро заработал пользовательский интерфейс и хранилище скриптов, после чего я мог приступить к фактическому запуску скриптов в изолированной среде. Теперь у меня все эти компоненты работают, ключевой отсутствующей частью является отражение изменений в мире для всех подключенных клиентов. Это включает в себя отправку различий, сгенерированных вашими сценариями, и отправку их через соединение через веб-сокет всем, кто находится поблизости от вашей посылки. Изначально мы можем просто отправлять изменения для всего мира всем подключенным клиентам, потому что у нас не будет столько скриптов, но, как и в случае с исходным кодом загрузки мира, который загружал весь мир, это начинают ломаться по мере того, как мы чеканим все больше и больше посылок.
Эта ветвь очень важна, потому что за скриптами скрывается множество функций (процедурное создание сцен, создание галерей, создание простых игр, упрощение транзакций ethereum) — так что я продолжу ломать эту, даже базовую (но безопасную) реализацию. будет хорошим местом для начала, будет интересно посмотреть, что люди построят с его помощью!
—
Cryptovoxels — это виртуальный мир на блокчейне Ethereum. Следите за нами в Twitter или присоединяйтесь к Discord.