Комментарии 26
Сколько времени у вас заняла работа над игрой?
+4
А можно подробнее о скрипте мониторинга? Какие данные собирает, что отправляет в смс?
+1
Скрипт обращается по http, попадает на Д1, Д1 делает запрос «все ли хорошо?» на Д2. Д2 отвечает, что все хорошо. Д1 дополнительно собирает свои данные по нагрузке и момент времени сбора данных. Все это отправляется скрипту в виде страницы.
Скрипт отправляет смс только в случае тревоги с указанием проблемного мира. После 3-х смс подряд оповещение прекращается.
Скрипт отправляет смс только в случае тревоги с указанием проблемного мира. После 3-х смс подряд оповещение прекращается.
+2
Хорошо, но мало :) С++ не часто встретишь…
Не совсем понятно, как вы масштабируетесь, у вас один сервер БД на всё вообще или только на один «мир»? Всей логикой заправляет С++? Насколько сложно вносить изменения в игру?
Расскажите пожалуйста про монетизацию проекта, с чего начинали, к чему пришли?
Ведете ли логи активности игроков или какие-то еще внутренние метрики? Если да, то как реализовали? С ботоводством как-то ведете борьбу?
Не совсем понятно, как вы масштабируетесь, у вас один сервер БД на всё вообще или только на один «мир»? Всей логикой заправляет С++? Насколько сложно вносить изменения в игру?
Расскажите пожалуйста про монетизацию проекта, с чего начинали, к чему пришли?
Ведете ли логи активности игроков или какие-то еще внутренние метрики? Если да, то как реализовали? С ботоводством как-то ведете борьбу?
+1
У каждого мира своя БД. БД не нагружена даже на треть, поэтому вопрос масштабирования БД не встает. Да, вся логика на С++.
Сложность внесения изменений зависит только от сложности кода и сложности самих изменений. Простое исправление ошибки делается минут за 5 (включая обновление файлов и перезапуск мира). Новые фичи вносятся, конечно, дольше. Для тестирования изменений у нас имеется специальный экспериментальный мир.
Про монетизацию, сбор данных активности игроков и выявление ботоводства/мультиводства я постараюсь рассказать в другой статье.
Сложность внесения изменений зависит только от сложности кода и сложности самих изменений. Простое исправление ошибки делается минут за 5 (включая обновление файлов и перезапуск мира). Новые фичи вносятся, конечно, дольше. Для тестирования изменений у нас имеется специальный экспериментальный мир.
Про монетизацию, сбор данных активности игроков и выявление ботоводства/мультиводства я постараюсь рассказать в другой статье.
+4
Для создания графических файлов я использовал библиотеку FreeImageВ игре есть на лету генерируемая графика? Или это для специальных инструментов для подготовки статики?
+1
Картинки симпатичные. Вы еще и художник или приятными на глаз они уже после монетизации стали?
+1
Могу посоветовать при сборке C++ кода под фряху юзать -march=[server cpu] -ffast-math -ftree-vectorize (в т.ч. и для FreeImage)
+1
Спасибо за статью. Хотелось бы, чтобы писали подробнее про каждую тему, тогда информация будет ценней.
1. Какое кол-во пользователей на домашней машине и на сервере?
2. Какие варианты для движка рассматривались помимо FastCGI и C++? Почему были отброшены?
3. Какая выбрана конфигурация сервера?
1. Какое кол-во пользователей на домашней машине и на сервере?
2. Какие варианты для движка рассматривались помимо FastCGI и C++? Почему были отброшены?
3. Какая выбрана конфигурация сервера?
+1
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 Тб.
2. Рассматривался описанный ISAPI. Не только рассматривался, но и был изначально реализован. Сменен на fastCGI из-за привязки к платформе(windows). Так же fastCGI при необходимости позволяет вынести Д1 на отдельный сервер. Разумеется, рассматривался CGI, но он медленнен и не имеет своей постоянной памяти.
3. В основном используются Core2Quad Q9550-3: 4x2.83GHz, 8 GB Ram, HDD: 2x250, хотя он избыточен по всем параметрам. Месячный трафик одного мира обычно не превышает 1 Тб.
+1
Расскажите пожалуйста еще о команде, сколько вас в ней и тп.
А еще интересно узнать об опыте, были ли до этого подобные проекты и тд.
А еще интересно узнать об опыте, были ли до этого подобные проекты и тд.
+3
Эх разрешение бы побольше
0
Судя по 10 миру сложность становиться излишней. Внимание вопрос: зачем? :)
+1
НЛО прилетело и опубликовало эту надпись здесь
Как организованы обновления версии игры? Сколько это занимает по времени? Как хранятся настройки игровой механики (стоимости наук, зданий, зависимости между ними)?
+2
Обновления происходят очень просто. По ftp на сервер закачиваются все изменившиеся файлы, мир на мгновение останавливается и все файлы заменяются новыми.
Иногда в обновлениях происходит расчет новых данных или перерасчет старых. В этом случапе после запуска новой версии движка мир висит еще несколько минут (иногда до 15 минут и более).
Все игровые данные хранятся внутри кода ввиде массивов и констант. Это необходимо для того, чтобы никто другой не могу эти данные менять (в первую очередь речь идет о владельцах лицензии на оперирование).
Иногда в обновлениях происходит расчет новых данных или перерасчет старых. В этом случапе после запуска новой версии движка мир висит еще несколько минут (иногда до 15 минут и более).
Все игровые данные хранятся внутри кода ввиде массивов и констант. Это необходимо для того, чтобы никто другой не могу эти данные менять (в первую очередь речь идет о владельцах лицензии на оперирование).
+1
> По ftp на сервер закачиваются все изменившиеся файлы, мир на мгновение останавливается и все файлы заменяются новыми.
Это как?
Что насчёт контроля версий в процессе разработки и для развёртывания на сервере?
И таки сколько людей участвуют в разработке и сколько могут вносить правки на сервере?
Это как?
Что насчёт контроля версий в процессе разработки и для развёртывания на сервере?
И таки сколько людей участвуют в разработке и сколько могут вносить правки на сервере?
+1
Я единственный программист логики (движка) в проекте. Системы контроля версий у нас нет.
+1
Спасибо за ответ.
Настоятельно рекомендую потратить несколько часов на изучение Mercurial (начать например отсюда) и жить счастливо )
Настоятельно рекомендую потратить несколько часов на изучение Mercurial (начать например отсюда) и жить счастливо )
+1
Будете ли вы так щедры, чтобы поделиться финансовыми показателями проекта?
Советуете ли другим идти по тому же пути? ))
Советуете ли другим идти по тому же пути? ))
+1
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Браузерная стратегия «Пути Истории». Архитектура и эволюция проекта