программист серверов и логики
0,2
рейтинг
6 марта 2014 в 11:59

Разное → MMORPG без лишних деталей



Здравствуйте, меня зовут Алексей и я независимый разработчик игр. Два года назад я уволился из Wargaming чтобы немного поэкспериментировать и сделать MMO игрушку, в которую мне было бы интересно играть. Со временем ко мне присоединилась пара замечательных людей — Александр и Елена Дедковы. Сейчас я кратко расскажу что получилось из этой затеи.

Про игрушку


«Сказка» — это многопользовательская браузерная Zero Player Game с действующей моделью сказочного мира.

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

Игрок может влиять на героя только косвенно: выбрать вариант выполнения задания, указать его предпочтения (например, с каким NPC он будет дружить, какой город считать родным) и способности. Кроме того, от действий игрока зависит характер героя: представления о чести, миролюбие.

Задания для героев не берутся из воздуха, а выдаются NPC, состоящими в советах городов. У советников в этом свой интерес — они борются за власть. От результатов выполнения каждого задания зависит изменение влияния участвующих в нём NPC. Советники, которым помогают герои, укрепляют свои позиции, те же, которым герои мешают, со временем теряют своё влияние и покидают игру.

От советников зависит экономика городов и их расовый состав. Сами же города (и другие строения) влияют на карту мира. За счёт этого она всегда изменяется: на месте равнин появляются горы, засушливые пустыни сменяются болотами.

В игре присутствует политика — игроки голосованием принимают законы, влияющие на мир игры. Можно переименовывать города, заключать торговые сделки и делать другие интересные вещи. Наличие гильдий придаёт политической жизни дополнительную остроту.

Благодаря самостоятельности героев за игроком остаются только действительно важные действия, что существенно сокращает время, необходимое для «нормальной» игры и управления судьбами мира. Желающие же большего участия могут серьёзно взяться за политику и вести диспуты с другими игроками.

Кроме интересного геймплея в игре присутствует оригинальный мир, который мы всячески холим и лелеем (в основном этим занимаются Саша и Лена). Знакомятся с ним игроки через отрывки рассказов легендарных личностей, например:

такие
…Ты уверен, о умнейший из самых глупых представителей своей расы? Ты хочешь купить язвенный гиматий?.. А цену ты себе представляешь?.. Что?! Если бы у меня не было этого плаща, то я бы так и сказал, уж поверь мне, Каиниллину. У меня есть всё. Да только язвенный гиматий – вещь, мягко говоря, на любителя. Но, коль скоро ты настаиваешь… Прошу. Взгляни на эту вещицу…

Но-но! Я, безусловно, терпим к разным и многим вещам в жизни. Иначе я бы не жил в городе, где количество эльфов обратно пропорционально разным идиотам из разных рас. Но всё же мне не хотелось бы, что бы тебя тошнило в моей, заметь, свежевымытой лавке…

Прощаю великодушно. Мало того, я понимаю твои чувства. Язвенный гиматий, плащ из кожи язвомора, покрытой мерзкими коростами – это, на внешний вид, редкая дрянь. Иногда даже, в сырую погоду, эта кожа продолжает источать нечто отвратное, похожее на… Фу. Даже говорить не хочется. Но, я так понимаю, тебе порекомендовали этот плащ, как отличную защиту? Что ж, вещь, безусловно, полезная. Если ты достаточно… не брезглив. Будешь брать?..
Купец Каиниллин «Торг с путешественником»

или такие
Шёл я как-то в город орков… Да не знаю я, как он сейчас называется, переименовали… Песок вокруг, ночь, прохладно… Да, в пустынях, что б ты знал, ночами холодно! Молодёжь… И тут откуда ни возьмись появляется этакая человекоподобная горилла лысая. В одних штанах из кожи, на поясе высушенные человеческие головы… Знаешь, такие как бы скукожившиеся до размера кулака? Почерневшие?.. Чего это у тебя булькает? Нормально себя чувствуешь?.. Ладно. Так вот. Ростом полтора меня. На руках когти, что твои серпы. Морда оскаленная, и по зубам видно — не травоядное оно. Только я сталь из ножен вытянул…

Единственный раз Переяр пожалел, что на охоту пошёл. Потом я узнал — шайтан на меня налетел. Он мне первым ударом обе ноги перебил, сволочь. Вторым кишки мне выпустил. Я, перед тем как кончиться, успел ещё увидеть, как они этаким фонтаном мясным взлетают… Ну кто-кто? Кишки!.. Да мои! Ну чьи ещё-то?.. Что!? Я, Переяр, вру?! Ангел мой, хранитель, к жизни меня вернул. Да я, что б ты знал, шайтана этого, бестию, на следующий день по следам его догнал. Вон видишь в банке что-то заспиртовано? Угадаешь что?…
Из бесед у камина со старым Переяром

И, конечно, за время существования игрушки у нас сформировалось небольшое, но дружное сообщество (о работе с ним я тоже писал), которое нам всячески помогает (спасибо вам большое, сказочники и сказочницы). Присоединяйтесь :-)

Несвязный набор интересных фактов


  • разработка заняла 9 месяцев вечернего прототипирования + 2 года фултайм работы одного программиста;
  • игрушка полностью написана на Python (в качестве веб-фреймворка используется Django);
  • за 2 года разработки был 41 релиз, что составляет примерно одно обновление в 2-3 недели;
  • около половины кода составляют тесты (их больше 3000);
  • «чистый» код (без тестов и миграций) занимает 40к строк или 1.5 мегабайта;
  • код игры постепенно выкладывается под BSD лицензией, со временем будет открыт весь (список выделенных библиотек можно посмотреть, например, тут), сейчас это генераторы имён, карты, текста, квестов;
  • на текущий момент в игре 2400 зарегистрированных игроков, из них 450 активных, 90 подписчиков;
  • около 30% игроков в игру привели друзья;
  • с момента включения платежей (август 2013) мы заработали 1800$ :-)
  • за всю историю платило 190 игроков (8% от всех);
  • средний платёж: 5$;
  • больше 60% дохода составляет подписка;
  • на разработку за 2 года ушло примерно 1500$ (еда и жильё сюда не включены).

И ещё немного текста


Целью разработки было создание оригинальной игрушки и, по возможности, её монетизация. Поэтому сейчас мы стоим на распутье: оставлять игру как хобби или продолжать развивать её не сбавляя темп — идей ещё много.

Нам, конечно, очень хочется продолжать, но для этого нужна ваша поддержка. Поэтому этот пост можно считать не только рассказом об игре, но и приглашением к народному финансированию. Наша игровая валюта — печеньки — приходите ;-)

Также мы с радостью пообщаемся (а можем и посотрудничать) со всеми заинтересованными в технологиях и механиках, использующихся в игре.
Елецкий Алексей @Tiendil
карма
53,0
рейтинг 0,2
программист серверов и логики
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

Комментарии (34)

  • +9
    Чем то напомнило Годвиль.
    • +3
      Сейчас побродил по игрушке. Я бы сказал, что это копия Годвиля, только с интерактивной картой.
      • +4
        Это было бы очень удивительно если б zpg не была б похожа на годвиль. Тоже запустил — побегал. Очень не удобно то, что при начале игры тебе не предлагают выбор имени персонажа и указание почты, а всё это счастье вынесено в настройки.
    • +6
      Жанр один и тот же — zpg, от этого и сходство (тем более, что zpg вообще 3.5 игры на планету :-) )

      Из отличий:

      — изменяющаяся карта;
      — политика;
      — нелинейные задания;
      — проработанный характер героя.
  • –1
    Социальная авторизация? Мобильные клиенты?
    • +1
      Слышали о таких вещах, но пока не делали — в одного программиста сложно делать всё :-)
      Поэтому у нас сначала геймплей, а остальное по остаточному принципу.

      На написание мобильного клиента пытаемся сагитировать игроков. Есть несколько попыток но до конца ещё ни одна не дошла. Постепенно делаем API, можно пользоваться без ограничений.
  • +5
    Обожаю такой стиль графического оформления. Наверное как человек выращенный на PBem'ках.
  • +2
    Некоторое время игрался в эту сказку. Понравилась намного больше годвиля — карта и чуть большее влияние дают о себе знать. Удачи вашему проекту!
    • +1
      Спасибо, будем стараться!
  • +4
    Наверное игровой сервер уже под хабраэффектом — тормозит чуть менее чем жутко и уже нельзя создать нового героя…
    • 0
      Да, притормаживает. По мере сил будем его оживлять.
  • +4
    Взглянув на скрин заметался… Варлорды или все же первые версии Цивилизации? :)
    Спасибо, как спадет хаброэффект — загляну)
  • +2
    Для любопытных есть видео изменений карты мира за 5 месяцев.
    В статью не вставлял, так как не сильно эффектное (отображает все состояния карты на конец каждого часа с сентября по январь).

  • 0
    Ушли с работы, чтобы 2 года писать игру без расчёта на монетизацию?
    • +10
      Как-то так :-)

      Правда расчёт был на 1 год, потом просто втянулся.

      О монетизации конечно думал (куда ж без этого), но образцом была скорее разработка за донат (примерно так живёт Dwarf Fortress). Поэтому в игре в основном ставка на подписку идёт. Править механику в пользу монетизации не хочется.

      Ну и разработка игрушки была не единственной целью. Хотел поэкспериментировать с кодом, с генерацией всего чего можно и т.п. Так что эту авантюру можно обозвать творчески отпуском.
      • +3
        неплохо в Wargaming сотрудникам живётся, видимо :)
        • +7
          Тут немаловажную роль играет ещё и моя… ммм… бережливость :-)
          Очень не люблю покупать ненужные вещи, вроде новых телефонов и прочего.
          • +1
            +1
  • +2
    Дам очевидный совет — сожмите жс и цсс, это уменьшит вам цену на трафике, и сэкономит время на загрузку.
    • 0
      gzip-ом жмётся. Надо бы, конечно, их ещё и объединить в одну…

      Была ошибка в конфигурации CDN, статика раздавалась с сервака :-( Сейчас поправил, может полегче станет.
      • 0
        Да, я имел ввиду именно обьединение в один файл, ибо количество соединений уменьшится, и скорости должно прибавить.
  • +2
    С моим аккаунтом у вас что-то странное случилось: авторизоваться не получется, при попытке восстановить пароль пишет «На указанный email аккаунт не зарегистрирован», но при этом на указанный имейл периодически приходят сообщения о достижениях моего персонажа.

    Кстати, я тут тоже недавно zpg делал, вот чего получилось: elegar.ru/pockethero/ (учитывая несерьезность «проекта», надеюсь никто не сочтет это за самопиар))
    • 0
      Вышлите пожалуйста вашу почту мне в личку или на support@the-tale.org
      Посмотрю, в чём дело.

      Восстановление пароля требует точного совпадения почты (включая, заглавные буквы), возможно в этом проблема.
      Задача на более «умное» сравнение есть, но до неё пока руки не дошли.
      • 0
        Регистрозависимый адрес почты? о_О
        А зачем?
        • 0
          Доменная часть почты регистронезависима, но локальная может быть зависимой — в зависимости от конкретного почтового сервера. Т.е. xxx@mail.mail и XXX@mail.mail могут быть как одним адресом так и двумя.

          В таких случаях (особенно, когда не хочется тратить время) я стараюсь не рассуждать о том как лучше, а делать по стандарту.
  • +4
    Навеяно заголовком. ММО без лишних деталей:

    У нас есть пустой экран (потому что пейзаж — это лишние детали). На нем квадратики, просто подписаные МОБ (потому что их конкретный вид — тоже нафиг никому не нужная деталь). Задача игрока — кликать по квадратику. Визуально это делается через стрелочку, идентичную стандартному курсору мыши (потому что расы, настраиваемый внешний вид — это все лишние детали). За каждый клик получает +1 EXP и +1 УДЕ (условная денежная единица, потому что голд это или галактический кредит какой-нибудь — это тоже детали).

    Деньги расходовать не на что, опыт просто суммируется (потому что шмотки, система классов и скиллов — это тоже детали). Можно щелкать на своего моба, а можно на чужого — но тогда не дается EXP. Кроме того можно щелкать на чужой курсор (это же ММО, чужие курсоры видны), тогда у того игрока убывает EXP и УДЕ.

    Ну и разумеется должен быть чат. Спам-фильтр — это тоже ненужные детали, кстати.

    P.S.: и чтобы это все еще осталось классическим ММО — у курсора должны быть сиськи минимум пятого размера. Потому что это не лишняя деталь — это обязательная составляющая любой ММО.

    P.P.S.: извините за оффтоп
  • +2
    «2 года фултайм работы одного программиста»
    «на разработку за 2 года ушло примерно 1500$»
    Вот это круто ) 1500/24=62,5$ в месяц, хорошая ЗП ;)
  • +2
    ДЖВА ГОДА ЖДАЛ!1
    Спасибо, поиграю :)
  • +1
    Интересная игра! Самый главный критерий для меня — я разобрался в игре без открытия справки. Всё базовое очень понятно без объяснений!

    А так как в этом сообществе больше программистов, чем простых геймеров, то думаю вам стоило выложить в этом посте немного технической инфы по игры, как она устроена изнутри.
    • 0
      Про архитектуру я когда-нибудь в отдельном посте расскажу. Тем более, что хабраэффект показал, что ещё есть над чем работать.

      А на конкретные вопросы могу и в комментариях ответить.
  • 0
    Может, я что-то делаю не так, но геймплей оооочень медленный. Одно действие раз в пару часов.
    • +1
      По моему, смотря что считать действием. Помочь герою можно в любой момент, сколько хватает энергии. А в остальном — добро пожаловать в такой жанр, это да, не CoD ^)
  • 0
    Очень интересная идея, когда вижу такое — хочется сделать что-то подобное, но своё. Тем более, что кажется, будто игре чего-то не хватает…

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