Страница 1 из 1

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

Добавлено: 28 сен 2010, 01:31
Gorlum
Сабж

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

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

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

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

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

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

короче, не знаю - но особых тормозов не вижу. Самое длительное - это запрос из базы, а их будет наверно 2 - перед собственно расчетом, получить флот атакующего и обороняющегося - если и не 2 (параметры кораблей еще получить по каждому типу, наверно), то в любом случае не больше, чем сейчас.

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

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

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

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

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

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

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

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

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

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

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

Никто ж не говорит, что сейчас - плохо? Мы ж играем :))) но получается да, СпидСим и супернова - две большие разницы.

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

Добавлено: 28 сен 2010, 15:51
Gorlum
AlexBlack писал(а):По каждому кораблю отдельно. Достаточно увидеть комментарий
// backup set fleet
// possibly copy into file for less memory usage when using _very_ big fleets?
Если не считать по кораблям, а только по суммам, не вижу разницы между малым и большим флотом ;)
Ха! Если бы по комментарию можно было бы на 100% идентифицировать алгоритм - я бы не спрашивал. Но вот в инициализации симулятора в коде в цикле заполняется структура размером к-во типов юнитов*мак_к-во_игроков... Короче, нужно не просто комменты почитать - с этим и я справился, а внимательно посмотреть сам код.

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

Добавлено: 28 сен 2010, 17:05
Ivash
Может срин поможет)

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

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

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