Программист создал аналог Club Penguin, где можно одновременно общаться как в Zoom и играть



    Full stack разработчик и основатель PushLabs Люк Барвиковски (Luke Barwikowski) рассказал пользователям Reddit о том, над чем он работал последние несколько месяцев. Барвиковски создал Banger.Digital party — это аналог Club Penguin для взрослых пользователей, где они могут одновременно общаться по видеосвязи и играть — управлять своими фигурками-аватарками, выполняя различные действия в виртуальном мире.

    Для пользователей портала Reddit Барвиковски пояснил, что проект Banger.Digital party было достаточно непросто придумать и реализовать. При его создании разработчик использовал Next.Js, PhaserJS для игрового мира, WebSockets, Kubernetes и многие другие технологии. Барвиковски пояснил, что с удовольствием ответит на любые вопросы пользователей по поводу технических деталей проекта и его стека. Их можно задавать в Reddit или на портале проекта.

    Барвиковски рассказал, что PhaserJS — это, вероятно, лучшая игровая среда JavaScript. Но ему было достаточно сложно создавать игру на Javascript, так как разработчику столкнулся с отсутствием надлежащих структур данных и жестких классов, что сподвигло его на необходимость изначально хорошо спланировать свой код.

    Единственное, что Барвиковски сделал не сам в этом проекте, была графика для игры. Он нанял художников из pixelsbyaxel. Дизайнеры за несколько часов сделали ему наброски для спрайтов и локаций.

    У онлайн игры есть ознакомительный режим без регистрации. Сейчас в Banger.Digital party можно общаться и играть бесплатно, если при регистрации указать код «reddit». Далее после тестирования и исправления ошибок, которые в настоящее время находят некоторые пользователи, разработчик планирует монетизировать этот проект. Но, по его объяснения, не факт что это произойдет.

    В браузерной игре Banger.Digital party можно присоединиться как к уже созданной «вечеринке», так и создать свою закрытую, выслав ссылки для присоединения к ней своим друзьям. Фишка в том, что новые видеочаты появляются в интерфейсе игры на основе того, как близко персонажи подходят друг к другу в самой игре. Таким образом, пользователю нужно просто пройтись по локациям и найти своих друзей на «вечеринке», чтобы поговорить с ними. В Banger.Digital party есть свои мини-игры, бары с выпивкой и охладительными напитками, различные места для общения со всеми своими друзьями.

    Перед входом в игру необходимо создать своего персонажа.


    Потом можно присоединить к ранее созданной игре и принять участие в «вечеринке», причем камеру не обязательно включать — можно использовать чат.



    Барвиковски уточнил, что каждый раз, когда пользователь создаете новую игру, платформа запускает новый игровой сервер. Для этого разработчик использовал Kubernetes и расширение Kubernetes под названием Agones, которое помогает вам управлять и использовать Kubernetes для игровых серверов. Барвиковски решил разместить проект в Google Cloud, поскольку, по его мнению, Kubernetes проще всего настроить в Google Cloud, чем в AWS. Вдобавок разработчик рассказал, что для поддержки большинства браузеров он использовал API под названием WebRTC.

    Пример игрового процесса Banger.Digital party


    См. также:

    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 6

      0
      Это же обычная онлайн браузерная игра, со свободным видом общения
        +4
        Ээ… SecondLife?
        — 3D-мир. (и физика тоже есть).
        — можно общаться (есть как групповые чаты так и IM, и то и другое — как текстом так и голосом, для текста даже автоперевод гуглом/bing)
        — можно кастомизировать аватарки… вообщем то как угодно.
        — можно показывать хоть презентации хоть вообще видео с Youtube (есть встроенный веб-браузер, может показывать динамическую картинку как на поверхностью объекта (такая себе динамическая текстура) так и 'развернуть' для пользователя)(правда если картинка динамическая — у каждого пользователя она будет своя)
        — просто аудиотрансляцию в определенном месте тоже можно прописать
        — открытый протокол. Официальные клиент — Opensource. Win/Lin/Mac (Есть некоторые ограничения которые желательно выполнять но если нам не нужны ссылки с офсайта и мы не делаем что-то совсем некрасивое вроде встроенных средств для нарушения копирайта или приватности других пользователей — делайте что угодно). Неофициальные есть в том числе для мобилок(правда там не все хорошо). Часть неофициальных это перепилы официального, часть — с нуля написаны. Библиотеки для создания ботов тоже есть (И это официально разрешено).
        — серверный скриптовый движок (который позволяет управлять внутримировыми объектами, общатся по https(и принимать запросы извне), управлять клиентами(с их согласия) клиентами (причем есть официальные способы а есть — требующие специальных функций на клиенте, почти неофициальные клиенты их поддерживают, но дающие значительно больше возможностей))
        — экономика прикручена для желающих. в смысле и на вывод денег — тоже.
        — есть полученный реверсом сервер
        — куча 3rd-party инструментария (за время работы проекта успели понаделать).
          0
          Забавно, кстати, что этот SecondLife шастает по чужим серверам. Например, по моим, и не стесняется сообщить об этом в User-Agent. Зачем именно он это делает я выяснить не смог.
            0
            А что за серверы?

            Почему то мне кажется что тут не LindenLabs вина(и вообще не факт что это не штатное поведение).

            По веб-серверам в смысле страницам для пользователя?
            Вполне может быть что кто-то из пользователей встроенный веб-браузер использует вот так (или вообще сделали (и продают) объект который использует этот сайт).
            Пример — ну например marketplace.secondlife.com/p/Easy-YouTube-TV-Video-Television/10361649 или marketplace.secondlife.com/p/Simple-YouTube-TV/10546187
            Запросы в этом случае будут с пользовательских IP и в заголовках там будет в том числе про Chrome.

            Если речь про что-то что можно как API использовать — ну так серверный скриптовый движок вполне умеет такие запросы, заголовки будут как описано в wiki.secondlife.com/wiki/LlHTTPRequest (и по этим данным техподдержка сможет эти объекты найти внутри мира но с учетом что там и legacy name есть — можно просто зайти направить этому товарищу сообщение или (лучше, потому что есть лимит на количество оффлайн-сообщений) notecard с вопросом а зачем это, но это именно владелец объекта а не создатель, владелец может реально не знать но хоть может сказать что это вообще такое и откуда взялось).
            И нет, сделать на этой базе web crawler или ддосилку врядли получится, там достаточно жесткие лимиты (а вот хабраэффект в принципе может быть если объектом со скриптом пользуется зачем то много людей)
          +1
          Барвиковски уточнил, что каждый раз, когда пользователь создаете новую игру, платформа запускает новый игровой сервер.

          Жесть. Интересно, а можно ли задудосить платформу, насоздавав игр? Ну, если в случае с монолитным сервером тут всё понятно, да и ограничение проще выставить, то тут на каждую новую игру создаётся по сути микросервер, и много таких микросерверов вытянет это ваше облако? А тариф, на котором будет висеть игра? Или можно будет вогнать в копеечку, если хостинг сам расширяется при увеличении нагрузки.
            0

            Наверняка лимит выставлен, а если нет, то будет после первого же "дудосера".

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое