Как сделать клиент / серверную игру с помощью Google App Engine (Ищете учебник.)


11

(ПРИМЕЧАНИЕ: это дубликат вопроса, который я задал на SO, временно забыв о GameDev <повесить голову в позоре>. Когда один ответит, я свяжу его с другим.)

Я пытаюсь сделать свою первую клиент-серверную игру с использованием Google Apps Engine в качестве бэкэнда (требования спецификации). Я сделал учебные пособия (Java), но все это в значительной степени ориентировано на браузер.

По сути, я хотел бы, чтобы мое приложение (мобильное, не так уж и важно):

  • Разрешить пользователю создавать игровую учетную запись (НЕ свою учетную запись Google!)
  • Войдите в систему с этим аккаунтом.
  • Нажмите кнопку «MARCO», чтобы отправить запрос на идентификацию учетной записи на сервер.
  • Получите ответ «ПОЛО» от сервера.
    • Как данные (например, объект JSON, XML-DOM или аналогичные), а не как веб-страница.

Может кто-нибудь указать мне хороший учебник / пример проекта / подробное чтение, чтобы помочь мне достичь этого? Я почти уверен, что, как только я это заработаю, я смогу сделать все остальное - но у меня проблема «застрял у стартовых ворот», я не могу работать с базовым входом в учетную запись и обмен данными не в HTML.

Спасибо!


Будет ли серверная часть написана на Java или Python? Хватит ли простой базы данных на сервере или вам нужно выполнять большую игровую логику?
Алекс Шеарер

@ Алекс: Я пишу на Java. Будет и простая база данных, и некоторая игровая логика, хотя я не уверен, почему это важно для моего вопроса. Часть, в которой я застреваю, заключается в настройке аутентификации пользователя. Пример Marco / Polo был просто тривиальным обменом игровыми данными, но ключевая часть, с которой у меня возникли проблемы, - это аутентификация пользователя.
Оли

Ответы:



0

Для чего-то такого простого я бы порекомендовал использовать python (и в целом опыт работы с python GAE довольно хороший).

Я уверен, что для того, что вы хотите сделать, достаточно простого руководства по движку приложений и документации. Вы хотите создать приложение, которое имеет 3 контроллера (проверить учетные данные, создать учетные данные и ответить на marco-polo).

В github есть множество примеров кода с открытым исходным кодом для движка приложений в github, а также много документации на официальном сайте, я бы сказал, попробуйте, и если вы столкнетесь со стеной, задайте конкретный вопрос = D

Надеюсь, это поможет!


Изучение нового языка (python) не входит в спецификацию клиента; Я знаю Java, и я ограничен во времени. Иерархия объектов должна быть одинаковой, нет? Я понимаю, что то, что я спрашиваю, очень-очень просто. Но я сделал уроки, и это просто не для меня. Кроме того, учебники не показывают, что я спрашиваю, и я не могу понять, как конвертировать в аккаунты, не принадлежащие Google.
Olie

0

Часть, которая меня не интересовала - и, как я подозревал, была очень очень простой - заключалась в том, что это просто вопрос реализации подпрограммы doPost () (или doGet (), но я использую POST), и записи вернуться к ответчику.

Также были некоторые моменты, которые я не совсем правильно выполнил при настройке имен классов и URL-адресов респондента в файле web.xml (в папке war).

После того, как я правильно настроил (web.xml), подпрограмма doPost () стала чем-то вроде:

public void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws IOException {
    String reqTypeStr = req.getParameter("reqType");
    if (reqTypeStr.equalsIgnoreCase("marco")
        resp.getWriter().println("Polo!");
    else
            resp.getWriter().println("huh?");
}

Есть множество других деталей, но это были те, которые повесили меня больше всего. Как только я преодолел этот простой барьер, все остальное слилось очень быстро.


ПРИМЕЧАНИЕ. Это по- прежнему не указывает мне на достойное руководство / пошаговое руководство, о котором я изначально просил, поэтому, если кто-то укажет мне на блестящее из них, я отмечу это как правильный ответ.
Оли
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.