Как стать автором
Обновить

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

Сколько времени у вас заняла работа над игрой?
Один год до ОБТ, и уже два года после. ОБТ длилось год.
А можно подробнее о скрипте мониторинга? Какие данные собирает, что отправляет в смс?
Скрипт обращается по http, попадает на Д1, Д1 делает запрос «все ли хорошо?» на Д2. Д2 отвечает, что все хорошо. Д1 дополнительно собирает свои данные по нагрузке и момент времени сбора данных. Все это отправляется скрипту в виде страницы.
Скрипт отправляет смс только в случае тревоги с указанием проблемного мира. После 3-х смс подряд оповещение прекращается.
Хорошо, но мало :) С++ не часто встретишь…

Не совсем понятно, как вы масштабируетесь, у вас один сервер БД на всё вообще или только на один «мир»? Всей логикой заправляет С++? Насколько сложно вносить изменения в игру?

Расскажите пожалуйста про монетизацию проекта, с чего начинали, к чему пришли?

Ведете ли логи активности игроков или какие-то еще внутренние метрики? Если да, то как реализовали? С ботоводством как-то ведете борьбу?
У каждого мира своя БД. БД не нагружена даже на треть, поэтому вопрос масштабирования БД не встает. Да, вся логика на С++.
Сложность внесения изменений зависит только от сложности кода и сложности самих изменений. Простое исправление ошибки делается минут за 5 (включая обновление файлов и перезапуск мира). Новые фичи вносятся, конечно, дольше. Для тестирования изменений у нас имеется специальный экспериментальный мир.

Про монетизацию, сбор данных активности игроков и выявление ботоводства/мультиводства я постараюсь рассказать в другой статье.
Для создания графических файлов я использовал библиотеку FreeImage
В игре есть на лету генерируемая графика? Или это для специальных инструментов для подготовки статики?
Да, есть генерируемая графика. При создании мира создается климатическая карта и карта континентов. Раз в сутки создается политическая карта мира. Сейчас мы работаем над мобильной версией, где тайлы карты будут генерироваться на лету (только на этапе разработки).
Картинки симпатичные. Вы еще и художник или приятными на глаз они уже после монетизации стали?
В команде есть художник. Он присоединился к проекту еще до запуска и тоже работал на светлое будущее.
После монетизации графика не перерабатывалась.
Могу посоветовать при сборке C++ кода под фряху юзать -march=[server cpu] -ffast-math -ftree-vectorize (в т.ч. и для FreeImage)
Спасибо за статью. Хотелось бы, чтобы писали подробнее про каждую тему, тогда информация будет ценней.
1. Какое кол-во пользователей на домашней машине и на сервере?
2. Какие варианты для движка рассматривались помимо FastCGI и C++? Почему были отброшены?
3. Какая выбрана конфигурация сервера?
1. Домашние машины уже давно не используются в качестве серверов игры, сейчас все серведа в ДЦ. В мире пик пользователей был около 5000 (что не является пределом), одновременный онлайн 500 человек (онлайн за 15 минут). Если говорить о пределах сервера, то он не выявлен. Сейчас все сервера работают не более, чем на 10% процессорной мощности и не более 20% дисковой.
2. Рассматривался описанный ISAPI. Не только рассматривался, но и был изначально реализован. Сменен на fastCGI из-за привязки к платформе(windows). Так же fastCGI при необходимости позволяет вынести Д1 на отдельный сервер. Разумеется, рассматривался CGI, но он медленнен и не имеет своей постоянной памяти.
3. В основном используются Core2Quad Q9550-3: 4x2.83GHz, 8 GB Ram, HDD: 2x250, хотя он избыточен по всем параметрам. Месячный трафик одного мира обычно не превышает 1 Тб.
Расскажите пожалуйста еще о команде, сколько вас в ней и тп.

А еще интересно узнать об опыте, были ли до этого подобные проекты и тд.
Обязательно подробно расскажу в следующей статье. Данная статья посвящена технической части.
Эх разрешение бы побольше
Судя по 10 миру сложность становиться излишней. Внимание вопрос: зачем? :)
НЛО прилетело и опубликовало эту надпись здесь
У нас в игре тоже было такое правило.
Но оно существует не для того, чтобы банить всех подряд, а для того чтобы было за что банить тех, кто действительно нарушает.
НЛО прилетело и опубликовало эту надпись здесь
Как организованы обновления версии игры? Сколько это занимает по времени? Как хранятся настройки игровой механики (стоимости наук, зданий, зависимости между ними)?
Обновления происходят очень просто. По ftp на сервер закачиваются все изменившиеся файлы, мир на мгновение останавливается и все файлы заменяются новыми.
Иногда в обновлениях происходит расчет новых данных или перерасчет старых. В этом случапе после запуска новой версии движка мир висит еще несколько минут (иногда до 15 минут и более).
Все игровые данные хранятся внутри кода ввиде массивов и констант. Это необходимо для того, чтобы никто другой не могу эти данные менять (в первую очередь речь идет о владельцах лицензии на оперирование).
> По ftp на сервер закачиваются все изменившиеся файлы, мир на мгновение останавливается и все файлы заменяются новыми.

Это как?

Что насчёт контроля версий в процессе разработки и для развёртывания на сервере?

И таки сколько людей участвуют в разработке и сколько могут вносить правки на сервере?
Я единственный программист логики (движка) в проекте. Системы контроля версий у нас нет.
Спасибо за ответ.

Настоятельно рекомендую потратить несколько часов на изучение Mercurial (начать например отсюда) и жить счастливо )
Будете ли вы так щедры, чтобы поделиться финансовыми показателями проекта?
Советуете ли другим идти по тому же пути? ))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории