Cara permainan klien / server menggunakan Google App Engine (Mencari tutorial.)


11

(CATATAN: Ini adalah duplikat dari pertanyaan yang saya ajukan di SO, karena untuk sementara melupakan GameDev <hang head a malu>. Ketika satu dijawab, saya akan menautkannya kembali ke yang lain.)

Saya mencoba untuk melakukan permainan klien / server pertama saya menggunakan Google Apps Engine sebagai back end saya (persyaratan spesifikasi.) Saya sudah melakukan tutorial (Java), tetapi semua itu tampaknya sangat browser-centric.

Pada dasarnya, saya ingin aplikasi (seluler, tidak penting) saya untuk:

  • Izinkan pengguna membuat akun game (BUKAN akun Google mereka!)
  • Masuk dengan akun itu.
  • Tekan tombol "MARCO" untuk mengirim permintaan yang diidentifikasi akun ke server.
  • Dapatkan respons "POLO" dari server.
    • Sebagai data (seperti objek JSON, XML-DOM atau serupa), bukan sebagai halaman web.

Adakah yang bisa mengarahkan saya ke tutorial / proyek sampel / bacaan yang rinci untuk membantu saya mencapainya? Saya cukup yakin bahwa, begitu saya berhasil, saya dapat melakukan sisanya - tetapi saya mengalami masalah "macet di gerbang awal", tidak dapat melakukan login akun dasar, dan pertukaran data non-HTML.

Terima kasih!


Apakah sisi server akan ditulis dalam Java atau Python? Akankah basis data sederhana di server mencukupi atau Anda perlu melakukan banyak logika game?
Alex Schearer

@ Alex: Saya menulis di Jawa. Akan ada database sederhana dan beberapa logika permainan, meskipun saya tidak yakin mengapa itu penting untuk pertanyaan saya. Bagian di mana saya macet adalah dalam pengaturan otentikasi pengguna. Contoh Marco / Polo hanyalah pertukaran data-game yang sepele, tetapi bagian kunci yang saya alami adalah masalah otentikasi pengguna.
Olie

Jawaban:



0

Untuk sesuatu yang sederhana saya sarankan menggunakan python (dan secara umum pengalaman GAE python cukup baik.)

Saya cukup yakin bahwa untuk apa yang ingin Anda lakukan tutorial dan dokumentasi mesin aplikasi sederhana sudah cukup. Anda ingin membuat aplikasi yang memiliki 3 pengendali (periksa kredensial, buat kredensial, dan jawab marco-polo).

Ada banyak contoh open source kode python untuk mesin aplikasi di github, dan banyak dokumentasi di situs resmi, saya akan mengatakan mencobanya dan jika Anda melihat ke dinding, tanyakan pertanyaan spesifik = D

Semoga itu bisa membantu!


Mempelajari bahasa baru (python) tidak ada di spec-klien; Saya tahu Java, dan saya punya batasan waktu. Hirarki objek semua harus sama, bukan? Saya mengerti bahwa apa yang saya minta sangat-sangat-sederhana. Tapi saya sudah melakukan tutorial, dan itu tidak mengklik untuk saya. Juga, tutorialnya tidak cukup menunjukkan apa yang saya minta, dan saya tidak tahu cara mengonversi ke "bukan-Google-akun".
Olie

0

Bagian yang tidak mengklik untuk saya - dan, seperti yang saya duga, sangat sangat sederhana - adalah bahwa itu hanya masalah penerapan doPost () (atau doGet (), tapi saya menggunakan POST) rutin, dan menulis kembali ke responden.

Ada juga beberapa bit yang saya tidak ikuti dengan benar pertama kali tentang pengaturan nama kelas responden dan URL, di file web.xml (dalam folder perang.)

Setelah saya mengatur (web.xml) dengan benar, maka rutin doPost () adalah sesuatu seperti:

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

Ada banyak sekali detail lain, tetapi itu adalah dua yang paling membuatku tergantung. Begitu saya memecahkan penghalang sederhana itu, segala sesuatu mengalir dengan sangat cepat.


CATATAN: Ini masih tidak menunjukkan saya pada tutorial / langkah-langkah yang layak, yang awalnya saya minta, jika seseorang menunjuk saya ke salah satu yang brilian, saya akan menandainya sebagai jawaban yang benar.
Olie
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.