Google Application Engine - PullRequest
       5

Google Application Engine

4 голосов
/ 29 апреля 2011
  1. Хотелось бы узнать, можно ли с легкостью провести на сервере приложений Google сетевую серверную игру для игры наподобие packman? С точки зрения скорости отклика. Я хочу установить сервер, который может управлять игровыми столами, в которых будут проходить игры. На каждом столе будут только два игрока.

  2. Я не понимаю, могу ли я загрузить Java-апплет в GAE и как я это делаю.

  3. Любые другие предложения о других бесплатных серверах, которые могут подойти для экшн-игр в реальном времени?

Спасибо

Ответы [ 2 ]

3 голосов
/ 29 апреля 2011
  1. GAE поддерживает только кратковременные соединения (максимум 30 секунд). Это означает, что вы не можете иметь постоянное соединение между вашим клиентом и сервером GAE. Это эффективно предотвращает push-уведомления от сервера к клиенту, которые необходимы в большинстве игровых установок.

  2. Чтобы устранить это ограничение, Google ввел Channel API , который позволяет передавать сообщения с сервера на клиент. Однако вам нужно использовать их библиотеку JavaScript на стороне клиента. Вы можете написать апплет, который вызывает javascript для доступа к этой библиотеке, но это может быть чем-то вроде клочья.

В целом, из-за этих ограничений GAE может не подходить для ваших нужд.

Обновление:

Существует еще одна причина, по которой GAE не подходит для связи между пользователями в режиме реального времени: запрос клиента в приложение GAE может быть обработан любым сервером, выбранным Google. Два взаимодействующих пользователя могут быть подключены к двум разным серверам, даже в разных дата-центрах (возможно, даже на разных континентах). Для передачи данных между ними вам нужно хранить все сообщения в хранилище данных (медленное) или в кэше памяти (ненадежное и, возможно, медленное, потому что оно должно распространяться между серверами / центрами данных).

0 голосов
/ 24 апреля 2012
  1. Вы можете использовать постоянный бэкэнд для быстрого ответа и преодолеть ограничение 30 ответов.Вы можете вручную определить экземпляры бэкэндов.Если вы установите его как постоянный - он всегда будет включен.И вы можете использовать собственную реализацию в кеш-памяти для быстрого хранения данных.Не уверен, но, возможно, производительность хранилища данных будет в порядке для вас.Если с DataStore все в порядке и у вас нет запросов, которые могут занять более 30 секунд - используйте fronend с настройками высокой производительности.
  2. Да, вы можете загрузить апплет.Просто поместите его где-нибудь в папку war и сделайте ссылку на него из вашего jsp / html
  3. Ну, если вам нужна java, бесплатная для запуска вашего проекта - я не знаю альтернатив GAE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...