![]() |
Ну хотя бы эту проблему решить, я лично не вижу способов.
|
Хз. Можно, например, голосованием, с проверкой границ.
|
Думал об этом... но если 2 игра, то голосование не очень. :)
|
Но это уже требует назначения главного, кто будет выносить окончательное решение. У всех алгоритмов есть свои ограничения.
|
Цитата:
То, что не нужно производить все вычисления на сервере не я придумал. Почитайте хотя бы того же Джоба Макара, сделавшего за свою флеш карьеру кучу онлайн игр. Все сводится только к валидации данных. Есть ведь разные способы избавить сервер от излишних вычислений. На крайняк можно производить промежуточные проверки важных значений. Например посылать раз в 5 секунд серверу запрос на максимальную разрешенную скорость перемещения для активного в данный момент персонажа, вместо того, чтобы производить все эти расчеты на сервере постоянно. Для результатов можно задать некие значение, которые точно нельзя перейти в игре, и если клиент присылает большие (например время выполнения задания), то считать его читером и принять необходимые меры. А можно и на самом клиенте хранить константы важных значений, и периодически производить сверку с ними. Прятать переменные в памяти и т.п. |
С рандомом всё просто: seeded random.
Ну вот есть мнение, что таки все хаки - они потому что криво пишут, а не вселенский закон. ММОРПГ оно хорошо, но далеко не самый выгодный обьект для взломов. Банки, интернет магазины, тицы всякие - выгоднее намного. Проверять - оно тоже хорошо, но только там, где проще проверить, чем самому посчитать. |
А можно поподробней про seeded random, я так понимаю это рандом основанный на общеизвестном числе, и в итоге там получается псевда рандомная последовательность, где можно повторить сид и получить туже последовательность, тоесть по сути известно когда выгодно наносить урон, а когда нет. :)
Хм, тогда может быть и можно более менее безопасную игру сделать на p2p. |
имеем 3 компа. y
1 генер |
А если этот 1 читер?
Или ты имеешь ввиду подключать вообще третье лицо который с ними не играет. |
Да, именно так.
Да, с seeded random читер сможет узнать, какой урон он нанесёт следующим ударом. Это больше подходит быстрых для игр, где надо стрелять, а не смотреть, какой урон будет и думать. Если к тому же, например, всех заставить менять сид раз в секунду на основе хэша мира и старого сида, то читер может начать играть хуже. Т.к. начнет не вовремя стрелять, чтоб не пропустить крит или дохнуть, выжидая хороший момент, вместо того, чтоб стрелять. В случае, где есть время подумать (типа героев) можно сделать например так: все игроки генерируют случайное число. Потом каждый говорит хэш (md5) его числа. (типа архива с паролем, который рассылается всем). Когда все обменяются хэшами, то число предрешено, но никто не может узнать, какое оно (и повлиять на то, каким оно будет). Потом все говорят свои числа, складывают их и получают нужное число, которое читер не может сделать таким, как ему нужно. |
Получается все таки можно сделать на p2p игрушку, причем желательно риалтайм, без страха что кто-то будет читовать. Все пошел делать Supreme Commander 3, Крису Тейлору не понравиться.
Или все же есть какие то дыры о которых не подумал? |
Видите?Моя тема полезна оказалась!)
Но всеже я не получил ответа на главный вопрос - как предотвращать взломы другими способами,кроме как валидацией? |
Цитата:
|
Цитата:
|
Сдается мне, что централизованный сервер с определенными оговорками можно заменить распределенным P2P. И пускай они сами себя валидируют )
|
А база данных?
|
Но интересно, правда? )
|
я использую обфускацию. очень интересно насколько защищает и от чего? всегда ли можно выдрать привязку к домену? уже то что обрушивает декомпиляторы (возможно не все) уже отсеивает ряд взломщиков.
|
| Часовой пояс GMT +4, время: 05:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.