Стратегическая онлайн игра DestinySphere http://forum.destinysphere.ru/ |
|
Мысли вслух http://forum.destinysphere.ru/viewtopic.php?f=832&t=202172 |
Страница 1 из 1 |
Автор: | Requiem [ Сб мар 14, 2009 22:39 ] |
Заголовок сообщения: | Мысли вслух |
Года полтора-два назад я ушёл из проекта из-за того что мне надоело день в день в 200+ пилонах заказывать войска. Пол года назад вернулся, просто не было чем заняться, решил посмотреть как там сфера. Обнаружил что в одном из миров соту не стёрли и что новый премиум позволяет намного комфортнее играть. Что многое поменялось в сторону улучшения. Первое время, пока я не участвовал в боевых действиях, меня всё устраивало, я не понимал почему люди так сильно возмущаются по поводу проблемы "12345". Я её просто не видел. Потом мне стало интересно расти в боевом рейтинге. Первое время было всё нормально, но когда у тебя более 200 армий в воздухе - любое нападение становится лотереей - сможешь ты обновиться перед атакой и посмотреть что на соте у противника или нет. Сейчас я даже грабли стараюсь с разных сот в разное время отправлять. Это всё лирика, и я понимаю что подобные посты были уже не один раз. И я не вижу смысла ничего требовать от администрации, не думаю что Вам самим нравиться подобная ситуация. Единственное что я хочу - это информации. Почему случилась та или иная проблема и т.п. Если вы позиционируете себя как очень демократичную администрацию, то давайте пожалуйста полную информацию о том почему игра не работает. Ну не хватает у меня терпения играть в эту игру с постоянными проблемами и отсутствием информации. |
Автор: | barbus_2004 [ Вс мар 15, 2009 0:40 ] |
Заголовок сообщения: | |
+1 С терпением совсем плохо ... ![]() |
Автор: | ocimico [ Вс мар 15, 2009 2:56 ] |
Заголовок сообщения: | |
Сразу подчеркну, что я не видел кода Сферы, поэтому не могу быть на 100 процентов уверен в своей догадке. Основываюсь я на услышанном от тех, кто код видел, и на собственных знаниях. Причина 12345 - в необходимости синхронизировать действия, меняющие состояние соты, между разными потоками обработки данных. Что имеется в виду? Движок игры построен на принципе "задержанных рассчетов". То есть, большинство действий, которые должны производиться в определенный момент, производятся не в тот момент, а в момент, когда результат этих действий востребован игроком (рефреш) или внутренними нуждами сервера (начало боя, освобождение заводов и т.д.) Каждая сессия игрока ДС - это отдельный процесс на одном из серверов игры. Запрос данных (рефреш, но не только) этим игроком вызывает определенный каскад действий, задержанных ранее до этого момента. Результат некоторых из этих действий - изменения записей в базах данных игры. Весь процесс занимает в сложных случаях десятки секунд серверного времени. Теперь, что происходит если несколько игроков пытаются обновить свою соту более-менее одновременно (в рамках 10 секунд)? А происходит следующее: Если эти игроки хоть коссвенно связаны (или один летел на другого, или оба они летали на кого-то третьего в разное время, но с тех пор не обновлялись, либо кто-то третий летел к ним обоим) - два параллельных процесса пытаются произвести изменения. Например, чтоб выяснить, кто первый ограбил кормушку и сколько ресурсов отгружать второму, и т.д. Раньше, до НСБ, это совмещение вызывало зависание иногда целого мира. Теперь в большинстве случаев, сервер распознает подобное и выдает одному или обоим игрокам "счетчик"... Проблема в том, что оба сразу вновь рефрешатся... снова вызвав те же "грабли". Теперь о возможных решениях: 1) в идеале, было бы убрать совсем "задержанные вычисления". это решило бы не только баг с 12345, но и много других глюков сферы. Проблема, что для этого придется переписать начисто весь движок игры. 2) автоматическая блокировка потоков и создание очереди. К сожалению, это не намного проще чем 1), и программистам ДС не очень хочется за это браться 3) Рандомизация времени ожидания. То есть, если шарик выдан нескольким игрокам, заставить одного ждать 5 секунд, а другого, скажем, 10. Это "расцепит" их и повысит шансы развисания ситуации. Думаю, это несложно реализовать. 4) ничего не сделать. это проще всего, так скорее всего и поступят ![]() Поэтому рекомендую после появления шарика прождать от 5 до 15 секунд, если возникнет снова - от 5 до 30, снова - от 5 до 60. Как правило, такой "алгоритм" помогает. ЗЫ: И не в коем случае не начинайте тыкать в ф5, перегружать страницу и т.д. - это только ухудшит положение. А вот выйти из игры и перелогиниться - может помочь. |
Автор: | konstantin666 [ Вс мар 15, 2009 4:29 ] |
Заголовок сообщения: | |
Цитата: 4) ничего не сделать. это проще всего, так скорее всего и поступят ![]() Поэтому рекомендую после появления шарика прождать от 5 до 15 секунд, если возникнет снова - от 5 до 30, снова - от 5 до 60. Как правило, такой "алгоритм" помогает. ЗЫ: И не в коем случае не начинайте тыкать в ф5, перегружать страницу и т.д. - это только ухудшит положение. А вот выйти из игры и перелогиниться - может помочь. зы кстать а как без ф5 если черный экран? |
Автор: | konstantin666 [ Вс мар 15, 2009 19:48 ] |
Заголовок сообщения: | |
прикольно атачу а перегрузиться не могу уже все легло на соту 1 пробой отстрелялся а дальше 54321)))) |
Автор: | konstantin666 [ Вс мар 15, 2009 19:49 ] |
Заголовок сообщения: | |
как бы на что то не претендую но блин все рецепты не срабатывают обновиться не могу |
Автор: | victor98 [ Вс мар 15, 2009 19:50 ] |
Заголовок сообщения: | |
Цитата: прикольно атачу а перегрузиться не могу уже все легло на соту 1 пробой отстрелялся а дальше 54321))))
надеюсь не ко мне )) а то тоже чето зайти проблематично )
|
Автор: | ocimico [ Вс мар 15, 2009 20:15 ] |
Заголовок сообщения: | |
Цитата:
15+30+60 грубо говоря полторы минуты если не получилось перезаходим в игру....... и за сколько в этом случае кидать развед перед армами? при всем том что не факт что зайдеш на соту а не получиш шарик?
ну я бы советовал 2 минуты оставить свободными от армий.Цитата:
зы кстать а как без ф5 если черный экран?
Просто: вбиваешь адрес с портала (http://ds.rambler.ru/)ф5 только если экран белый, например сразу после входа в мир. |
Автор: | Karmoponizhatel [ Вс мар 15, 2009 20:23 ] |
Заголовок сообщения: | |
Цитата: 1) в идеале, было бы убрать совсем "задержанные вычисления"...
Ввод вычислений в реальном времени - потребует смену всей идеалогии игры.В том числе отмену всем надоевшего рефреша - как данности. Да и кучу всего. Полгода назад предлагалось сделать промежуточный вариант - в виде отложенного кеширования... то есть чтобы при рефреше логи на клиентский компьютер не кучей валились, забивая мозг как серверу так и клиенту... а постепенно накапливались - если комп подключен к сети, и потом по рефрешу показывались, наверное стоит сделать фильтр - какие логи показывать, если я допустим не торгую сегодня или не воюю - то на кой мне проверять специальные БД, на наличие действий. Возможно прийдется чуть подрихтовать код, и наверное убрать исполнение действий по рефрешу - тем самым убив глюк с началом боя и тп. Т.е чтобы действия выполнялись в реальном времени всеже, а не по тыканию на "обновить". |
Страница 1 из 1 | Часовой пояс: UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |