MMO dựa trên trình duyệt (WebGL, WebSocket) [đã đóng]


29

Bạn có nghĩ rằng về mặt kỹ thuật có thể viết một ứng dụng khách MMO 3D hoàn chỉnh với Trình duyệt JavaScript - WebGL cho đồ họa và WebSocket cho Mạng không?

  • Bạn có nghĩ rằng các MMO tương lai (và các trò chơi nói chung) sẽ được viết bằng WebGL không?
  • Hiệu suất JavaScript ngày nay có cho phép điều này không?
  • Giả sử nhóm phát triển của bạn là bạn với tư cách là nhà phát triển và người tạo mô hình (nghệ sĩ) khác. Bạn sẽ sử dụng một thư viện như SceneJS cho trò chơi hay viết WebGL thẳng? Nếu bạn sẽ sử dụng một thư viện, nhưng không phải là SceneJS, vui lòng chỉ định cái nào.

CẬP NHẬT (Tháng 9 năm 2012): RuneScape, một MMORPG dựa trên trình duyệt 3D rất phổ biến đã sử dụng Java Applet cho đến nay đã thông báo rằng họ sẽ sử dụng HTML5 cho máy khách của họ ( nguồn ).

Runescape HTML5

Java (trái) và HTML5 (phải)

CẬP NHẬT (tháng 6 năm 2013): Tôi đã viết một nguyên mẫu của MMO dựa trên WebGL / WebSocket: https://github.com/alongubkin/xylose


3
Mozilla Firefox và Opera vừa bỏ hỗ trợ websocket vì lý do bảo mật: heise.de/security/meldung/ trộm Xem gamedev.stackexchange.com/q/6524/450 để trừu tượng hóa trình duyệt mạng của nội dung mạng.
Hendrik Brummermann

2
Tôi nghĩ rằng cả ba câu hỏi này đều thú vị, nhưng tôi muốn chia chúng thành ba câu hỏi. Trong tâm trí tôi hầu như không liên quan.

2
Về mặt kỹ thuật là có thể, vâng. Thực tế là một vấn đề khác.
Vịt Cộng sản

Lưu ý phụ: Google đã tạo một thư viện JavaScript trên WebGL khá thú vị: code.google.com/p/o3d
Alex Beardsley

Giả định của tôi là câu hỏi của bạn ngụ ý về MMO 3D. 3D không phải là một yêu cầu cho thể loại này và trên thực tế, nhiều MMO đã tồn tại trên web trong nhiều năm qua ít hơn các hình thức HTML (Xem urbandead.com ) Không đề cập đến tất cả các trò chơi PHP từ Gameforge ( en.gameforge.com ) hoặc các công cụ AJAX / Javascript kỳ lạ hơn như Lord of Ultima ( lordofultima.com )
wkerslake

Câu trả lời:


7

Bạn có nghĩ rằng về mặt kỹ thuật có thể viết một ứng dụng khách MMO 3D hoàn chỉnh với Trình duyệt JavaScript - WebGL cho đồ họa và WebSocket cho Mạng không?

Phải, chắc chắn rồi. Không có lý do gì công nghệ WebGL hoặc WebSocket sẽ ngăn bạn tạo ứng dụng khách MMOG 3D hoặc bất kỳ ứng dụng khách trò chơi nào cho vấn đề đó.

Bạn có nghĩ rằng các MMO tương lai (và các trò chơi nói chung) sẽ viết bằng WebGL không?

Vâng. Tôi tin rằng trong vòng năm năm tới, hầu hết các trò chơi trình duyệt 3D sẽ được viết bằng WebGL. Lý do rất đơn giản - WebGL là công nghệ 3D được tiêu chuẩn hóa duy nhất sẽ có các triển khai có sẵn trong mọi trình duyệt web chính (Chrome 9, Firefox 4, Safari 6 và Internet Explorer thông qua Chrome Frame).

Hiệu suất JavaScript ngày nay có cho phép điều này không?

Vâng. Hiệu suất JavaScript trong các trình duyệt hiện đại đã tăng lên đến mức phát triển trò chơi 3D là khả thi. Ví dụ: xem dự án Three.js .

Giả sử nhóm phát triển của bạn là bạn với tư cách là nhà phát triển và người tạo mô hình (nghệ sĩ) khác. Bạn sẽ sử dụng một thư viện như SceneJS cho trò chơi hay viết WebGL thẳng? Nếu bạn sẽ sử dụng một thư viện, nhưng không phải là SceneJS, vui lòng chỉ định cái nào. Cảm ơn!

Sử dụng một thư viện để tiết kiệm thời gian. Không có lý do để viết mã đồ họa WebGL của riêng bạn trừ khi thư viện hiện có thiếu các tính năng mà bạn cần. Ngay cả trong trường hợp đó, có lẽ sẽ hiệu quả hơn về thời gian để mở rộng thư viện hiện có.

Đối với dự án của tôi, tôi đang sử dụng GLGE vì nó hỗ trợ nhiều hiệu ứng đồ họa khác nhau và liên tục được cập nhật với những hiệu ứng mới.


2
Câu hỏi "Bạn có nghĩ rằng các MMO tương lai (và các trò chơi nói chung) sẽ viết bằng WebGL không?" và câu trả lời "Có. Tôi tin rằng trong vòng năm năm tới, hầu hết các trò chơi trình duyệt 3D sẽ được viết bằng WebGL." không phải là một trận đấu chính xác cho nhau ...
Kylotan

5

Hiện đã có một số MMO dựa trên Trình duyệt. Họ thường không sử dụng đồ họa 3D.

Tôi hơi nghi ngờ khi nói đến WebGL. Các trình duyệt hiện tại không hỗ trợ WebGL trong các bản phát hành thông thường của chúng. Bạn sẽ phải nhận các bản dựng đặc biệt hoặc lộn xộn với các tệp cấu hình, điều này phức tạp hơn với người dùng trung bình so với việc tải xuống một plugin.

Nói về plugin: Một số người đã đề cập đến Unity, nhưng đừng quên Flash. Một bản phát hành sắp tới của trình phát Flash (tên mã molehill ) sẽ có 3D được tăng tốc GPU. Tôi đoán là, đèn flash đó sẽ cung cấp đồ họa 3D được tăng tốc phần cứng trong trình duyệt trước khi WebGL cất cánh.


1
Vấn đề về trình duyệt ổn định với hỗ trợ webgl không nên xảy ra sau tháng 1 năm 2010. Firefox 4 và Chrome 9 dự kiến ​​sẽ ra mắt vào khoảng thời gian đó. Chrome 9 beta khá đơn giản để cài đặt và không yêu cầu lộn xộn với bất cứ điều gì để kích hoạt webgl. Liên kết đến phiên bản beta nằm dưới liên kết tải xuống thông thường cho chrome.
Nicolas K.

@Nicolas K. - Ý bạn là tháng 1 năm 2011 ?
DMan

1
@Nicolas K - Tính khả dụng của trình duyệt và cài đặt cơ sở của trình duyệt là những thứ rất khác nhau. 13% lưu lượng truy cập internet vẫn là IE6. Nguồn: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake

@DMan: Có lẽ, kể từ bây giờ. Tôi không thể đợi cho đến khi ai đó tìm ra cách làm mờ màn hình (hoặc hoảng loạn hạt nhân, hoặc bất cứ điều gì Mac làm) một trình điều khiển OpenGL

1
@wkerslake: Những số liệu thống kê đó là thái quá. Tôi duy trì một trang web nhắm đến người tiêu dùng internet trung bình với nửa triệu lượt truy cập mỗi ngày và chưa đến 1% trong số họ sử dụng Internet Explorer 6 (khoảng 1/3 sử dụng Internet Explorer 7/8/9). Firefox và Chrome chiếm 50% lưu lượng truy cập và chúng là các trình duyệt tự cập nhật, có nghĩa là phần lớn mọi người sẽ có hỗ trợ WebGL được cài đặt trong vòng vài tháng. Vì việc phát triển một trò chơi có thể dễ dàng mất 6 tháng, tôi thấy không có lý do gì để khuyến khích mọi người sử dụng WebGL ngày hôm nay.
Blixt

3

Kỹ thuật có thể? Vâng. Nhưng tại sao phải bận tâm khi các giải pháp web như Unity có sẵn?

MMO tương lai được viết bằng WebGL? Không. Có thể nhưng có những plugin dựa trên web như Unity hiện đang hoạt động tốt.

Hiệu suất JavaScript ngày nay cho phép điều này? Không. Vâng, nếu bạn giữ cho trò chơi của bạn đơn giản.

Bạn sẽ sử dụng một thư viện như SceneJS [...] hoặc viết WebGL thẳng? Cũng không. Tôi sẽ sử dụng ứng dụng của bên thứ ba như Unity.


4
Câu trả lời của bạn là sai, mâu thuẫn và định dạng xấu. Xin lỗi vì quá khắc nghiệt. Nếu bạn nghĩ op chỉ nên sử dụng unity hãy nói như vậy trong một bình luận cho câu hỏi của anh ấy.
oberhamsi

Trớ trêu thay, câu trả lời ban đầu của tôi chỉ nói "Sử dụng Unity", nhưng tôi được cho biết là tôi cần trả lời câu hỏi trực tiếp hơn.
Tim Holt

1
Được rồi, đủ công bằng. Tôi nghĩ rằng sự thống nhất là một con thú rất khác sau đó cố gắng thực hiện nó một cách tự nhiên trong trình duyệt. Chắc chắn, bạn có thể làm bất cứ điều gì với một plugin nhưng câu hỏi đối với tôi: giới hạn của các công nghệ trình duyệt gốc là gì.
oberhamsi

2

Điều này là không khả thi ngay bây giờ (đầu năm 2011). Bạn không thể tạo MMO 3D thời gian thực bằng công nghệ trình duyệt gốc (có nghĩa là không có plugin).

Tôi sẽ không suy đoán về tương lai. Đây là cách nó trông ngay bây giờ. Giả sử bạn chỉ nhắm mục tiêu các trình duyệt hiện đại (IE9, FF4, v.v.). Nếu bạn có kế hoạch hỗ trợ IE7 thì bạn thật điên rồ. Điều đó sẽ không bao giờ làm việc.

Những điều còn thiếu:

  • toàn quyền kiểm soát bàn phím và chuột (khả năng đặt vị trí chuột, chặn phím)
  • toàn màn hình
  • 3D

Các lĩnh vực / giải pháp có vấn đề nghiêm trọng:

  • WebSockets hiện đã bị hủy kích hoạt trong một vài trình duyệt hỗ trợ nó
    • không có nó: bây giờ độ trễ thấp, giao tiếp máy khách-máy chủ hai chiều
  • vấn đề âm thanh
    • codec lộn xộn, bạn cần ogg và mp3
    • tần suất chung không được hỗ trợ
    • đồng quy
    • sự chậm trễ
  • hiệu suất canvas (trong một số trường hợp thực hiện chuyển đổi div & css nhanh hơn)

1

Có, nhưng với sự cẩn thận lớn.

Bạn sẽ không có điều khiển bàn phím đầy đủ và đối với nhiều người thích điều khiển, đây có thể là một công cụ phá vỡ thỏa thuận. Các phím F chẳng hạn có thể sẽ nằm ngoài tầm với trong một thời gian.

Bạn cũng sẽ không thể truy cập hầu hết các trình duyệt. WebGL chưa thực sự được hỗ trợ tốt và hỗ trợ websocket rất dễ xảy ra trong những ngày này, với một số nhà cung cấp trình duyệt kích hoạt nó cho một phiên bản, sau đó vô hiệu hóa phiên bản tiếp theo.

Nhưng bạn có thể kết hợp một cái gì đó đơn giản, chắc chắn. Ném vào một số trò chơi hấp dẫn và sẽ không có vấn đề gì khi đồ họa hơi yếu. Runescape khởi đầu khá đơn giản và phát triển thành một MMO phức tạp, vui nhộn, cực kỳ phổ biến, trở lại khi mọi người nói rằng một MMO được tạo trong trình cắm trình duyệt là một giấc mơ xa vời.

Một MMO được xây dựng cùng với các giới hạn hiện tại cho các trình duyệt thích ứng khi mọi thứ thay đổi chắc chắn sẽ có hiệu lực vào thời điểm các trình duyệt đủ xa để hỗ trợ MMO "AAA".


1
Hầu như tất cả các trình duyệt hiện đại đều hỗ trợ các phím chức năng ( quirksmode.org/js/keys.html#link6 ). Trên thực tế, trang đó ít nhất vài năm tuổi và sự hỗ trợ cho chúng trong các trình duyệt hiện đại có lẽ còn tốt hơn nữa.
Ricket

1

Hoàn toàn đồng ý.

WebGL được bao gồm trong các bản dựng hàng đêm của cả WebKit (Chrome / Safari) và Gecko (Firefox). WebSockets hiện bị vô hiệu hóa do vấn đề bảo mật, nhưng không có lý do gì nó không được kích hoạt lại sau khi vấn đề được giải quyết. Trong khi đó, luôn có HTTP.

Tất cả các trò chơi sẽ được viết theo cách này? Không, nhưng một số lượng đáng kể sẽ được. Khi WebGL có phiên bản cuối cùng của Chrome và Firefox, độ thâm nhập sẽ cao hơn so với các plugin gốc như Unity.

Hiệu suất JavaScript hoàn toàn phụ thuộc vào trò chơi bằng văn bản. Có thể bạn sẽ không thấy mức đồ họa của Crysis trong một thời gian, nhưng hãy nhớ với WebGL, tính năng bẻ khóa số được giảm tải cho GPU.

Đối với một nhóm 2 người nhỏ, bạn sẽ cần phải chuẩn bị để thực hiện nhiều mã hóa mà bạn từng sử dụng. Hiện tại không có bất kỳ công cụ WebGL / JavaScript nào thực sự bao gồm phần lớn mã trò chơi. SceneJS, ba.js và tương tự là các trình bao bọc trên lớp đồ họa, nhưng không cung cấp gì cho sự va chạm, vật lý, âm thanh, tải tài nguyên, mạng hoặc các công cụ tạo nên phần lớn sản phẩm như Unreal Engine hoặc Unity.

Đó là những ngày đầu tiên tại thời điểm này, tôi hy vọng sẽ thấy nhiều phần mềm trung gian hơn xuất hiện trong năm tới.


0

Tôi không nghĩ nhiều MMO trong tương lai sẽ được viết bằng bất kỳ công nghệ trình duyệt phía máy khách nào vì hầu hết các nhà phát triển MMO sẽ muốn sử dụng cùng một ngôn ngữ trên máy khách và máy chủ, và hầu hết các nhà phát triển trò chơi đều thông thạo các ngôn ngữ không phải web như C ++. Có quá nhiều mã máy khách liên quan để làm cho nó rất thực tế trong Javascript, ngoại trừ các mô phỏng khá tầm thường. Ngoài ra còn có những hạn chế khác được áp đặt bằng cách chạy trong trình duyệt không phù hợp với nhà phát triển trò chơi thông thường.

Tôi chắc chắn sẽ có một số trò chơi như thế này, tuy nhiên. Họ sẽ không tiếp quản từ WoW hoặc các game tương tự trong một thời gian dài. Chúng có thể sẽ được tạo ra nhiều hơn bởi các nhà phát triển web tham gia vào các trò chơi thay vì các nhà phát triển trò chơi truy cập vào web.


Có phải downvoter muốn thêm một bình luận giải thích làm thế nào họ không đồng ý với câu trả lời của tôi? Chỉ cần tự hỏi. :)
Kylotan

0

Câu hỏi bạn nên tự hỏi mình là tại sao các nhà phát triển trò chơi muốn phụ thuộc vào công nghệ web mà họ không thành thạo và không kiểm soát được, các trang hiện tại cho phép bạn ngay cả trong trình duyệt web để tạo ra các trò chơi tuyệt vời?


0

Có, nhưng công nghệ vẫn cần ổn định và có khả năng sẽ vẫn có sự đánh đổi hiệu năng so với các ứng dụng gốc.


-3

Đoàn kết là tốt. Xem thêm Shiva và Prime Engine.


1
Unity và Prime Engine không liên quan gì đến các công nghệ được đề cập. Chúng là các plugin mã nguồn gốc.
Kylotan

1
Chúng là những câu trả lời theo nghĩa mà chúng ta đang nói, "Không, đó không phải là một ý tưởng tốt để làm điều này, tuy nhiên đây là những lựa chọn thay thế." Câu trả lời có nội dung: "Không nhưng đây là một giải pháp thay thế" được ưa thích hơn nhiều so với chỉ "Không"
Tim Holt

3
Đôi khi tôi đồng ý, nhưng hiếm khi. Có nguy cơ cố gắng đọc suy nghĩ của ai đó và đoán xem họ thực sự muốn làm gì, khi thực sự câu hỏi ban đầu hoàn toàn hợp pháp theo đúng nghĩa của nó. Nếu ai đó hỏi về sự phù hợp của X, chúng ta không nên luôn trả lời với "chỉ sử dụng Y". Ít nhất nên có một so sánh về sự phù hợp của hai người để chúng ta đi xa biết nhiều hơn về X.
Kylotan

Tôi sẽ viết lại câu trả lời của tôi sau đó để trả lời câu hỏi của anh ấy về việc sử dụng thư viện nào. Tôi sẽ tự mình sử dụng "thư viện" Unity: P
Tim Holt

câu trả lời được xếp hạng hàng đầu về cơ bản là điều tương tự ..
Lỗi 454
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.