Como jogar jogo cliente / servidor usando o Google App Engine (procurando tutorial).


11

(NOTA: Esta é uma duplicata de uma pergunta que fiz no SO, depois de ter esquecido temporariamente o GameDev <pendurar a cabeça com vergonha>. Quando uma é respondida, eu a vincularei novamente à outra.)

Estou tentando fazer meu primeiro jogo cliente / servidor usando o Google Apps Engine como back-end (requisito de especificação.) Fiz os tutoriais (Java), mas tudo isso parece altamente centrado no navegador.

Basicamente, eu gostaria que meu aplicativo (móvel, não que isso importe):

  • Permitir que o usuário crie uma conta de jogo (NÃO a conta dele do Google!)
  • Faça login com essa conta.
  • Pressione o botão "MARCO" para enviar uma solicitação identificada à conta para o servidor.
  • Obtenha uma resposta "POLO" do servidor.
    • Como dados (como um objeto JSON, XML-DOM ou similar), não como uma página da web.

Alguém pode me indicar um bom tutorial / projeto de amostra / leitura detalhada para me ajudar a conseguir isso? Tenho certeza de que, assim que começar a trabalhar, eu posso fazer todo o resto - mas estou tendo o problema "preso no portão de partida", não sendo capaz de trabalhar com o login básico da conta e troca de dados não HTML.

Obrigado!


O lado do servidor será escrito em Java ou Python? Um banco de dados simples no servidor é suficiente ou você precisa executar muita lógica de jogo?
Alex Schearer

@ Alex: eu estou escrevendo em Java. Haverá banco de dados simples e alguma lógica de jogo, embora eu não tenha certeza do por que isso importa para a minha pergunta. A parte em que estou ficando presa está na configuração da autenticação do usuário. O exemplo Marco / Polo foi apenas uma troca trivial de dados de jogos, mas a parte principal com a qual estou tendo problemas é o material de autenticação do usuário.
Olie

Respostas:



0

Para algo tão simples, eu recomendaria o uso de python (e, em geral, a experiência do python GAE é bastante boa.)

Tenho certeza de que, para o que você deseja fazer, o tutorial e a documentação simples do mecanismo de aplicativo serão suficientes. Você deseja criar um aplicativo com 3 controladores (verificar credenciais, criar credenciais e responder marco-polo).

Existem vários exemplos de código aberto do código python para o mecanismo de aplicativos no github e muita documentação no site oficial, eu diria: vá experimentá-lo e se você se deparar com uma parede, faça uma pergunta específica = D

Espero que ajude!


Aprender uma nova linguagem (python) não está na especificação do cliente; Eu conheço Java e estou com restrição de tempo. A hierarquia de objetos deve ser semelhante, não? Entendo que o que estou pedindo é muito, muito simples. Mas eu fiz os tutoriais, e não é só clicar para mim. Além disso, os tutoriais não mostram exatamente o que estou perguntando e não consigo descobrir como converter em "contas que não são do Google".
Olie

0

A parte que não estava clicando para mim - e, como eu suspeitava, era muito simples - era apenas uma questão de implementar a rotina doPost () (ou doGet (), mas eu uso o POST) e escrever de volta ao respondente.

Havia também alguns bits que eu não segui corretamente na primeira vez sobre a configuração dos nomes de classes e URLs de resposta, no arquivo web.xml (na pasta war).

Depois de configurar corretamente (web.xml), a rotina doPost () era simplesmente algo como:

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?");
}

Existem inúmeros outros detalhes, mas esses foram os dois que mais me penduraram. Uma vez que quebrei essa barreira simples, todo o resto fluía muito rapidamente.


OBSERVAÇÃO: Isso ainda não me indica um tutorial / explicação decente, que é o que eu pedi originalmente, se alguém me indicar uma brilhante, marcarei isso como a resposta correta.
Olie
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.