Có thể phát triển trò chơi nhiều người chơi với HTML5 không?


9

Tôi biết HTML5 rất tốt cho các trò chơi trên web, nhưng tôi thực sự không biết liệu có thể phát triển các trò chơi trực tuyến với nhiều người dùng hay không, giữ cho mọi người được đồng bộ hóa và xử lý thông tin đăng nhập, et cetera. có khả năng làm cái này không?

Câu trả lời:


7

Bạn không thể viết nó bằng HTML5 một mình. Bạn sẽ luôn cần tập lệnh và máy chủ để xử lý giao tiếp giữa người dùng, vì các giới hạn bảo mật của tập lệnh trình duyệt và cũng để tránh gian lận.

Nhiều người đã viết nhiều trò chơi html5, thậm chí tôi cũng có. Việc sử dụng html5 có lẽ không phải là phần quan trọng nhất của nó. Hầu hết những thứ cần thiết (nếu không phải tất cả) cũng đã có sẵn trong html 4.01. Ngoại lệ là canvas, nhưng canvas chậm hơn so với svg và svg đã có sẵn trong nhiều trình duyệt.

Tôi nghĩ điều thực sự sinh ra "trò chơi html5" là khả năng tạo các ứng dụng phía máy chủ trong javascript. Điều này có nghĩa là tất cả các lập trình viên phía khách hàng có thể đột nhiên tạo ra toàn bộ hệ thống và họ thường là những người sáng tạo khi nói đến những thứ như trò chơi. Chưa kể rằng JS dễ đến nỗi ngay cả bà của bạn cũng có thể lập trình với nó. Có lẽ.

Cập nhật sau khi nhận xét từ OP:

Một kiến ​​trúc phổ biến cho một trò chơi trình duyệt sẽ là

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Hoặc về mặt "ngôn ngữ" thực tế:

  • Chế độ xem của khách hàng: HTML5 (có thể với angular.js, chưa kiểm tra tốc độ của nó với LOTS đang diễn ra như thế nào. Ngoài ra, hãy xem raphael.js để biết "đồ họa")
  • Logic máy khách: JavaScript (jquery / steam / plain / anything)
  • Cơ sở dữ liệu khách hàng: WebQuery (một phần của "bộ" HTML5 tôi cho rằng)
  • Giao tiếp: JSON (ký hiệu đối tượng Javascript, về cơ bản là các đối tượng javascript được tuần tự hóa) qua socket.io (thư viện JS để tự động phát hiện các giao thức truyền thông tối ưu)
  • Ngôn ngữ máy chủ: cũng là JS (node.js nếu bạn có TẤN người dùng đồng thời trên một số lõi, các giải pháp khác cũng có sẵn)
  • Xác thực: chỉ cần đảm bảo dữ liệu trò chơi THU NHẬP của bạn (từ khách hàng) là hợp lệ. Đi không cần phải được kiểm tra, ngay cả trên máy khách. Nó được giả định là đúng. Luôn luôn .
  • Thế giới trò chơi: tập hợp dữ liệu XÁC MINH được phân phối lại cho tất cả khách hàng khi họ đến
  • Cơ sở dữ liệu máy chủ: couchdb, mongodb, bất kỳ cơ sở dữ liệu nào cung cấp cho bạn các đối tượng json thô để làm việc.

Bạn đây rồi. Một trò chơi internet hoàn chỉnh được viết chỉ bằng cách sử dụng javascript và html. Đáng yêu.


Tôi thấy câu trả lời của bạn rất thú vị, bạn có thể cho tôi một lời khuyên nhỏ về việc tôi nên xây dựng phần nào (quan trọng nhất) từ đầu đến cuối và công nghệ nào cung cấp cho mỗi phần, xin lỗi về điều đó, chỉ cố gắng biết cách xây dựng một thứ đáng tin cậy . Cảm ơn!
cholrrgv

1
+1, HTML5 là cơn thịnh nộ, nhưng những gì mọi người gán cho nó chủ yếu là 4,01 chức năng và JavaScript. Mặc dù tôi có thể yêu cầu bạn không gọi JavaScript dễ dàng? Nó có những đặc quyền, nhưng nếu bạn muốn viết chương trình thực sự, bạn phải trở thành một lập trình viên thực thụ. JavaScript loại bỏ các công việc khai báo biến đổi và quản lý bộ nhớ, nhưng nó không làm cho việc tổ chức mã của bạn và tìm ra các thuật toán và cấu trúc dữ liệu dễ dàng hơn, và bạn chắc chắn cần một tư duy lập trình và kinh nghiệm cho các tác vụ đó.
aaaaaaaaaaaa

@eBusiness điều tôi muốn nói là dễ hiểu là nó quá cô đọng về mặt lập trình và các trường hợp sử dụng của nó được ghi nhận cho đến chết. Bạn luôn có thể tìm thấy một hướng dẫn hoặc một chức năng làm những gì bạn muốn. Và thật dễ dàng để thiết lập (bạn không cần, nó đã có trong trình duyệt).
Tor Valamo

@arrrrgv bài đăng được cập nhật với câu trả lời cho câu hỏi của bạn
Tor Valamo

1
+1 cho một câu trả lời hay, mặc dù tôi nghi ngờ sự gia tăng của trò chơi HTML5 có liên quan gì đến JavaScript phía máy chủ. Nói một cách chính xác, JS thậm chí không phải là một phần của HTML5. Tôi nghĩ đó là các tính năng mới như canvas, webGL, âm thanh và video và bộ nhớ cục bộ giúp tăng cường trò chơi HTML5. Và tất nhiên, thực tế là nó mới và được thổi phồng nên mọi người đều nhảy vào bandwagon.
bummzack

3

Hãy xem bài viết tại http://smus.com/multiplayer-html5-games-with-node và cũng là nguồn được cung cấp cùng với bài viết. Lưu ý rằng điều này cũng sử dụng JavaScript để kết nối mạng.


2
Vui lòng viết "JavaScript" dưới dạng một từ để tránh nhầm lẫn.
o0 '.

Một ngày nào đó, Node.js sẽ không cần thiết - khi hỗ trợ trình duyệt chéo cho các ổ cắm web phổ biến.
Kỹ sư

Tôi không thấy lý do tại sao hỗ trợ trình duyệt chéo cho ổ cắm web sẽ thay đổi nhu cầu về thành phần máy chủ bên ngoài bất kỳ trình duyệt nào. Bạn phải luôn lập trình một trò chơi nhiều người chơi để các máy khách kết nối với một máy chủ trung tâm, chứ không phải trực tiếp từ máy khách đến máy khách.
jhocking

1
Ngoài ra hãy xem NowJS ( nowjs.com )
Tim Holt

ổ cắm web vốn không an toàn cho bất kỳ ứng dụng nào, đó là lý do tại sao việc triển khai theo kế hoạch đã bị bỏ qua bởi rất nhiều trình duyệt. bạn không thể cho phép một môi trường có quyền truy cập vào "bất cứ nơi nào" và đồng thời có thể lấy đầu vào từ "bất cứ nơi nào".
Tor Valamo
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.