UnnyNet: решение для быстрой интеграции чата, гильдий, ачивок и прочих социальных фич в вашу игру на Unity3d
Салют, котаны. В процессе разработки игр мы столкнулись с тем, что приходилось самим реализовывать раз за разом кучу второстепенного функционала. И с каждым новым проектом эти проблемы появлялись снова и снова. А хотелось бы чего-нибудь вроде...Battle.Net?! Как минимум, хотелось, чтоб у игроков был один общий аккаунт между всеми нашими играми. Затем можно навесить поверх этого систему друзей и кросс-чат. Дальше-больше.
Почитать про нас можно в прошлых статьях.
Для нашей последней игры Hero Masters мы начали работу над таким сервисом. Изначально технологически мы строили это дело вокруг технологий, с которыми раньше работали: consul.io для сервис дискавери, Rethinkdb как основное хранилище, небольшие резвые сервисы на node.js. В какой-то момент мы осознали, что разработчиков, которые сталкиваются с похожей проблемой, довольно много. Ведь хочется работать именно над игрой, а не тратить уйму времени на, конечно важные, но не кор фичи. Так и родился UnnyNet.
Как я уже сказал, основная идея была в том, чтоб дать разработчикам готовое решение для интеграции социальных фич в свои игры в пару кликов и не отвлекать их, собственно, от разработки самой игры.
Немного про технологии
Под капотом у нас Nakama от Heroic Labs. Эти парни как и мы прошли через Y Combinator и предоставляют интересное решение для гейм-девелоперов. Nakama написана на Go. Для вас, как разработчика, это не особо важно. Но если возникнут какие-то проблемы или вам нужно будет что-то допилить, то в коде легко разобраться и добавить необходимое. А сборка бинарника происходит одной командой ٩(◕‿◕。)۶
Также Nakama предоставляет возможность самим писать небольшие модули на Lua, если вам не хватает какого-то функционала из коробки.
Дополнительные сервисы у нас написаны на node.js.
Клиент на React.js.
Решение пока только для Unity3d (Android + iOS). Но работаем над возможностью встроить в WebGL/HTML5 игры.
Добавить плагин в ваш проект - дело пары минут:
Фичи
На данный момент есть чат, гильдии, ачивки, лидерборды, система друзей.
В чате разработчик может создать несколько различных каналов и задать картинку для них, если хочет.
Ачивки, в целом, похожи на оные и в других системах.
Разработчик может назначить тип ачивки (разовая, инкрементная и т.п) и количество очков в награду.
Лидерборды, собственно, тоже обычные:
Завезли небольшую кастомизацию. Пока можно менять лишь цветовую гамму. Но мы работаем над тем, чтобы предоставить возможность настроить дизайн в соответствии с оным в вашей игре.
Сотрудничество с PlayMaker
Недавно мы начали сотрудничать с тулзой для визуального программирования - PlayMaker .
Теперь интегрировать UnnyNet стало ещё проще!
Что дальше?
По фидбеку от разработчиков, которые уже попробовали UnnyNet, мы увидели, что людям очень нужна удобная система модерации чатов. На данный момент это задача номер 1 для нас. Работаем над системой разграничения прав. Админ игры сможет пользователям назначать роли с конкретными пермишеннами.
Заключение
На данный момент мы ищем небольшие инди команды, которые хотели бы опробовать продукт. Интересно ваше мнение, в какую сторону развивать сервис, какие фичи вы хотели бы увидеть следующими.