Логика игры Silverlight на стороне клиента или на стороне сервера? - PullRequest
1 голос
/ 01 августа 2010

У меня сейчас некоторые проблемы.

Я занимаюсь разработкой карточной игры (Top Trumps), в которую играют два игрока.Интересно, как лучше настроить архитектуру.

Сейчас почти вся логика игры рассчитана на стороне клиента.

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

Может быть, было бы лучше обработать всю игровую логику на стороне сервера с помощью службы WCF и просто использовать сторону клиента в качестве докладчика.WCF будет обрабатывать всю игровую логику, сохранять / загружать состояние в базе данных, и два клиента могут запрашивать состояние игры, которое отправляется через XML.

Что вы думаете об этом подходе?Как насчет производительности?Или кто-то может знать лучший подход?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 01 августа 2010

Логика игры на сервере - единственный способ предотвратить мошенничество любым эффективным способом. Никогда не доверяй клиенту.

1 голос
/ 01 августа 2010

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

...