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