Здравствуй, сообщество.
Прошёл год, с моего рассказал о нашей независимой браузерке: MMORPG без лишних деталей. За этот год произошло много разных событий, которые тебе, сообщество, не интересны — мало ли кто что в своей игрушке делает. Поэтому рассказывать о них я не буду.
Расскажу лучше о трёх вещах, которые тебя точно заинтересуют: о нашей статистике, оригинальном генераторе текста и общедоступном API.
Статистика
Поскольку ещё в начале разработки было решено стать максимально открытыми для всех, то, когда потребовалось собирать статистику, мы поступили просто: открыли доступ к ней всем желающим, включая игроков.
Лежит она вот тут: the-tale.org/statistics/ и обновляется раз в сутки. Единственный недостаток — все суммы выражены в игровой валюте, но правила перевода указаны, так что не пугайтесь.
Вот, например, график наших месячных доходов.
Приглашаем всех желающих присоединяться к просмотру реалити шоу «выживание независимых разработчиков в капиталистической реальности».
Для самых любопытных вот небольшая выдержка (на 26 марта 2015 года):
- монетизация запущена 4 августа 2013 года;
- всего 10000 регистраций;
- хоть раз заплатил каждый 10-ый пользователь;
- за всё время заработано около 10 000$ (после вычета комиссий и налогов);
- рекорд в месяц: 2500$;
- ARPPU большую часть времени колеблется около 5$;
Генератор текста
Наша игра, с большего, текстовая. Все действия героя и важные события описываются небольшими фразами в его журнале (то, что происходит прямо сейчас) и дневнике (недавние важные события). На текущий момент у нас 433 уникальных типа фраз на все случаи жизни.
Чтобы не мучать игроков однообразным контентом, понадобилось реализовать продвинутый шаблонизатор текста, учитывающий зависимости слов и их морфологические признаки.
Продемонстрировать его работу лучше всего на примере.
В зависимости от значений переменных, вот такой шаблон: Вчера [mob] [укусил|mob] [hero|вн].
Может стать как фразой: Вчера гиена укусила Халлра.
Так и: Вчера светлячки укусили привидение.
Вчера
— обычный текст.[mob]
— переменная, вместо которой подставится название монстра.[укусил|mob]
— слово, зависимое от переменной, часть его свойств будет изменяться в зависимости от свойств названия монстра (например, число). Генератор текста автоматически распознаёт свойства формы слова и пытается их сохранить (например, будет распознано и сохранено прошедшее время).[hero|вн]
— переменная, вместо которой подставится имя героя. Дополнительно указано, что имя должно быть в винительном падеже.
Примеры использования и подробное описание формата можно посмотреть на сайте игры — новые фразы придумываются и оформляются игроками.
Код генератора открыт и лежит на гитхабе: github.com/Tiendil/utg/
Кстати, наша база фраз общедоступна, поэтому если вдруг вам понадобится 100500 способов описать как один персонаж шинкует другого, то у нас они есть.
API
Мы постепенно делаем открытый API для работы с игрой, чтобы каждый желающий мог поэкспериментировать и, возможно, сделать что-нибудь полезное. Энтузиасты уже вовсю его используют для разработки мобильных клиентов, браузерных расширений и прочих интересных штук.
Приглашаем и вас присоединяться.
Автор: Tiendil