Come giocare a client / server usando Google App Engine (Cerchi tutorial.)


11

(NOTA: questo è un duplicato di una domanda che ho posto su SO, dopo essermi temporaneamente dimenticato di GameDev <appendere la vergogna>. Quando si risponde a uno, lo collegherò di nuovo all'altro.)

Sto cercando di fare il mio primo gioco client / server utilizzando Google Apps Engine come back-end (requisito di specifica.) Ho fatto i tutorial (Java), ma tutto sembra fortemente incentrato sul browser.

Fondamentalmente, vorrei che la mia app (mobile, non importa) per:

  • Consenti all'utente di creare un account di gioco (NON il suo account Google!)
  • Accedi con quell'account.
  • Premere il pulsante "MARCO" per inviare una richiesta identificata dall'account al server.
  • Ricevi una risposta "POLO" dal server.
    • Come dati (come un oggetto JSON, XML-DOM o simili), non come una pagina Web.

Qualcuno può indicarmi un buon tutorial / progetto di esempio / lettura dettagliata per aiutarmi a raggiungere questo obiettivo? Sono abbastanza sicuro che, una volta che avrò funzionato, potrò fare tutto il resto, ma sto avendo il problema "bloccato al gate di partenza", non potendo lavorare su login account di base e scambio di dati non HTML.

Grazie!


Il lato server verrà scritto in Java o Python? Sarà sufficiente un semplice database sul server o è necessario eseguire molta logica di gioco?
Alex Schearer,

@Alex: sto scrivendo in Java. Ci saranno sia semplici database che alcune logiche di gioco, anche se non sono sicuro del perché sia ​​importante per la mia domanda. La parte in cui mi sto bloccando è nella configurazione dell'autenticazione dell'utente. L'esempio Marco / Polo è stato solo un banale scambio di dati di gioco, ma la parte fondamentale con cui ho riscontrato problemi è l'autenticazione dell'utente.
Olie,

Risposte:



0

Per qualcosa di così semplice, consiglierei di usare Python (e in generale l'esperienza GAE di Python è abbastanza buona.)

Sono abbastanza sicuro che per quello che vuoi fare il semplice tutorial e la documentazione del motore di app saranno sufficienti. Vuoi creare un'applicazione con 3 controller (controlla le credenziali, crea le credenziali e rispondi a marco-polo).

Ci sono un sacco di esempi open source di codice Python per il motore dell'app in Github, e molta documentazione sul sito ufficiale, direi di provare e se ti imbatti in un muro fai una domanda specifica = D

Spero possa aiutare!


L'apprendimento di una nuova lingua (python) non è nelle specifiche del cliente; Conosco Java e sono in orario limitato. La gerarchia degli oggetti dovrebbe essere simile, no? Capisco che quello che sto chiedendo è molto, molto semplice. Ma ho fatto i tutorial e non fa clic per me. Inoltre, i tutorial non mostrano esattamente ciò che sto chiedendo e non riesco proprio a capire come convertire in "account non Google".
Olie,

0

La parte che non faceva clic per me - e, come sospettavo, era molto semplice - era che si trattava solo di implementare la routine doPost () (o doGet (), ma utilizzo POST) e scrivere di nuovo al rispondente.

Ci sono stati anche alcuni bit che non ho seguito abbastanza correttamente la prima volta sull'impostazione dei nomi e degli URL delle classi del risponditore, nel file web.xml (nella cartella war).

Una volta impostato correttamente (web.xml), la routine doPost () era semplicemente qualcosa del tipo:

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

Ci sono una miriade di altri dettagli, ma quelli sono stati i due che mi hanno appeso di più. Una volta che ho rotto quella semplice barriera, tutto il resto scorreva molto rapidamente insieme.


NOTA: Questo non mi punta ancora a un tutorial / walkthrough decente, che è quello che ho chiesto inizialmente, se qualcuno mi indica uno di quelli brillanti, lo segnerò come la risposta corretta.
Olie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.