Насколько SpeedSim адекватно описывает движок oGame?

Обсуждение работы движка сервера. Ваши предложения по улучшению игры. Вопросы по интерфейсу и механике игры

Модератор: Gorlum

Ответить
Gorlum
Император Вселенной
Сообщения: 7526
Зарегистрирован: 13 июн 2009, 15:06
Контактная информация:

Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Gorlum »

Сабж
Gorlum
Император Вселенной
Сообщения: 7526
Зарегистрирован: 13 июн 2009, 15:06
Контактная информация:

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Gorlum »

Н-да. В рамах совместимости с оГеймом, полез читать алгоритмы боя на форум оГейма и в код спидсима. Так вот - похоже, они-таки симулируют каждый корабль! Я вот думаю - а надо ли оно такое реально?! Это ж памяти будет хавать немерянно! А как оно будет тормозить!!!

Или я чего-то не понимаю? Вообще, есть тут С-шники? Вот тут http://sourceforge.net/projects/speedsim/files/ лежит спидсим и его код. Может кто-нибудь посмотреть и сказать доходчиво - они симулируют бой по типам кораблей или по каждому кораблю отдельно? А то что-то я нихрена понять не могу...
AlexBlack
Старшина лазерной наводки
Сообщения: 63
Зарегистрирован: 13 июл 2010, 08:34

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение AlexBlack »

Gorlum писал(а):Это ж памяти будет хавать немерянно! А как оно будет тормозить!!!
А почему будет тормозить?

1) симулятор убрать из игры. Жалко, но ... симулируем в другом месте, на отдельном сервере, или еще как - например, в отдельный пакет, и на скачку выложить - симулятор оффлайн, на жабоскрипте :))
2) совершенно спокойно ставим бои в очередь. Если так вышло, что одновременно происходит сотня боев, кто-то узнает о результатах на полминуты позже. Ничего, потерпят.
3) весь скорострел кратен 5. Считаем по 5-кам вместо отдельных кораблей. Этакий компромисс между совсем дискретным рассчетом и совсем общим, по флотам в сумме.
4) поскольку в начале следующего раунда все корабли имеют полную броню и щиты, значит, хранить в массиве их параметры не требуется. Тогда я вообще не понимаю, почему должно тормозить - в цикле перебрать 10000 кораблей, однотипных, и посчитать кого убили для 4-процессорных Xeon'ов вообще не задача, а так... на миллисекунды.

короче, не знаю - но особых тормозов не вижу. Самое длительное - это запрос из базы, а их будет наверно 2 - перед собственно расчетом, получить флот атакующего и обороняющегося - если и не 2 (параметры кораблей еще получить по каждому типу, наверно), то в любом случае не больше, чем сейчас.
Изображение
Gorlum
Император Вселенной
Сообщения: 7526
Зарегистрирован: 13 июн 2009, 15:06
Контактная информация:

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Gorlum »

AlexBlack писал(а):
Gorlum писал(а):Это ж памяти будет хавать немерянно! А как оно будет тормозить!!!
А почему будет тормозить?

1) симулятор убрать из игры. Жалко, но ... симулируем в другом месте, на отдельном сервере, или еще как - например, в отдельный пакет, и на скачку выложить - симулятор оффлайн, на жабоскрипте :))
2) совершенно спокойно ставим бои в очередь. Если так вышло, что одновременно происходит сотня боев, кто-то узнает о результатах на полминуты позже. Ничего, потерпят.
3) весь скорострел кратен 5. Считаем по 5-кам вместо отдельных кораблей. Этакий компромисс между совсем дискретным рассчетом и совсем общим, по флотам в сумме.
4) поскольку в начале следующего раунда все корабли имеют полную броню и щиты, значит, хранить в массиве их параметры не требуется. Тогда я вообще не понимаю, почему должно тормозить - в цикле перебрать 10000 кораблей, однотипных, и посчитать кого убили для 4-процессорных Xeon'ов вообще не задача, а так... на миллисекунды.

короче, не знаю - но особых тормозов не вижу. Самое длительное - это запрос из базы, а их будет наверно 2 - перед собственно расчетом, получить флот атакующего и обороняющегося - если и не 2 (параметры кораблей еще получить по каждому типу, наверно), то в любом случае не больше, чем сейчас.
3) и 4) Вот есть подозрение, что они обсчитывают КАЖДЫЙ корабль. Поэтому надо хранить броню КАЖДОГО корабля. И хранить весь бой, поскольу в огейме броня не восстанавливается. Кратность сразу идет побоку - не имеет смысла тогда вообще менять систему боя, если вводить кратность. Для ЗС это будет все равно, что не менять ничего в большинстве случаев - и так не убьешь, и так.

Про тромоза. Когда подкинешь мне комп с парой 4-процессорных ксеонов - тогда можем поговорить о "так, миллисекундах". Сейчас все считает двуядерний Пень. Который, кстати, до сих пор не окупился.

И, наклнец, прл сам менежер боев. Ты представляешь, что означает написать асинхронный обработчик боев на PHP? Вот я даже не знаю, с какого конца браться. Но, я так понимаю, для тебя эта задача - раз плюнуть, что ты проблем не видишь. Ну что ж - напиши и скинь мне. Я потестю и вставлю в игру. И никаких проблем!
AlexBlack
Старшина лазерной наводки
Сообщения: 63
Зарегистрирован: 13 июл 2010, 08:34

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение AlexBlack »

Gorlum писал(а): Может кто-нибудь посмотреть и сказать доходчиво - они симулируют бой по типам кораблей или по каждому кораблю отдельно? А то что-то я нихрена понять не могу...
SpeedKernel\SKernel_Sim.cpp

По каждому кораблю отдельно. Достаточно увидеть комментарий
// backup set fleet
// possibly copy into file for less memory usage when using _very_ big fleets?
Если не считать по кораблям, а только по суммам, не вижу разницы между малым и большим флотом ;)
Изображение
AlexBlack
Старшина лазерной наводки
Сообщения: 63
Зарегистрирован: 13 июл 2010, 08:34

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение AlexBlack »

:oops: асинхронный, на ПХП... я вообще не знаю ПХП, не пугай, дядько

Никто ж не говорит, что сейчас - плохо? Мы ж играем :))) но получается да, СпидСим и супернова - две большие разницы.
Изображение
Gorlum
Император Вселенной
Сообщения: 7526
Зарегистрирован: 13 июн 2009, 15:06
Контактная информация:

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Gorlum »

AlexBlack писал(а):По каждому кораблю отдельно. Достаточно увидеть комментарий
// backup set fleet
// possibly copy into file for less memory usage when using _very_ big fleets?
Если не считать по кораблям, а только по суммам, не вижу разницы между малым и большим флотом ;)
Ха! Если бы по комментарию можно было бы на 100% идентифицировать алгоритм - я бы не спрашивал. Но вот в инициализации симулятора в коде в цикле заполняется структура размером к-во типов юнитов*мак_к-во_игроков... Короче, нужно не просто комменты почитать - с этим и я справился, а внимательно посмотреть сам код.
Аватара пользователя
Ivash
Император Вселенной
Сообщения: 2688
Зарегистрирован: 13 сен 2009, 08:53
Откуда: Харьков

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Ivash »

Может срин поможет)
Изображение
"Всё, что имеет начало, имеет и конец."
Gorlum
Император Вселенной
Сообщения: 7526
Зарегистрирован: 13 июн 2009, 15:06
Контактная информация:

Re: Насколько SpeedSim адекватно описывает движок oGame?

Сообщение Gorlum »

Ivash писал(а):Может срин поможет)
Да есть у меня спидсим. Гонять его практически бесполезно - там в коде есть несколько рэндомов, которые делают результаты очень различающимися. В частности, одним из таких моментов является шанс взрыва корабля при повреждении его более чем на 30%. А взрыв, скажем, одной СН в бою может принципиально изменить результат.

Так что надо именно найти С-шника и вычленить алгоритм.
Ответить

Вернуться в «Движок сервера: жалобы и предложения»