Форум Oni

Русскоязычный форум поклонников игры «Они» от Bungie

  • Здравствуйте, Гость

#121 11-07-2009 08:52:25

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

doktordulit написал(а):

А че продолжаем трепатся?

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

Оффлайн

 

#122 11-07-2009 10:11:28

Ricker (муж.)
Агент TCTF
Откуда: Ставрополь
Регистрация: 17-06-2008
Сообщений: 134
Профиль

Re: Разработка мультиплеера

Ладно, так уж и быть. Меня зарядили вернуться. Так что напишу что куда да куда и зачем позже, но чуть позже...

Отредактировал(а) Ricker (11-07-2009 10:12:04)

Оффлайн

 

#123 11-07-2009 12:33:12

geyser (муж.)
Учёный Синдиката
Откуда: угадайте
Регистрация: 24-06-2007
Сообщений: 1352
Профиль  Вебсайт

Re: Разработка мультиплеера

Я уже сказал, как обстоит дело с мультиплеером на основе движка Они. В демонстрационной версии проекта Oni Flatline для каждого перса "передаётся" и обновляется всего пара дюжин байтов за раз (как-то: положение и направление перса, ссылка на анимацию, номер фрейма анимации, и "битсет нажатых клавиш"). Это очень мало, и создаёт относительное раздолье для сетевой связи, но всё равно передачу пакетов надо оптимизировать, как-то застраховаться от помех, тестировать, и развивать синхронизацию дальше, по мере надобности. Такова задача.
Средства в вашем распоряжении - ассемблер и Си, можно надстройку на C++. Во всяком случае вам придётся иметь в виду специфику онишного рантайма, т.е., качество и количество данных, характеризующих состояние игры и игроков, а также характерные причины изменений этого состояния. Для этого вам в первую очередь надо хоть как-то изъясняться по английски, чтобы учиться у буржуев - я вам не переводчик, хотя в разговоре могу поучаствовать и кое-что дообъяснить. Главным пособием для работы с онишным рантаймом является ассемблерный код Они, местами уже осмысленный в IDA и переведённый в Си и C#. Есть сетевой код Oni Player, который делали typhen и Kumo пару лет назад. Есть исходник собственно Oni Flatline и нового Си-Даодана от Rossy. Флаг в руки - то есть выходите из тени, общайтесь, овладевайте проблемой - и постепенно поймёте, чем вы можете быть полезны.

Что касается онишного мультиплеера на новом движке, об этом я тоже говорил. Все популярные движки - либо движки для шутеров, либо вообще игрушечные движки с минимальной функциональностью песочницы. Файтинговый движок а ля Они - это не хухры-мухры, и чтобы довести до такого уровня существующий не-файтинговый движок, надо быть не только идейным чуваком, но настоящим программистом. Настоящие программисты, как правило, пишут не на виртуальном бейсике, а на реальном C или C++, на худой конец на C#. Вот вам примеры настоящих программистов - Pierre (Konoko Payne), Neo (Oni Game), David (Lugaru, Overgrowth). Можете выбрать из этого самую перспективную ветку (подскажу - на Oni Game пока лучше не рассчитывать), подружиться с разрабом, и поучаствовать в проекте на роли разработчика сетевого кода или улучшения поддержки онишного геймплея (на данный момент и Konoko Payne, и Overgrowth грешат некоторой "сыростью"). Что вы говорите? вы не можете сотрудничать с Пьером или Давидом, потому что они не говорят по-русски? Открою вам ещё одну тайну реального мира - настоящие программисты говорят по-английски. И в более общем плане - всем тем, кто хочет участвовать в реальном проекте, по большому счёту одна дорога - учиться, учиться и ещё раз учиться - начиная с самого фундаментального языка в мире программистов - английского.


Если у тебя есть фонтан, заткни его; дай отдохнуть и фонтану.

Оффлайн

 

#124 11-07-2009 13:13:12

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

Вы лучше подумайте как сделать 100% защиту от читов. Вот идея моего брата - клиенты проверяют друг у друга данные. Если у кого-то не те данные - это сообщается на сервер. Нагрузка на сервер при этом низкая. Вообще я считаю что полностью защититься нельзя от "умного" аимбота, от остального можно.

Оффлайн

 

#125 11-07-2009 13:21:52

geyser (муж.)
Учёный Синдиката
Откуда: угадайте
Регистрация: 24-06-2007
Сообщений: 1352
Профиль  Вебсайт

Re: Разработка мультиплеера

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


Если у тебя есть фонтан, заткни его; дай отдохнуть и фонтану.

Оффлайн

 

#126 11-07-2009 13:35:29

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

Если есть админ. А если он уехал, или его долго нет? Я говорю про античит, если нет живого админа. Также он нужен чтоб не обвинять никого в читерстве, если он не читерит, но очень хорошо играет. Как мы узнаем - читер это или игрок-профи? Я читал что часто в контре игроков-профи обвиняют в читерстве.

Отредактировал(а) Manticore (11-07-2009 13:36:24)

Оффлайн

 

#127 11-07-2009 16:20:37

Ricker (муж.)
Агент TCTF
Откуда: Ставрополь
Регистрация: 17-06-2008
Сообщений: 134
Профиль

Re: Разработка мультиплеера

Manticore

Тебе уже сказано, что рано забегать вперед. И хватит только на уровне Counter-Strike жить... Только там античиты в моде...

Оффлайн

 

#128 11-07-2009 16:42:34

Gumby
Рабочий
Регистрация: 09-07-2009
Сообщений: 15
Профиль

Re: Разработка мультиплеера

Manticore написал(а):

Вы лучше подумайте как сделать 100% защиту от читов. Вот идея моего брата - клиенты проверяют друг у друга данные. Если у кого-то не те данные - это сообщается на сервер. Нагрузка на сервер при этом низкая. Вообще я считаю что полностью защититься нельзя от "умного" аимбота, от остального можно.

Not needed. The client is only sending keystrokes\mouse to the server. Aimbot is not important (Oni's bullets are too slow, the game is mostly about melee, and gun implementation will be last), but not too hard to detect. Wallhacks are annoying, but harder to gaurd against. Especially because they use the same techniques (overwriting the memory) that our multiplayer would be based off of.

Client->Server
Keystrokes (a bitset)
Mouse x\y
Chat data
Player configuration

Server->Client
XYZ for all players
Rotation for all players
Head Rotation for all players
Animation\Frame for all players
Some Particle events
Chat data
Special commands

I apologize again for coming on a Russian forum without knowing Russian. The English forum isn't a good place for discussion of this sort of thing at the moment. Most of the people who would know about this sort of thing left already.

Отредактировал(а) Gumby (11-07-2009 16:50:37)


I don't speak Russian. :)

Оффлайн

 

#129 11-07-2009 16:57:41

Ricker (муж.)
Агент TCTF
Откуда: Ставрополь
Регистрация: 17-06-2008
Сообщений: 134
Профиль

Re: Разработка мультиплеера

Gumby написал(а):

I apologize again for coming on a Russian forum without knowing Russian.

No needed. Who wants that understand you. Sorry for my english.

Отредактировал(а) Ricker (11-07-2009 16:58:58)

Оффлайн

 

#130 11-07-2009 17:10:11

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Разработка мультиплеера

я уже говорил,и скажу ещо раз.Что такое мультиплеер?Это передача информации с одного движка на другой,
Информацию,хоть самую обычную:координаты игрока(типа ~1324.6353 -21.0000 - 657.6778),инвентарь игрока(w8_mbo,2 hypo,3 cells.),здоровье игрока(145 hp) и что-то типа статистики(это потом).
Значит сначало надо научится СОХРАНЯТЬ инфу хоть в .тхт фаил.Потом передовать инфу на сервер,и с сервера
на другой клиент.Это тоже самое что предлогал Гамби(однако у него ещо был чат,я щитаю это лишним).
Так что?Начнём?


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#131 11-07-2009 17:18:51

vitya (муж.)
Мутантмуро
Откуда: Саратов
Регистрация: 14-06-2009
Сообщений: 918
Профиль  Вебсайт

Re: Разработка мультиплеера

doktordulit

Витя!Учись у Гамби!С ним хоть нормально поговорить можно!
Или хоть,не думай о Они во время уроков русского!

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

Оффлайн

 

#132 11-07-2009 17:20:19

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

Gumby написал(а):

The client is only sending keystrokes\mouse to the server

значит серверу всё обрабатывать? На него же нагрузка большая будет! Gumby, ты понимаешь что я пишу? Если да, то почему по русски не пишешь?
Когда придет читер и не будет админа, включит бессмертие, будет летать с огнеметом и ходить сквозь стены (как в GTA SA), вы меня вспомните!
Аимбот...Как ты узнаешь, мышкой я навел прицел или прогой? Я Directx хакну и буду делать вид что мышкой целюсь. Прога-aimbot разумеется умная, наводит только когда противник в поле зрения и прицел на нем постоянно не держит. Вообщем имитирует, будто я мышой целюсь.
Зачем следить за кем то, писать демки? Вам делать нечего? Не лучше ли защититься один раз и не вспоминать про читеров?
Банить по IP будете плохих игроков? А если динамический, тогда что?

Отредактировал(а) Manticore (11-07-2009 17:35:12)

Оффлайн

 

#133 11-07-2009 17:33:57

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Разработка мультиплеера

Manticore написал(а):

огда придет читер и не будет админа, включит бессмертие

А другие нажалуются и забанят!


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#134 11-07-2009 17:36:17

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

doktordulit написал(а):

А другие нажалуются и забанят!

у них нет прав админа, они не могут банить. А если у админа будет плохое настроение и он просто так забанит - кому жаловаться?

Оффлайн

 

#135 11-07-2009 18:05:36

Gumby
Рабочий
Регистрация: 09-07-2009
Сообщений: 15
Профиль

Re: Разработка мультиплеера

doktordulit написал(а):

я уже говорил,и скажу ещо раз.Что такое мультиплеер?Это передача информации с одного движка на другой,
Информацию,хоть самую обычную:координаты игрока(типа ~1324.6353 -21.0000 - 657.6778),инвентарь игрока(w8_mbo,2 hypo,3 cells.),здоровье игрока(145 hp) и что-то типа статистики(это потом).
Значит сначало надо научится СОХРАНЯТЬ инфу хоть в .тхт фаил.Потом передовать инфу на сервер,и с сервера
на другой клиент.Это тоже самое что предлогал Гамби(однако у него ещо был чат,я щитаю это лишним).
Так что?Начнём?

СОХРАНЯТЬ? My translator didn't quite get that word.

Manticore написал(а):

Gumby написал(а):

The client is only sending keystrokes\mouse to the server

значит серверу всё обрабатывать? На него же нагрузка большая будет! Gumby, ты понимаешь что я пишу? Если да, то почему по русски не пишешь?
Когда придет читер и не будет админа, включит бессмертие, будет летать с огнеметом и ходить сквозь стены (как в GTA SA), вы меня вспомните!
Аимбот...Как ты узнаешь, мышкой я навел прицел или прогой? Я Directx хакну и буду делать вид что мышкой целюсь. Прога-aimbot разумеется умная, наводит только когда противник в поле зрения и прицел на нем постоянно не держит. Вообщем имитирует, будто я мышой целюсь.
Зачем следить за кем то, писать демки? Вам делать нечего? Не лучше ли защититься один раз и не вспоминать про читеров?
Банить по IP будете плохих игроков? А если динамический, тогда что?

I use a translation service. Isn't the internet wonderful?

About admins: Normally, you would just find a better server with better admins to go on.

About cheats, there are ways to guard against such things. I know none of them are perfect. Finding a server with good admins helps. Lets worry about making a working netgame before we worry about cheaters, hmm?


I don't speak Russian. :)

Оффлайн

 

#136 11-07-2009 18:34:30

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Разработка мультиплеера

СОХРАНЯТЬ инфу хоть в .тхт фаил-Save info(about player) in .txt document.


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#137 11-07-2009 18:55:49

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Разработка мультиплеера

Manticore, разумеется, серверу. если сервер будет заниматься лишь собранием клиентов в кучку и организацией связи между ними, а всё остальное оставить на совесть клиента - последнему будет достаточно послать пакет "у меня ртутный арбалет с 65535 патронами и я выстрелил в каждого присутствующего по двести раз". в данный момент движок безо всяких проблем тянет десяток дерущихся тел с искусственным интеллектом - просто управление будет передано на удалённую машину. к тому же, графическая часть может быть забыта, если сервер выделенный.
аимбот как надстройка над клиентом, "смотрящий" на экран и "нажимающий" кнопку при нахождении в прицели врага - контрится сложной античитовой надстройкой на стороне клиента, которую клиент может отключить, но не имитировать её наличие. ты сначала попробуй написать такой аимбот. +) остальное - баги и недочёты системы, которых на данный момент нет: нужна лишь достаточно своевременная синхронизация всех действий. в моём понимании - это некий баланс между абсолютным unlagged и минимализмом обмена пакетов, чтобы реакция на все действия была как можно более мгновенной.
против читеров без админа - бойкот, система голосования за бан. всё, что дальше (wallhack'и, попытки абузить чем-то, ведущим к рассинхронизации у остальных игроков) - чисто гипотетические проблемы, ещё даже не возникшие и возникать не собирающиеся. проверили хеш и поехали.

Gumby написал(а):

СОХРАНЯТЬ? My translator didn't quite get that word.

TO SAVE, heh. +) Your translator doesn't like CAPS. )

Оффлайн

 

#138 11-07-2009 19:51:00

Manticore 
VIP
Регистрация: 10-04-2009
Сообщений: 1108
Профиль

Re: Разработка мультиплеера

Мih@ написал(а):

если сервер будет заниматься лишь собранием клиентов в кучку и организацией связи между ними

в SWAT 4 версии 1.0 в мультиплеере я указываю для пушки "отдача ноль" и "большой зум" в файле, и сервер принимает эту инфу. Там еще есть проколы, вот здесь я их выложил http://otvet.mail.ru/question/20487948/ . Я в свою Ram память загружаю "HasSpecialCondition=False", сервер видит "False", то есть отменено, и я могу арестовывать своих. Сервер проверяет данные на винчестере, а не в Ram. В версии 1.1 в Swat-4 сервер проверяет данные в Ram. Сервер почему-то эти данные не обрабатывает, он надеется на честность игроков.
В Оньке когда сервер будет посылать координаты игроков конкретному игроку, посылать будет только когда игрок в поле зрения? А когда он за стеной, ничего не посылается? Это защита от радара, когда координаты игроков не посылаются, если они за стеной.
Кстати, я видел в SWAT 4 радар лично, не через все стены было видно, но через многие видно было. Сервер для упрощения посылает координаты даже если игрок за 10 стенками? Если сервер в Оньке будет проверять кто за какой стеной - много расчетов будет или нет?

Отредактировал(а) Manticore (11-07-2009 20:00:56)

Оффлайн

 

#139 11-07-2009 20:02:30

Gumby
Рабочий
Регистрация: 09-07-2009
Сообщений: 15
Профиль

Re: Разработка мультиплеера

Manticore написал(а):

Мih@ написал(а):

если сервер будет заниматься лишь собранием клиентов в кучку и организацией связи между ними

в SWAT 4 версии 1.0 в мультиплеере я указываю для пушки "отдача ноль" и "большой зум" в файле, и сервер принимает эту инфу. Там еще есть проколы, вот здесь я их выложил http://otvet.mail.ru/question/20487948/ . Я в свою Ram память загружаю "HasSpecialCondition=False", сервер видит "False", то есть отменено, и я могу арестовывать своих. Сервер проверяет данные на винчестере, а не в Ram. В версии 1.1 в Swat-4 сервер проверяет данные в Ram. Сервер почему-то эти данные не обрабатывает, он надеется на честность игроков.
В Оньке когда сервер будет посылать координаты игроков конкретному игроку, посылать будет только когда игрок в поле зрения? А когда он за стеной, ничего не посылается? Это защита от радара, когда координаты игроков не посылаются, если они за стеной.
Кстати, я видел в SWAT 4 радар лично, не через все стены было видно, но через многие видно было. Сервер для упрощения посылает координаты даже если игрок за 10 стенками? Если сервер в Оньке будет проверять кто за какой стеной - много расчетов будет или нет?

Just because another game has a fail server\client relationship doesn't mean we have to.


I don't speak Russian. :)

Оффлайн

 

#140 11-07-2009 20:56:24

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Разработка мультиплеера

Manticore, это локальная проблема в реализации... клиент сказал "я всех убил", сервер поверил - разработчика приговорить к семи годам расстрела. ну пускай сервер все настройки принудительно навязывает, и все дела.
мапхак/валлхак - отдельная песня. на графическом уровне и стёкла прозрачны, и jello есть. прозрачность стен, радиус, высота - всё есть. даже по умолчанию видно куда больше, чем следовало бы "от первого лица". следовательно, иным будет и геймплей. а с прорисовкой антихаковой и думать нечего - не рисовать же только половину высунувшегося чара, если он наполовину торчит. или пускай сервер сам думает графику, а клиентам скриншоты рассылает. +)) короче, это вообще не то, о чём стоит задумываться в ближайшем будущем. вот то, что по онишной физике сквозь стены работают удары и даже броски - это жестоко. -_-

Оффлайн

 

Board footer

© 2006-2024 Амэ & Mih@
ОНИмия – фан-сайт игры Oni
Движок форума - модифицированный PunBB