Jak grać w grę klient / serwer za pomocą Google App Engine (Szukasz samouczka).

11

(UWAGA: Jest to duplikat pytania, które zadałem na SO, ponieważ tymczasowo zapomniałem o GameDev <zawstydzić głowę>. Kiedy jedna odpowiedź zostanie udzielona, ​​połączę ją z drugą).

Próbuję zrobić moją pierwszą grę typu klient / serwer, używając Google Apps Engine jako zaplecza (wymaganie specyfikacji). Samouczki (Java), ale wszystko wydaje się bardzo skoncentrowane na przeglądarce.

Zasadniczo chciałbym, aby moja (mobilna, ale nieważna) aplikacja:

  • Zezwól użytkownikowi na utworzenie konta do gry (NIE jego konta Google!)
  • Zaloguj się przy użyciu tego konta.
  • Naciśnij przycisk „MARCO”, aby wysłać żądanie identyfikujące konto do serwera.
  • Uzyskaj odpowiedź „POLO” z serwera.
    • Jako dane (jak obiekt JSON, XML-DOM lub podobny), a nie jako strona internetowa.

Czy ktoś może wskazać mi dobry samouczek / przykładowy projekt / szczegółową lekturę, która pomoże mi to osiągnąć? Jestem prawie pewien, że kiedy już zacznę działać, mogę zrobić resztę - ale mam problem z „utknięciem przy bramce startowej”, ponieważ nie mogę uruchomić podstawowego logowania do konta i wymiana danych w formacie innym niż HTML.

Dzięki!

Olie
źródło
Czy strona serwera zostanie napisana w Javie lub Pythonie? Czy wystarczy zwykła baza danych na serwerze, czy potrzebujesz dużo logiki gry?
Alex Schearer
@Alex: Piszę w Javie. Będzie zarówno prosta baza danych, jak i logika gry, chociaż nie jestem pewien, dlaczego to ma znaczenie dla mojego pytania. Część, w której utknąłem, to konfiguracja uwierzytelniania użytkownika. Przykład Marco / Polo był po prostu trywialną wymianą danych gry, ale kluczową kwestią, z którą mam problem, jest uwierzytelnianie użytkowników.
Olie,

Odpowiedzi:

0

Dla czegoś tak prostego poleciłbym użycie Pythona (ogólnie rzecz biorąc, doświadczenie GAE w Pythonie jest całkiem dobre).

Jestem pewien, że do tego, co chcesz zrobić, wystarczy samouczek i dokumentacja silnika aplikacji. Chcesz utworzyć aplikację, która ma 3 kontrolery (sprawdź poświadczenia, utwórz poświadczenia i odpowiedz marco-polo).

W github znajduje się wiele przykładów kodu Pythona dla silnika aplikacji i dużo dokumentacji na oficjalnej stronie. Powiedziałbym, że wypróbuj go, a jeśli wpadniesz na ścianę, zadaj konkretne pytanie = D

Mam nadzieję, że to pomaga!

DFectuoso
źródło
Nauka nowego języka (python) nie jest zgodna ze specyfikacją klienta; Znam Javę i jestem ograniczony czasowo. Hierarchia obiektów powinna być podobna, nie? Rozumiem, że to, o co proszę, jest bardzo, bardzo proste. Ale zrobiłem samouczki i to po prostu dla mnie nie kliknięcie. Ponadto samouczki nie pokazują dokładnie tego, o co pytam, i nie jestem w stanie dowiedzieć się, jak przekonwertować na konta „inne niż Google”.
Olie,
0

Część, która nie klikała dla mnie - i, jak podejrzewałam, była bardzo bardzo prosta - polegała na tym, że chodzi tylko o wdrożenie doPost () (lub doGet (), ale używam procedury POST) i piszę powrót do osoby odpowiadającej.

Były też pewne bity, których nie przestrzegałem za pierwszym razem przy konfigurowaniu nazw klas i adresów URL respondentów w pliku web.xml (w folderze wojennym).

Gdy już poprawnie skonfigurowałem (web.xml), procedura doPost () była po prostu czymś w rodzaju:

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

Jest mnóstwo innych szczegółów, ale te dwa najbardziej mnie zawiesiły. Gdy przełamałem tę prostą barierę, wszystko inne spłynęło bardzo szybko.

Olie
źródło
UWAGA: To wciąż nie wskazuje mi przyzwoitego samouczka / solucji, o co pierwotnie prosiłem, więc jeśli ktoś wskaże mi genialny z nich, oznaczę to jako poprawną odpowiedź.
Olie,