|
|
|
Онлайновые игры »
Канал Star Wind: «ЗВ на кпк и нужен ли сервак?» |
|
|
Crush 285 EGP
Репутация: 48 Сообщения: 1190 Откуда: Владивосток Зарегистрирован: 23.07.2003 |
|
Lazy Cat : |
Отдельный сервак, несколько серваков .... Сейчас все упирается в крайне низкую эффективность движка ЗВ
............
Так что одними оптимизациями PHP кода (и даже заменой его на боле эффективный вариант - С/С++ к примеру) много не вытянешь - всеравно надо обрабатывать досточно большие объемы данных с синхронизацией через БД.
|
По поводу С++ не соглашусь. Во-первых. У нас ОООЧЕНЬ маленькая вселенная, она легко должна поместится в памяти. Базу совершенно необязательно синхронизировать с памятью каждые 5 секунд.. вполне хватит я думаю и минуты. К тому же синхронизировать базу надо только поо игрокам (коих дай то бог 100 онлайн будет) и фабам. Все расчеты по НПС будут идти в памяти.
С таким движком возникает токо собственно гря проблема поддержки браузера. То есть если сейчас страницы генерирует ПХП-скрипт, тоо прийдется помучатся с генерацией веб-страниц с помощью С++.
|
|
|
Lazy Cat 405 EGP
Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004 |
|
2 Crush.
Ты не поверишь, но моя основная работа - это работа именно на С++, хотя с РНР я тоже работал. Простая замена С++ на РНР даст только ускорение рассчетов, количество обращений к БД не уменьшится. Чтобы оно серьезно сократилось - надо чтобы вся работа с БД велась в одном процессе, и рассчет поведения НПЦ, и обработка наших запросов. Этот процесс должен быть только один, тогда он сомжет делжать всю (или почти всю) базу в памяти и работать с ней намного быстрее, обновляя ее на сервере порциями. Но написать такую прогу - задача настолько нетривиальная, что ее не решить "в свободное от работы время".
ЗЫ. Лично я бы не взялся точно - отлаживать замучаешься
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
Shirson 1605 EGP
Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Вряд ли в срр будет проблема с генерёжкой html. Это, скорее всего, будет кропотливой, разовой работой. Но прировст скорости должен быть существенный, по сравнению с транслятором. Тут, скорее всего, скорость упрётся уже не в сам код, а в скорость обработки запросов базой.
Про синхронизацию базы с памятью - для подобной задачи я у себя использовал конвейер. Т.е. есть оперативная инфа, есть долгосрочная инфа. Оперативная в памяти, долгосрочная в базе. Период синхронизации определяется степенью боязни Боязни потерять оперативную инфу из-за сбоя в сервере и пр. Можно делать синхро и раз в час, а можно и раз в сутки. При сбое, состояние игры откатывается к последней синхронизации.
Другой вопрос, что обрабатывать мир движку легче молотя запросами базу - стабильнее и надёжнее. И памяти поменьше жрёт. Но это тормознутее.
Если переложить часть движка на работу с памятью, можно прилично выкружить по скорости, но стоит учитывать, что, насколько я помню, на сервере не только ЗВ стоит.
_________________ У меня бисера не доxеpа. |
|
|
Vicont 135 EGP
Репутация: 29 Сообщения: 256 Откуда: Moscow Зарегистрирован: 12.03.2002 |
|
У PHP есть такой модуль memcache.so служит для работы с демоном memcached, а он в свою очередь умеет хранить и искать данные в ОЗУ. Есть еще EAccelerator , который умеет кэшировать и оптимизировать ПХП скрипты на лету.
|
|
|
Vicont 135 EGP
Репутация: 29 Сообщения: 256 Откуда: Moscow Зарегистрирован: 12.03.2002 |
|
Есть еще 1 вариант: Докупаем старому серваку 8Гб оперативки. Делаем из нее RAMDrive. Выделяем у мускуля наиболее часто юзаемые таблицы. Создаем для них отдельную БД расположенную на рамдрайве. На этот же рамдрайв сливаем все пхп скрипты и наслаждаемся возросшим не по детски быстродействием, при минимуме затрат!
|
|
|
Lazy Cat 405 EGP
Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004 |
|
И это все под виндой
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
Crush 285 EGP
Репутация: 48 Сообщения: 1190 Откуда: Владивосток Зарегистрирован: 23.07.2003 |
|
Lazy Cat : |
2 Crush.
Но написать такую прогу - задача настолько нетривиальная, что ее не решить "в свободное от работы время".
ЗЫ. Лично я бы не взялся точно - отлаживать замучаешься
|
Ну если знать как писать такие сервера, то задача становится не такой уж и сложной
Собственно гря если бы было достаточно телнет-интерфейса, то подобный сервер у меня есть написаный "в свободное от работы время" (С++). А вот с корректной работой с хттп протоколом... у мну знаний маловато
Впринципе могу его попробовать доработать чтобы мона было потестить типа битва в одном секторе с 1000 ксенов, насколько это будет шустро и скоко это займет в памяти места
|
|
|
Vicont 135 EGP
Репутация: 29 Сообщения: 256 Откуда: Moscow Зарегистрирован: 12.03.2002 |
|
Lazy Cat : |
И это все под виндой
|
А в чем проблема-то? И EA и memcached собираются и под виндой, тока придется gcc поставить, но он есть в пакэйджах и для винды.
Да и рамдрайв под винду где-то видел...
|
|
|
Lazy Cat 405 EGP
Репутация: 145 Сообщения: 2148 Откуда: Украина, Тернополь Зарегистрирован: 16.04.2004 |
|
Остается еще проблема бекапа. Рамдрайв хорошо, но ребут и все ... Тебе же не захочется потерять все то что ты налетал потому что какой-то дядька дернул не тот рубильник? Решение с прогой которая обрабатывает все запросы игроков и АИ более радикальное и более действенное, но и наиболее трудоемкое
Пока что остается оптимизировать то что есть, а дальше будет видно.
_________________ Еж - птица гордая ...
А тут столько летающих eg-й %) |
|
|
KoPer 139 EGP
Репутация: 15 Сообщения: 207 Откуда: Russia Зарегистрирован: 19.04.2005 |
|
ИМХО, раз пошел вопрос по реализации, то надо добавить кеширование БД, счас работаю над проектом - поставил кеширование, быстродействие увеличилось в разы.
_________________ I am thinking... |
|
|
Shirson 1605 EGP
Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Lazy Cat : |
Остается еще проблема бекапа. Рамдрайв хорошо, но ребут и все ...
|
Описанно выше. Каждый час/день/что-угодно память сбрасывается в бакап.
_________________ У меня бисера не доxеpа. |
|
|
Vicont 135 EGP
Репутация: 29 Сообщения: 256 Откуда: Moscow Зарегистрирован: 12.03.2002 |
|
Lazy Cat : |
Остается еще проблема бекапа.
|
На рамдрайве мона разместить отдельный мускуль, который назначть мастером репликаций для тех баз что в нем есть... А тот мускуль что живет на ыинте сделать подчиненным... И проблемма бэкапа беспокоить больше не будет Тока логирование надо переключить на бинарное, чтоб быстродействия меньше жралось
|
|
|
surmenev
|
|
Есть идея снизить нагрузку неписями...
как вам такой вариант:
Неписей в секторе нет вооеще, и появляться они будут только при атаке кем либо станции - т.е. из нее вылетать...
а потом самоликвидироваться по прошествии какого то времени.
то есть захотел гимора - стрельнул в станцию, оттуда рандомом 2-3 непися.. убил их.. стрельнул еще раз... а если не убил - как раз гимор и получил гыыыы
Ксенам снять с боевых целей станции, пусть метелят ток корябли... Тут кстати 2+.. и неписиполицаи не будут вылетать на их отстрел и игроки не будут бросать шипы под станциями, что тож облегчит сервак...
не знаю.. может я и не прав.. т.к. от програмирования далек.. но чисто логически должно немного поправить...
|
|
|
Strange® 1078 EGP
Репутация: 225 Сообщения: 3005 Откуда: Киев Зарегистрирован: 26.07.2002 |
|
Цитата: |
а потом самоликвидироваться по прошествии какого то времени.
|
Зачем самоликвидироваться? Садиться на станцию... Как в Х-ах
_________________ Жизнь прекрасна! Главное - правильно подобрать антидепрессанты :) |
|
|
Леоныч 1116 EGP
Репутация: 133 Сообщения: 5075 Откуда: Питер 78 rus Зарегистрирован: 29.10.2004 |
|
surmenev : |
и появляться они будут только при атаке кем либо станции - т.е. из нее вылетать...
|
А я уже такое наблюдал
http://www.elite-games.ru/conference/viewtopic.php?p=1042831#1042831
_________________ без подписи |
|
|
Alone 1865 EGP Репутация: 527 Сообщения: 10436 Откуда: Moscow, Russia Зарегистрирован: 07.02.2001 |
|
Crush : |
Каждые 5-10 секунд некий скрипт устраивает пачку запросов к БД, чтобы обсчитать движения пилотов, АИ, фабрики итд.. потом благополучно апдейтит соответствующие таблицы.
|
Суть верна, ошибся ты только в цифрах.
_________________ Скучно быть серьезным. |
|
|
Alone 1865 EGP Репутация: 527 Сообщения: 10436 Откуда: Moscow, Russia Зарегистрирован: 07.02.2001 |
|
duch : |
еговский хост стоит немалыхъ денег - еговский сервакъ - штуку баксов
|
Три штуки, если интересно, может чуть больше.
duch : |
Ега скока платит? баксов 150 в месяцъ
|
ЕГа платит в три раза меньше.
duch : |
и не у етихъ долгопрудныхъ малолетнихъ недоумков ставитб
|
Дуч. ЕГа в Агаве уже более года как не хостится...
duch : |
помню, что 4х юнитовый стоит 630$ - больш ничо не помню
|
Ну-ну.
А вообще - Дуч, хватит гнать дезу и смущать людей.
Старвинд в данный момент не работает отнюдь не потому что он досит Еговую машину.
_________________ Скучно быть серьезным. |
|
|
Pegasus 1039 EGP
Репутация: 335 Сообщения: 7085 Откуда: НН Зарегистрирован: 09.12.2002 |
|
Alone : |
Старвинд в данный момент не работает отнюдь не потому что он досит Еговую машину.
|
Тогда очень бы хотелось узнать истинную причину
_________________ There shall be wings! |
|
|
Digited 271 EGP
Репутация: 49 Сообщения: 932
Зарегистрирован: 24.08.2004 |
|
Опять же, вот такой милый штришок... )
|
|
|
Леоныч 1116 EGP
Репутация: 133 Сообщения: 5075 Откуда: Питер 78 rus Зарегистрирован: 29.10.2004 |
|
Как интере-есно-о...
_________________ без подписи |
|
|
|
|
|
Онлайновые игры ->
Канал Star Wind: «ЗВ на кпк и нужен ли сервак?» |
|