Cách chơi trò chơi máy khách / máy chủ bằng Google App Engine (Tìm kiếm hướng dẫn.)


11

(LƯU Ý: Đây là một bản sao của câu hỏi tôi đã hỏi trên SO, đã tạm thời quên về GameDev <treo đầu trong sự xấu hổ>. Khi một câu trả lời, tôi sẽ liên kết nó lại với câu hỏi khác.)

Tôi đang cố gắng thực hiện trò chơi máy khách / máy chủ đầu tiên của mình bằng Google Apps Engine làm phần cuối (yêu cầu đặc điểm kỹ thuật.) Tôi đã thực hiện các hướng dẫn (Java), nhưng tất cả dường như rất tập trung vào trình duyệt.

Về cơ bản, tôi muốn ứng dụng của tôi (di động, không quan trọng):

  • Cho phép người dùng tạo tài khoản trò chơi (KHÔNG phải tài khoản Google của họ!)
  • Đăng nhập bằng tài khoản đó.
  • Nhấn nút "MARCO" để gửi yêu cầu xác định tài khoản đến máy chủ.
  • Nhận phản hồi "POLO" từ máy chủ.
    • Là dữ liệu (như đối tượng JSON, XML-DOM hoặc tương tự), không phải dưới dạng trang web.

Bất cứ ai có thể chỉ cho tôi một hướng dẫn tốt / dự án mẫu / đọc chi tiết để giúp tôi đạt được điều đó? Tôi khá chắc chắn rằng, một khi tôi đã làm việc đó, tôi có thể làm tất cả phần còn lại của nó - nhưng tôi gặp vấn đề "bị kẹt ở cổng bắt đầu", không thể làm việc đăng nhập tài khoản cơ bản và trao đổi dữ liệu không phải HTML.

Cảm ơn!


Là phía máy chủ sẽ được viết bằng Java hoặc Python? Một cơ sở dữ liệu đơn giản trên máy chủ có đủ hay bạn cần thực hiện nhiều logic trò chơi?
Alex Schearer

@Alex: Tôi đang viết bằng Java. Sẽ có cả cơ sở dữ liệu đơn giản và một số logic trò chơi, mặc dù tôi không chắc tại sao điều đó lại quan trọng đối với câu hỏi của tôi. Phần mà tôi gặp khó khăn là trong quá trình thiết lập xác thực người dùng. Ví dụ Marco / Polo chỉ là một trao đổi dữ liệu trò chơi tầm thường, nhưng phần quan trọng tôi gặp rắc rối là công cụ xác thực người dùng.
Olie

Câu trả lời:


3

Tôi có một ví dụ hoạt động của trò chơi máy khách / máy chủ được xây dựng trên Máy ứng dụng. Bạn có thể fork nó trên GitHubthử bản demo trực tiếp .

Tôi chưa viết về nó hoặc bất cứ điều gì, nhưng mã được nhận xét tương đối tốt. Chúc vui vẻ!


0

Đối với một cái gì đó đơn giản, tôi khuyên bạn nên sử dụng python (và nói chung trải nghiệm GAE python là khá tốt.)

Tôi khá chắc chắn rằng với những gì bạn muốn làm, hướng dẫn và tài liệu về công cụ ứng dụng đơn giản sẽ đủ. Bạn muốn tạo một ứng dụng có 3 bộ điều khiển (kiểm tra thông tin đăng nhập, tạo thông tin đăng nhập và trả lời marco-polo).

Có một loạt các ví dụ mã nguồn mở của mã python cho công cụ ứng dụng trong github và rất nhiều tài liệu trên trang web chính thức, tôi sẽ nói hãy dùng thử và nếu bạn gặp phải một câu hỏi cụ thể = D

Mong rằng sẽ giúp!


Học một ngôn ngữ mới (python) không có trong spec-client; Tôi biết Java và đang bị hạn chế về thời gian. Hệ thống phân cấp đối tượng nên giống nhau, không? Tôi hiểu rằng những gì tôi đang hỏi rất đơn giản. Nhưng tôi đã thực hiện các hướng dẫn, và nó chỉ không nhấp cho tôi. Ngoài ra, các hướng dẫn không hiển thị hoàn toàn những gì tôi đang hỏi và tôi hoàn toàn không thể tìm ra cách chuyển đổi sang "không phải tài khoản Google".
Olie

0

Phần không nhấp cho tôi - và, như tôi nghi ngờ, rất đơn giản - đó chỉ là vấn đề thực hiện thói quen doPost () (hoặc doGet (), nhưng tôi sử dụng POST) và viết trở lại với người trả lời

Cũng có một số bit mà lần đầu tiên tôi không theo dõi khá chính xác về việc thiết lập tên và URL của lớp phản hồi, trong tệp web.xml (trong thư mục chiến tranh.)

Khi tôi đã thiết lập (web.xml) được thiết lập chính xác, thì thường trình doPost () chỉ đơn giản là một cái gì đó dọc theo dòng:

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

Có vô số chi tiết khác nhưng đó là hai chi tiết khiến tôi nôn nao nhất. Khi tôi phá vỡ rào cản đơn giản đó, mọi thứ khác lại trôi chảy rất nhanh.


LƯU Ý: Điều này vẫn không chỉ cho tôi một hướng dẫn / hướng dẫn đàng hoàng, đó là những gì tôi đã hỏi ban đầu, nếu ai đó chỉ cho tôi một câu hỏi hay, tôi sẽ đánh dấu đó là câu trả lời đúng.
Olie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.