LINUX.ORG.RU

Я думаю в любом случае без вменяемого дизайнера/«г^Hлоремастера» можно не начинать

Gary ★★★★★
()
Ответ на: комментарий от Sadler

чо там работать - прикрутить bullet и не иметь мозга никому

Масштабы MMORPG себе представляем?

прекрасно :)

Если сервер будет обсчитывать хотя бы 1000 игроков и миллион объектов даже 25 раз в секунду с помощью bullet, серверу может внезапно сплохеть.

у меня смутные подозрения, а зачем Вам физика на миллион объектов? :)

1000 игроков - это Вы загнули, где Вы такое видели? или Вы думаете что весь азерот 1 сервак тянет? :) там стоят очень толстые серверные фермы, если чо

и да, альтернатива какая? написать своё УГ, которое мало того что будет тупить, так ещё и медленнее работать, да?

и да, удивитесь среди разработчиков ММОРПГ Bullet таки занимает первую строчку по популярности (пруф видел в каком-то журнале)

shty ★★★★★
()
Ответ на: комментарий от svr4

>До нескольких тысяч доходило. Мангос - относительно шустрая штука, однако чтобы он реально работал его надо пропатчить более чем девятью тысячами патчей.

На самом деле чтоб он нормально работал надо его переписать на чем-нибудь поприличней с++, перевести с svn на hg, снабдить тестами и научить работать в виде кластера из независимых нод, в остальном согласен.

cvb
()
Ответ на: комментарий от Sadler

Я бы склонился делать серверную физику, но с обсчётом по отдельным локациям, чтобы можно было поставить несколько машин, которые занимаются конкретно физикой.

а так и делают, только всё равно не поспевают - динамика никакая получается из-за сетевого обмена и игра превращается в УГ

shty ★★★★★
()
Ответ на: комментарий от cvb

с движком ничего изобретать не надо, уже многое делалось и многое открыто

распространённое заблужение, там пилить ещё не перепилить - идей до кучи, тот же WoW довольно примитивный по технике, хотя и надёжный

не зря же близзы попиливают новый движок

shty ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

> в канал гейм-мастеру сообщение о читерах и бан

ололо, будет 100500 репортов о «я проиграл, он ЧИТЕР!!!11», в результате на это дело быстро забьют

1) на то есть логи

2) в WoW всё так работает и никаких проблем, может сходите расскажете им что у них ничего не должно работать? :)

и да, мы говорим не за фришарды, а за официальные миры

2 солдата от разных игроков, оба идут «на север», на их клиентах через некоторое время срабатывает коллизия со стеной, оба принимают решение обойти стену, но один идет налево, другой направо, в результате чего они или пройдут сквозб друг друга, или будут танцевать в попытках уступить дорогу (если задать как динамическое препятствие)

что там синхронизировать? модельки все у Вас локально подгружены (они же отображаются, да?) - считайте коллизии на месте, хоть обсчитайтесь, сервак всё равно не сможет Вам в реальном времени всё выдать, даже если он не нагружен

максимум сервак постфактум проверяет колллизии, но большинство на это вообще забивает, ибо нефиг

shty ★★★★★
()
Ответ на: комментарий от shty

Ок, я отработал коллизию (фигурки не отображаются, но кого заботит экран?), взвел флаг «я столкнулся», чего мне дальше делать? Увести перса в сторону? Дык противник тоже отойдет. Бежать вперед, «в другого игрока»? Выглядит как гейство, хотя в некоторых играх именно так и сделано. Сказать серверу «ой, а чо дальше делать?» - опять нельзя, протокол могут модифицировать на лету. А сервер все это смог бы независимо разрулить

simple_best_world_web_master
()
Ответ на: комментарий от cvb

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

Яж говорю, мангос из первого поста это делает, при любом движении игрока ему возвращается пакет с новыми координатами (которые считаются на сервере)

а возможность такого движения (те самые коллизии) проверяется у клиента, даже если кто и похакал, сервак всё равно не даст двинуться, а «одминам» бородатым уйдёт варнинг

я ни в одном вменяемом движке не видел обсчёт физики только на серваке

бегали так по 300-400 человек, на не сильно серьезном железе

только бегали, оружия не давали? :)

shty ★★★★★
()
Ответ на: комментарий от shty

>и да, мы говорим не за фришарды, а за официальные миры

В World of Warcraft подписка платная, а сам клиент регулярно сканирует работающие в системе процессы. С опенсорс клиентом всё будет намного сложнее.

Gary ★★★★★
()
Ответ на: комментарий от ShTH

loremaster работает над game lore
т.е. по сути придумывает для игры историю и сюжетку,
плохой лоремастер придумывает плохую сюжетку «жили были кто-то там, пришел злодей и всем плохо стало, иди убей 10000384774 прислужников злодея и доберись до злодея, а мы пока придумаем еще кого-нибудь»

хороший лоремастер продумывает практически все про игровой мир, хороший пример - world of warcraft, хотя там пару раз меняли некоторые моменты истории )

Sylvia ★★★★★
()
Ответ на: комментарий от shty

> 1000 игроков - это Вы загнули, где Вы такое видели?

Ну как бы загляните в ТОПы мангосовских серверов.

Вы думаете что весь азерот 1 сервак тянет? :) там стоят очень толстые серверные фермы, если чо

Предлагаю опять же взглянуть на Mangos. Большинство серверов там обсчитывают сразу всё.

и да, альтернатива какая? написать своё УГ, которое мало того что будет тупить, так ещё и медленнее работать, да?

Я не говорил об альтернативах, я сказал, что просто тупо взять Bullet не получится, всё равно придётся его оптимизировать. Как минимум, чтобы обсчитывать на нескольких машинах одновременно.

и да, удивитесь среди разработчиков ММОРПГ Bullet таки занимает первую строчку по популярности (пруф видел в каком-то журнале)

Пруф или не было.

И вообще спор ни о чём. Вы говорите, что можно использовать Bullet. Я согласен, можно. Вы говорите, что надо использовать кластеризацию. Я это сказал в одном из первых же постов. Вы считаете, что клиенту в этом вопросе нужно доверять ограниченно. Я согласен, такая схема возможна. Что-то я не понял, в чём суть спора. Может быть всё дело в том, что уже утро и я нифига не соображаю? Вполне вероятно.

Sadler ★★★
()
Ответ на: комментарий от Sylvia

Спасибо. А я думал, что это как-то связано с ЛОРом

ShTH
()
Ответ на: комментарий от simple_best_world_web_master

Ок, я отработал коллизию (фигурки не отображаются, но кого заботит экран?),

чиво? Вы как коллизии собрались отрабатывать, скажите плиз?

взвел флаг «я столкнулся», чего мне дальше делать? Увести перса в сторону? Дык противник тоже отойдет. Бежать вперед, «в другого игрока»? Выглядит как гейство, хотя в некоторых играх именно так и сделано. Сказать серверу «ой, а чо дальше делать?» - опять нельзя, протокол могут модифицировать на лету. А сервер все это смог бы независимо разрулить

каким образом он бы это разрулил, всех бы залил напалмом чтобы предотвратить гомосятину и содом? :)

Сказать серверу «ой, а чо дальше делать?» - опять нельзя, протокол могут модифицировать на лету.

давайте допустим что можно сказать серверу «ой, а чо дальше делать?», что он Вам должен ответить? :)

и да, это всё уже не касаясь тактики, IRL (хаха, каламбурчик) Вас просто снесут как черенок от лопаты бульдозером и не будете Вы долго мучиться и страдать :)

shty ★★★★★
()
Ответ на: комментарий от Gary

и да, мы говорим не за фришарды, а за официальные миры

В World of Warcraft подписка платная,

вот это я не понял, и что что там подписка платная?

а сам клиент регулярно сканирует работающие в системе процессы. С опенсорс клиентом всё будет намного сложнее.

1) все модели, карты и всякая всячина всё равно синхронизируются с серваком

а вот с верификацией данных в памяти - да, посложнее, но тоже можно придумать наверное что-нибудь (хотя бестолковые и то сломают)

shty ★★★★★
()
Ответ на: комментарий от shty

>вот это я не понял, и что что там подписка платная?

Меньше поводов будет у человека отрезать себя от игры

Gary ★★★★★
()
Ответ на: комментарий от shty

> чиво? Вы как коллизии собрались отрабатывать, скажите плиз?

Ну это... Сначала bound-sphere, потом bounding box, потом перебирать пересечения полигонов модельки, а точнее специально под это дело заточенной convex mesh, не? (правда в 2D я делал пиксельные 1-битовые спрайты)

каким образом он бы это разрулил, всех бы залил напалмом чтобы предотвратить гомосятину и содом? :)

Ну это... У каждого перса есть точка, куда надо прибежать, в лучшем случае, еще при встрече со стеной они побежали бы в одну сторону и не столкнулись, или вообще друг от друга, а если уж и столкнулись, то сервер одного смешает в сторону, после чего тот бежит дальше к своей таргет-поинт, и никаких столкновений, не?

давайте допустим что можно сказать серверу «ой, а чо дальше делать?», что он Вам должен ответить? :)

см.выше, но протокол можно модифицировать, да и канал может лагнуть, а в результате получим несогласованность поля. И хорошо, если солдатики не застрянут друг в друге.

Вас просто снесут как черенок от лопаты бульдозером и не будете Вы долго мучиться и страдать :)

Это если кто-то там есть, а то так и будешь бегать друг в друге, даже вдоль сделать не выйдет

simple_best_world_web_master
()
Ответ на: комментарий от Sadler

1000 игроков - это Вы загнули, где Вы такое видели?

Ну как бы загляните в ТОПы мангосовских серверов.

и что я там должен увидеть? :)

> Вы думаете что весь азерот 1 сервак тянет? :) там стоят очень толстые серверные фермы, если чо

Предлагаю опять же взглянуть на Mangos. Большинство серверов там обсчитывают сразу всё.

«большинство людей утром делают что-то», очень качественный довод ящитаю :)

> и да, альтернатива какая? написать своё УГ, которое мало того что будет тупить, так ещё и медленнее работать, да?

Я не говорил об альтернативах, я сказал, что просто тупо взять Bullet не получится, всё равно придётся его оптимизировать.

оптимизировать? :) да Вы смельчак и балагур

Как минимум, чтобы обсчитывать на нескольких машинах одновременно.

ну и что Вы собрались обсчитывать одновременно?

> и да, удивитесь среди разработчиков ММОРПГ Bullet таки занимает первую строчку по популярности (пруф видел в каком-то журнале)

Пруф или не было.

написал же, видел в бумажном журнале, пруфа нет - хотите верьте, хотите нет

ы считаете, что клиенту в этом вопросе нужно доверять ограниченно.

вообще не нужно доверять, всё что происходит на клиенте - потенциально опасные с точки зрения целостности игры операции

Что-то я не понял, в чём суть спора.

я утверждаю: у Вас не получится всё считать на серваке в реальном времени и сохранить динамику игры, слишком большие временные затраты на прохождение данных на сервак и обратно

в таких случаях используется предсказание, то есть вроде бы как клиенту типа доверяют выполнять некоторые расчёты, но все транзакции за ним проверяют

shty ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

> чиво? Вы как коллизии собрались отрабатывать, скажите плиз?

Ну это... Сначала bound-sphere, потом bounding box, потом перебирать пересечения полигонов модельки, а точнее специально под это дело заточенной convex mesh, не?

в теории - да, на практике всё это сдохнет, по крайней в мморпг, там и так over 100500 параметров

делают так - суют 1-2 невидимых треугольника нужной площади в модель и проверяют пересёкся данный треугольник с треугольником в стене (к примеру) или нет, угар правда?

хотя я не спец в данной области, но видел что на клиенте делали именно так :)

> каким образом он бы это разрулил, всех бы залил напалмом чтобы предотвратить гомосятину и содом? :)

Ну это... У каждого перса есть точка, куда надо прибежать, в лучшем случае, еще при встрече со стеной они побежали бы в одну сторону и не столкнулись, или вообще друг от друга, а если уж и столкнулись, то сервер одного смешает в сторону, после чего тот бежит дальше к своей таргет-поинт, и никаких столкновений, не?

ну и представьте, бежите Вы себе бежите, никого не трогаете, и тут БЫЩЬ! Вас отбрасывает в сторону - это глюк или что? а так это вражеский солдат за стенкой пробежал :) а чо, можно так и ганкать наверное наловчиться

> Вас просто снесут как черенок от лопаты бульдозером и не будете Вы долго мучиться и страдать :)

Это если кто-то там есть, а то так и будешь бегать друг в друге, даже вдоль сделать не выйдет

так если там никого нет в ком Вы собрались бегать? :)

и да, инст можно покинуть, если что

shty ★★★★★
()
Ответ на: комментарий от shty

да, фразу «суют 1-2 невидимых треугольника нужной площади в модель» нужно читать так: «делают простейший bounding-box» :)

хотя некоторые угарщики делают таки 2-мя треугольничками, но это, имхо, моветон :)

shty ★★★★★
()
Ответ на: комментарий от shty

>а возможность такого движения (те самые коллизии) проверяется у клиента, даже если кто и похакал, сервак всё равно не даст двинуться, а «одминам» бородатым уйдёт варнинг

я ни в одном вменяемом движке не видел обсчёт физики только на серваке

Оно обсчитывается по крайней мере на сервере, чего там делается на клиенте я понятия не имею, код закрыт, да и какая по сути разница.

только бегали, оружия не давали? :)

Из консоли видно было плохо, но трупы были)

cvb
()

>А что курить разработчикам, желающим сделать опенсорсную мморпг?
Наверное стоит курить исходники worldforge и planeshift

eugene2k
()

Курить хорошие способы заработка.

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

Сразу: забывай про опенсорсных художников.

Но да, обратись к Quasar, может вместе будет проще.

wyldrodney
()
Ответ на: комментарий от wyldrodney

А зачем в такой игре физика? Столкновения просчитывать, чтоль? Если и так, то опять: нафига?

не-не-не, полёты стрел, прыжки и прочая :)

shty ★★★★★
()
Ответ на: комментарий от shty

> делают так - суют 1-2 невидимых треугольника нужной площади в модель и проверяют пересёкся данный треугольник с треугольником в стене (к примеру) или нет, угар правда

Ну и чем это лучше bounding sphere? А упомянутый мной convex mesh может быть и 2 треугольниками, если сильно надо

ну и представьте, бежите Вы себе бежите, никого не трогаете, и тут БЫЩЬ! Вас отбрасывает в сторону - это глюк или что? а так это вражеский солдат за стенкой пробежал :)

Бред, сразу по 2 причинам:

1. солдат ЗА стенкой должен в нее уперется и никак не пересекать, т.е. взаимодействовать с другими объектами ЗА ней никак не сможет

2. если солдат пробегает в паре метров и «задевает» вас, то надо настроить коллизии, тот самый convex mesh, за них отвечающий

Бежите-бежите, кто-то БЫЩЬ - столкнул в сторону, но его видно, равно как и место соприкосновения

так если там никого нет в ком Вы собрались бегать? :)

Представь 2 юнита и больше никого

и да, инст можно покинуть, если что

Знаю одну игрушку, авторам которой хотелось оторвать половые органы, а потом их поджарить и скормить владельцам: если твой соперник сливает, или у него просто отвалился коннект... То ты сидишь и играешь в поддавки, дабы слить как можно быстрее, ибо если перезайти, то будешь в этом же месте и в этой же роли. А слить быстро не выйдет, это минут 10 самоистязаний (причем играл я ради процесса, а не рейтинга, который можно таким образом загубить)

simple_best_world_web_master
()

Создать демоаккаунт в ВоВ и попробовать обойти весь его мир. После этого подумать:
1. Склько один человек будет всё это рисовать
2. Сколько человек нужно, чтобы нарисовать это менее чем за 100 лет
3. Где найти идиотов, которые сделают это бесплатно

Barlog_M
()
Ответ на: комментарий от shty

А что в прыжках просчитывать? С возвышенностей спрыгивать собрался, чтоль?) И тут хватит возможностей графического движка (те же столкновения), если готов обойтись без «точного» просчёта движения каждой конечности.

Если таки хочется учитывать сгибы конечностей в зависимости от силы воздействия, подумай как должен будет лететь мелкий юнит от удара 5-ти метрового молота. А теперь скажи нафига заведомо неточная физика, если можно обойтись обычной анимацией.

wyldrodney
()
Ответ на: комментарий от Barlog_M

Создать демоаккаунт в ВоВ и попробовать обойти весь его мир.

в запру и норд не пустят

shty ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

делают так - суют 1-2 невидимых треугольника нужной площади в модель и проверяют пересёкся данный треугольник с треугольником в стене (к примеру) или нет, угар правда

Ну и чем это лучше bounding sphere?

проще, а разницы практически никакой, это ж Вам не трёхмерное моделирование, где важна точность

А упомянутый мной convex mesh может быть и 2 треугольниками, если сильно надо

может, но у меня сложилось впечатление от Вашей фразы:

Сначала bound-sphere, потом bounding box, потом перебирать пересечения полигонов модельки, а точнее специально под это дело заточенной convex mesh, не?

что Вы собрались коллизии на чуть ли не на моделях высчитывать, нет, это - круто, и к Ъ-физически описываемому миру обязательно подойдут наверное, но пока это нереально - слишком тормоза аццкие будут

> ну и представьте, бежите Вы себе бежите, никого не трогаете, и тут БЫЩЬ! Вас отбрасывает в сторону - это глюк или что? а так это вражеский солдат за стенкой пробежал :)

Бред, сразу по 2 причинам:

не бред, а шутка :)

то что Вы описываете наверное имело место где-нибудь, поставьте себе тестовый WoW-акк (если полного нет) и посмотрите как там сделано - довольно неплохо, имхо (я про то что и без коллизий игроков/NPC всё весьма играбельно)

в том же вархаммере онлайн никаких особых проблем не замечено, хоть и не люблю я его

Знаю одну игрушку, авторам которой хотелось оторвать половые органы, а потом их поджарить и скормить владельцам

кто ж Вас заставляет есть кактус? :)

shty ★★★★★
()
Ответ на: комментарий от wyldrodney

А что в прыжках просчитывать?

даже не знаю как ответить, например, траекторию прыжка, внезапно :)

или Вы будете тупо линейно перемещаться? в таком разе Вас даже «шлемазлы» засмеют

С возвышенностей спрыгивать собрался, чтоль?)

а чо, нельзя? :)

И тут хватит возможностей графического движка (те же столкновения),

если в движке встроена физика это не означает что её совсем там нет или достаточно для текущих целей

и да, расчёт коллизий тут не при чём

если готов обойтись без «точного» просчёта движения каждой конечности.

при чём тут конечности??? прыжок, к примеру, осуществляется по траектории, вот её и обсчитываем, причём можно поиграться с гравитационными постоянными, типа в одном месте так прыгается, в другом по-другому, где-то вообще гравитация отключается (типа в воде или при левитации) и т.д.

короче, многое тут зависит от больной фантазии авторов :)

и да, отучаемся мыслить линейно

shty ★★★★★
()
Ответ на: комментарий от shty

>если в движке встроена физика

Я не говорил такого про графические движки.

прыжок, к примеру, осуществляется по траектории, вот её и обсчитываем

Ну и будет прыжок без физического движка. Я спросил зачем тут считать взаимодействия физических тел, ты не смог найти ответ. Как вижу, ты даже примерно не понимаешь о чём речь. Говорить не о чем.

wyldrodney
()
Ответ на: комментарий от wyldrodney

если в движке встроена физика

Я не говорил такого про графические движки.

ты говорил что у тебя графический движок обсчитает прыжок :) это лажа

прыжок, к примеру, осуществляется по траектории, вот её и обсчитываем

Ну и будет прыжок без физического движка.

по какой траектории? :)

Я спросил зачем тут считать взаимодействия физических тел, ты не смог найти ответ.

вылдордень, ты ловко прикидываешься тупым :) надеюсь что только прикидываешься, хотя может просто читать не умеешь :)

я тебе белым русским текстом по синему написал - иди перечитай

с какого ты вообще приплёл это «взаимодействие физических тел»? и, кстати, что это ты понимаешь под таким «взаимодействием»?

shty ★★★★★
()
Ответ на: комментарий от shty

Я бы ловко и послал тебя за подобную наглость, да скор не позволяет. Иди ботай матчасть, клоун.

wyldrodney
()
Ответ на: комментарий от eugene2k

Вы с wyldrodney не замечаете, что о разных вещах говорите, да?

я то это вижу, намекаю ему намекаю, он ни в какую, уже прямо сказал, так он всё равно встал в позицию «я д'артаньян, а вы все...»

shty ★★★★★
()
Ответ на: комментарий от eugene2k

я то это вижу, намекаю ему намекаю, он ни в какую, уже прямо сказал, так он всё равно встал в позицию «я д'артаньян, а вы все...»

wyldrodney
()
Ответ на: комментарий от shty

> слишком тормоза аццкие будут

Мистер, bounding sphere - это когда обсчитывается только 1 точка + ее радиус, что может быть проще? Нужно найти расстояние между точкой игрока и проверяемого предмета, сумму радиусов их сфер и посмотреть на результат, если расстояние больше суммы радиусов, то коллизии гарантированно нет. Есть алгоритмы быстрее?

кто ж Вас заставляет есть кактус? :)

Ну вот подсел я на нее, а альтернатив не знал (и до сих пор не знаю)

simple_best_world_web_master
()
Ответ на: комментарий от simple_best_world_web_master

слишком тормоза аццкие будут

Мистер, bounding sphere - это когда обсчитывается только 1 точка + ее радиус, что может быть проще?

хмы, теперь представьте себе протяжённый объект типа стена, опишите как Вы будете коллизии сферами высчитывать?

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

Есть алгоритмы быстрее?

да, считать коллизии треугольников локально на клиенте при помощи процессора видеокарточки

> кто ж Вас заставляет есть кактус? :)

Ну вот подсел я на нее, а альтернатив не знал (и до сих пор не знаю)

имя сестра, назови имя :)

shty ★★★★★
()
Ответ на: комментарий от wyldrodney

я то это вижу, намекаю ему намекаю, он ни в какую, уже прямо сказал, так он всё равно встал в позицию «я д'артаньян, а вы все...»

есть что по делу сказать или так и будешь петросянствовать?

shty ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

Мистер, bounding sphere - это когда [..] Есть алгоритмы быстрее?

да, если мы делаем бильярд, то это конечно эффективная стратегия, но, блин, это сильно частный случай и совсем не ММОРПГ :)

shty ★★★★★
()
Ответ на: комментарий от shty

> хмы, теперь представьте себе протяжённый объект типа стена, опишите как Вы будете коллизии сферами высчитывать?

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

Все очень просто и легко. Так как сфероколлизии очень простые, то работают они очень быстро, что позволяет строить деревья иерархии и за несколько проверок отсекать огромные массивы потенциальных объектов, которые необходимо проверить на коллизии.

Стена - не самый лучший объект для сфероколлизий, обычно оно используется для целых объектов, такие как дома целиком или даже огромные локации. Дома в свою очередь могут делиться на более мелкие объекты, такие как отдельные постройки, у которых в свою очередь тоже есть сферы. У этих объектов тоже есть свои объекты и т.д., в том числе и стены - у каждой стены есть центр и радиус, в который можно вписать стену. И вот когда мы дошли до листьев нашего дерева, уже можно использовать convex mesh (или любой другой меш, хоть пару треугольников), по которым производить окончательный расчет.

Таким образом, даже если у тебя около стены ошивается огромная армия, то до проверки мешей дойдет всего 1-2 десятка объектов

simple_best_world_web_master
()
Ответ на: комментарий от shty

> имя сестра, назови имя :)

Давно это было, суть такова: выбираешь себе партнера, он соглашается играть с тобой и тебя переносит на игровое поле. У тебя есть фабрики-заводы-армия, некоторый уровень технологий и пара башен, у противника все аналогично, игра идет до тех пор, пока или кто-то не разорится до предела, или сам не выйдет в лидеры. Игра идет через игральные карты, вида «око дракона, +5 к армии, -5 к стене» или около того. Название не помню, но подсел я на нее быстро

simple_best_world_web_master
()
Ответ на: комментарий от cvb

Вот именно потому что он написан на плюсах (а не на пытоне, жаве и прочем ынтырпрайзе) - он и работает нормально.

svr4
() автор топика
Ответ на: комментарий от shty

Коллизии вида bounding sphere все-равно надо считать на сервере. Или же каждому игроку передавать данные обо всех игроках, NPC и мобах на карте.

eugene2k
()
Ответ на: комментарий от eugene2k

Коллизии вида bounding sphere все-равно надо считать на сервере.

почему именно «bounding sphere», почему «надо» и почему «всё равно»?

Или же каждому игроку передавать данные обо всех игроках, NPC и мобах на карте.

а то у него нет о них информации, с кем же так весело и задорно бегает игрок по карте, как Вы думаете? :)

shty ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

Стена - не самый лучший объект для сфероколлизий

именно что, и не только стена

это взаимодействие игроков удобно описывать сферами

обычно оно используется для целых объектов, такие как дома целиком

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

у каждой стены есть центр и радиус, в который можно вписать стену

о как, новое слово :) то есть на некоторой высоте в стену можно будет воткнуться, да? :) или не долететь до неё

короче Вы сами себе препятствия на ровном месте ставите

да, можно всё шариками промоделировать, но то мартышкина работа с непонятным результатом

Таким образом, даже если у тебя около стены ошивается армия из 1-2 десятков лбов, то проверка коллизий будет осуществляться всего то для 1-2 десятка объектов

//fixed :)

shty ★★★★★
()
Ответ на: комментарий от shty

> да, можно всё шариками промоделировать, но то мартышкина работа с непонятным результатом

Ну посмотри API от DirectSDK, расскажешь потом зачем они это сделали

simple_best_world_web_master
()
Ответ на: комментарий от shty

shty> 2) операция обмена по сети - самая медленная, если Вы на каждый чих будете к серваку лезть у Вас будет пошаговая стратегия

Собственно в SecondLife примерно так и получается.

Чтобы ничего не тормозило - надо предельно упростить взаимодействие, и на стороне сервера их обрабатывать. На стороне клиента же просто сделать красивую визуализацию.

shty> 3) сервак контролирует целостность карты, на которой расставлены плоскости по которым будут считаться коллизии, а сами коллиизии считаются на клиенте движком физики

Надо просто отслеживать, какие координаты у игрока. Если координаты внезапно такие, какие быть не должны - отправить уведомление админу о том, что кто-то возможно читерствует (не автобан, так как может быть баг игры). А ещё лучше - обмен координатами с клиентом должен быть. То есть координаты отослал, сервер их принял, и анализирует. Если следующая координата невозможна - сервер отвечает сообщением об ошибке, и оставляет координаты на прежнем месте. Но чтобы сервер не перегружать - дополнительно это ограничение вводится на клиенте.

Quasar ★★★★★
()
Ответ на: комментарий от shty

shty> хехе :) ладно, полезем поглубже, на самом деле если бы всё считалось в реальном времени на серваке

SecondLife. Работает. Там Havok на серваке. Но большой пинг лучше не иметь.

Quasar ★★★★★
()
Ответ на: комментарий от shty

>а то у него нет о них информации, с кем же так весело и задорно бегает игрок по карте, как Вы думаете? :)
Откуда у него такая информация, если ты не считаешь удаленность игроков от других игроков? А если считаешь, то это уже и есть bounding sphere.

eugene2k
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.