|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
Цитата:
Итак, web-сервис возвращает нам время. И тогда клиент говорит: "ну раз уже прошло 20 минут, начислю-ка я золота-кристаллов-энергии". А что будет, если я, например подделаю ответ сервера (да-да, банально через прокси)? Тогда игрок начислит энергию раньше времени, ведь так? И более того, нам придется на сервере проверять: "а почему игрок купил себе товар N?" - потому что у него было золото "а откуда у игрока золото?" - оно начислилось в пол-второго позавчера "а почему оно начислилось?" - потому что гладиолусы! И вот таких причинно-следственных взаимосвязей будет тем больше, чем больше у нас данных в игре. И как только мы делаем что-то вроде (Боже упаси) фермы, то получаем огромное количество причин, по которым мы можем или не можем что-то делать (с привязкой ко времени). Проверять все на клиенте и на сервере ужасно сложно, потому что приходится писать 2 одинаковых набора команд на 2 языках (например, AS3 и Java) Решение: Составляем схему всех-всех данных игрока в игре (json) Разбиваем все действия в игре на команды (функции, меняющие наши данные) Пишем команды на кросс-компилируемом языка (например Haxe) ... профит! Важною деталью тут является то, что - каждая команда отправляется на сервер с приписочкой, когда именно она была исполнена - перед тем ка исполнить команду, сервер проверяет, что а) команда выполнена после создания пользователя б) команда выполнена после предыдущей команды в) команда выполнена раньше текущего времени на сервере Все, обмануть сервер нельзя никак. Вот такие пироги. Удачи с web-сервисами =)
__________________
...вселенская грусть |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
Веб сервис реализуется именно с подтверждениями ответов от сервера. Таймер это такой же девайс как датчик температуры или камера слежения.
|
|
|||||
Регистрация: Aug 2008
Сообщений: 27
|
Цитата:
|
Часовой пояс GMT +4, время: 06:42. |
|
« Предыдущая тема | Следующая тема » |
|
|