Thêm nhiều người chơi vào trò chơi HTML5 [đã đóng]


15

Tôi quan tâm đến việc tạo ra một trò chơi mà hiện tại tôi có trải nghiệm hợp tác, tuy nhiên tôi tò mò về phương pháp tốt nhất để thực hiện điều này trong HTML5.

Tôi đã tạo trò chơi trước khi sử dụng ổ cắm C thẳng và cả thư viện Net cho SDL.

Một số tùy chọn tốt nhất của tôi để làm điều này trong một môi trường dựa trên vải là gì?

Hiện tại, tất cả những gì tôi có thể đưa ra là các giải pháp AJAX / cơ sở dữ liệu (với tốc độ làm mới cao) hoặc bằng cách nào đó triển khai một máy chủ PHP sẽ chuyển dữ liệu qua các ổ cắm.


Trò chơi tổng thể sẽ là một loại trò chơi platformer 2.5D, vì vậy cả hai khách hàng sẽ cần được cập nhật liên tục với vị trí người chơi, vị trí kẻ thù, tên lửa, dữ liệu môi trường, v.v.


1
Khi websockets ( en.wikipedia.org/wiki/WebSockets ) được hoàn thành (và được triển khai, v.v.) có lẽ sẽ là một cách tốt, cho đến lúc đó tôi nghĩ AJAX (không có X, không cần XML cho điều này) có lẽ là cách tốt nhất (tôi vẫn không phải là một cách rất tốt).
Elva

Có vẻ như sự hỗ trợ cho các ổ cắm web đang giảm nhanh ...
the_e

Bạn có muốn làm cho một chỗ đứng hoặc một trò chơi? Nếu bạn muốn làm game; đừng bận tâm đến html5.

@stefan: tại sao không phải cả hai? chỉ vì nó chưa được hoàn thiện nhưng không có nghĩa là tôi không thể làm việc với nó!
the_e

Câu trả lời:


12

Socket.IO cung cấp một hệ thống được xây dựng trên một số lớp khác (bao gồm cả websockets, flash, kỹ thuật sao chổi) với lựa chọn duyên dáng.

Node.js là một tùy chọn để chạy phía máy chủ.


5

Xem câu trả lời này :

Tuy nhiên, bạn có thể sử dụng Flash khi có sẵn để cung cấp cho tập lệnh của bạn dự phòng cho đến khi WebSocket được phổ biến rộng rãi. Web-socket-js của Gimite là một ví dụ miễn phí như vậy. Tuy nhiên, bạn phải chịu những hạn chế tương tự như Flash Sockets, cụ thể là máy chủ của bạn phải có thể đưa ra chính sách tên miền chéo theo yêu cầu đối với cổng ổ cắm và bạn sẽ thường gặp khó khăn với proxy / tường lửa. (Ổ cắm flash được tạo trực tiếp; đối với người không có quyền truy cập IP công cộng trực tiếp, những người chỉ có thể thoát khỏi mạng thông qua proxy HTTP, họ sẽ không hoạt động.)


3

Sao chổi ” có lẽ là một thuật ngữ chung mà bạn có thể tận dụng ở đây. WebSockets sẽ là một lựa chọn hấp dẫn hơn (khi họ hài lòng rằng nó an toàn).


3

Node.js là câu trả lời. Tôi đã sử dụng nó để phát triển một trò chơi bắn súng nhiều người chơi thời gian thực và mất khoảng 1 tháng từ khi bắt đầu đến khi kết thúc. Nó đưa ra một số thách thức độc đáo, như vậy nó cần có độ trễ tối thiểu và tất cả người chơi phải duy trì đồng bộ trong phạm vi khác để khái niệm hoạt động.

Phía máy khách và phía máy chủ đều được viết bằng javascript và chia sẻ các lớp / logic với nhau. Điều đó bắt đầu được tính khi cố gắng sửa lỗi, vì bạn không phải thực hiện mọi thứ hai lần.

Trò chơi đã hoạt động được khoảng 2 tháng mà không được khởi động lại và hàng ngàn trận đấu đã được chơi.

Socket.io là một sự bắt chước của các socket và sử dụng node.js, tuy nhiên tại thời điểm này nó quá phình to cho một trò chơi. Có các triển khai websocket khác trên github cho node.js và cả các ví dụ về các trò chơi sử dụng nó.


2

Bạn luôn có thể sử dụng AJAX và một số loại hàng đợi tin nhắn. ActiveMQ là một ví dụ tốt. Bạn chạy ActiveMQ trên máy chủ, sau đó JavaScript của bạn có thể gửi và nhận tin nhắn. Chỉ cần làm cho mỗi người chơi có một tên duy nhất và gửi tin nhắn cho người chơi khác.



2

Hiện tại tôi đang sử dụng cái này: http://code.google.com.vn/p/phpwebsocket/ làm máy chủ ổ cắm của tôi để kiểm tra. Nó thực hiện cuộc gọi đến ổ cắm C mà bạn đang sử dụng. Có thể là một số dịch vụ.


2

Chúng tôi đã làm việc trên một nền tảng nhiều người chơi mà bạn có thể thấy thú vị. Bạn có thể xem dự án của chúng tôi tại www.16cubes.com - chúng tôi đang cung cấp một lớp javascript đơn giản để thực hiện giao tiếp ngang hàng. Nó phần nào dựa trên nguyên tắc Comet và chúng tôi có kế hoạch chuyển sang sử dụng websockets khi nó trở nên chuẩn hơn một chút. Mặt khác, chúng tôi đang cung cấp một số tính năng ngoài kệ .. như kết hợp đối thủ tự động, trò chuyện trò chơi, lời mời kết bạn qua facebook, v.v.

Chúng tôi có một bản demo tic-tac-toe, bạn có thể có một ý tưởng tốt hơn nếu bạn nhìn thấy nó. Và vâng, bạn cũng có thể chơi nặc danh. Không cần đăng ký, nếu bạn không muốn. Có ít hơn 10 API javascript mà bạn cần mã hóa và có sẵn tại www.16cubes.com/documentation

Chúng tôi đang tích cực tìm kiếm thông tin phản hồi, vì vậy hãy cho chúng tôi biết cả mặt tốt và mặt xấu


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.