Использование RoR и Active Record Session для реализации игрового сервера без читов - PullRequest
0 голосов
/ 12 октября 2010

Я углубляюсь в RoR и планирую создать несколько сайтов. Помимо веб-сайтов, я хотел бы использовать RoR для создания простого API-интерфейса игрового сервера RESTful, который можно использовать для организации игры для двух игроков для iOS, которую я пишу. Игра основана на времени головоломки (первый игрок, решивший головоломку, выигрывает), и игроки будут общаться с игровым сервером только каждые десять секунд или пять минут, и объем данных, поступающих на сервер / с сервера, вероятно, выиграл. не более нескольких сотен байтов. Поток клиент-сервер будет выглядеть примерно так ...

  1. Совпадение происходит на клиентах, использующих API Game Center для создания списка из двух игроков (клиентов)
  2. Оба клиента регистрируются и проходят аутентификацию на игровом сервере, чтобы начать новую игру, затем игровой сервер синхронизирует запуск игры на обоих клиентах
  3. Оба игрока начинают разгадывать загадку, когда один из игроков заканчивает (решает загадку или выходит), клиент отправляет результаты на сервер.
  4. Когда оба игрока заканчивают работу, сервер сохраняет результаты в БД и отправляет результаты обоим клиентам, после чего игровой сеанс заканчивается.

Не реализовав это, похоже, это будет довольно хорошо работать с RoR. Обман, однако, является проблемой, и моя идея для решения состоит в том, чтобы использовать концепцию RoR Active Record Session для аутентификации игроков в начале игры. То есть сервер может обрабатывать запросы только тех клиентов, которые были аутентифицированы на шаге 2 выше.

  • Видите ли вы какие-либо проблемы с использованием RoR для реализации такого типа пошагового игрового сервера?
  • Как уже упоминалось выше, я пытаюсь предотвратить мошенничество, ограничивая проверку подлинности игрока через мое приложение для iOS. Каким образом я могу гарантировать, что мое приложение для iOS запрашивает аутентификацию?
  • Если предположить, что я могу эффективно ограничить проверку подлинности игрока своим приложением для iOS, я упускаю какие-либо очевидные способы, которыми игроки все еще могут отправлять серверу ложные данные и обманывать?

Заранее большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 14 октября 2010
  1. Я не вижу никаких проблем с использованием rails для этого или любого другого веб-языка в этом отношении.
  2. Я считаю, что правильным методом аутентификации для ваших требований является OAuth.
  3. На вашем месте я бы рекомендовал ограничить количество ваших клиентов только одним входом в систему за один раз.
...