Tôi nên sử dụng công nghệ nào cho trò chơi dựa trên web? [đóng cửa]


12

Công nghệ tốt nhất cho trò chơi trực tuyến, tức là có thể chơi qua trình duyệt web là gì? Tôi nghĩ rằng sự lựa chọn duy nhất là:

  • Các tiểu dụng Java
  • Tốc biến
  • Đèn bạc

Tôi đang nghiêng về các applet Java, đơn giản vì chúng dường như có các tính năng lập trình tốt hơn Flash và đồ họa cho trò chơi applet java có thể rẻ hơn đồ họa cho Flash. Tôi không biết nhiều về Silverlight.


5
Có lẽ không có một "tốt nhất" nào ở đây, chỉ là các công cụ khác nhau tốt hơn các công cụ khác trong các tình huống cụ thể và có sự đánh đổi với mọi thứ?
Ian Schreiber

Điều này chắc chắn là chủ quan và nên được CW. Tôi có cảm giác nó sẽ biến thành một danh sách.
Ricket

Tại sao bạn không tìm thấy một trò chơi hoặc trò chơi mà bạn thích và tìm hiểu những gì đã được sử dụng để tạo ra nó?
Sam

Câu trả lời:


7

Chỉ vì các applet Java không phổ biến không có nghĩa là chúng không mạnh mẽ hay đáng chơi. Trong thực tế, tôi đang tập trung vào phát triển trò chơi Java vào lúc này; Tôi thích bản chất cấp cao của ngôn ngữ, tính đa nền tảng của nó (so với C #), thư viện JOGL cung cấp trải nghiệm OpenGL rất giống C cho nền tảng Java (hoặc thay thế, LWJGL hoặc công cụ của nó như jMonkeyEngine ) và tốc độ của nó (rõ ràng chậm hơn C ++, nhưng nhanh hơn đáng kể so với các ngôn ngữ script như Python).

Với Java, bạn có thể triển khai ứng dụng của mình dưới dạng Applet để chạy trong trình duyệt và thậm chí cung cấp giải pháp thay thế JNLP cho những người thích cài đặt một cái gì đó.

Bạn có thể tận dụng tất cả các công cụ đã được tạo cho Java; IDE Eclipse tuyệt vời (hoặc bất kỳ IDE nào khác ngoài đó), các công cụ kiểm tra, tích hợp liên tục, cộng đồng lớn của các lập trình viên Java, v.v.

Thống kê về tỷ lệ phần trăm máy tính Java được cài đặt khác nhau (và phiên bản thậm chí còn thay đổi nhiều hơn) nhưng tôi đã thấy số lượng khá cao cho sự thâm nhập thị trường Java. Và quá trình cài đặt vẫn khá đơn giản, do đó, nếu bất kỳ người dùng nào chưa cài đặt Java, họ có thể sẵn sàng và chạy trò chơi của bạn trong thời gian ngắn.

Cá nhân tôi cảm thấy ít do dự hơn khi cài đặt plugin Java so với Unity. Trên thực tế, tôi vẫn chưa cài đặt plugin trò chơi Unity trên máy tính của mình; Tôi không hoàn toàn tin tưởng nó. Java đã được chứng minh; nó đã có một khởi đầu mạnh mẽ nhưng bây giờ, nhiều năm sau, nó ổn định và nhanh chóng, và, nó tiếp tục có một số vấn đề bảo mật (nhưng Flash cũng vậy) nhưng đối với hầu hết nó đáng tin cậy. Tôi sẽ tiếp tục tránh các trò chơi web Unity cho đến khi plugin web Unity phổ biến hơn một chút và được chứng minh.

Vì vậy, tôi hoàn toàn khuyên dùng Java , cho dù thông qua một applet hay thông qua Java Web Start hoặc JAR thực thi.

PS MMO trực tuyến miễn phí phổ biến nhất thế giới, được công nhận bởi Guinness World Records, là RuneScape , hoạt động như một applet Java và gần đây có phiên bản dành cho máy tính để bàn. Nó hỗ trợ cả DirectX và OpenGL cũng như trình kết xuất 3D phần mềm và có khoảng 10 triệu tài khoản đang hoạt động .


1
bạn thực sự đang bỏ lỡ nếu ít nhất bạn chưa thử Unity Engine. Nó có thể tạo ra một tệp thực thi độc lập cho HĐH máy tính để bàn (PC và Mac, không có Linux), do đó bạn thậm chí không cần plugin trình duyệt, để thử nghiệm phát triển trong Unity. Thôi nào, hiểu đi , bạn biết bạn muốn mà. :)
Cyclops

@Cyclops, tốt, đó là một yêu cầu của khóa học phát triển trò chơi của tôi trong học kỳ này, vì vậy tôi phải tuân theo cách thức của Unity trong một hoặc hai tháng. Cho đến lúc đó tôi sẽ tiếp tục R & D Java + OpenGL của mình :)
Ricket

1
C # cũng là nền tảng chéo (Moonlight, tiêu chuẩn ECMA, ...), nó không đa nền tảng như Java ... Nhưng C # hoạt động tốt trên hầu hết các hệ thống Windows, Linux, Mac OS X; Tại sao một người chơi trò chơi bên ngoài cái hộp đó? Xem thêm: balder.codeplex.comkit3d.codeplex.com
Tamara Wijsman

4
TomWij, vui lòng xem xét thêm câu trả lời của riêng bạn thay vì cố gắng tấn công tôi. Tôi chắc rằng Silverlight có những ưu điểm riêng cần được đánh vần chi tiết. Ví dụ, như tôi đã chỉ ra IDE Eclipse, Visual Studio cũng là một IDE tuyệt vời. Nhưng bình luận của bạn là một lập luận yếu; Moonlight tụt lại rất nhiều so với Silverlight (Silverlight 4 được phát hành 5 tháng trước và Moonlight vẫn đang hoạt động trên 3), và hai dự án mà bạn đã chỉ ra đều ở trạng thái alpha.
Ricket

Windward là một ví dụ về ứng dụng khách trò chơi được viết bằng C # nhưng cũng chạy trên Mac / Linux, nhà phát triển cho biết anh ta đã sử dụng Mono.
MetaGuru

12

Công cụ trò chơi Unity3d

Tôi đoán ai đó đã phải nói nó. :) Nghiêm túc mà nói, đó là một nền tảng đa nền tảng tuyệt vời (trình duyệt và hệ điều hành và iPhone, v.v.), công cụ trò chơi 3D ngôn ngữ đa kịch bản. Và nó có cả phiên bản miễn phí và Chuyên nghiệp.


1
Đáng buồn thay, bây giờ nó có thể dịch ngược thông qua một trình dịch ngược. Vì vậy, nó xấu vì lý do toàn vẹn trò chơi.
Wight

1
Mọi thứ đều có thể phân tách được với đủ công việc - giải pháp đồng thuận duy nhất là không bao gồm dữ liệu bí mật trong phần mềm máy khách.
Cyclops

Java có thể dịch ngược đến mức Minecraft có 10 tỷ mod mà không cần bất kỳ sự hỗ trợ nào cho các mod. Nó chỉ tốt hơn cho các game thủ. Điều đó, và an ninh thông qua oscurity blah blah.
Jimmy

11

Công nghệ tôi thấy thú vị cho các trò chơi trên web là JavaScript + Canvas. Điều này có lợi thế là người dùng hoàn toàn không cần plugin để chơi trò chơi của bạn. IE sắp tới cũng sẽ hỗ trợ canvas, bao gồm cả tăng tốc phần cứng. Sự lựa chọn tốt nhất cho 3D sẽ là WebGL, nhưng nó thậm chí chưa phải là một phần của các trình duyệt sáng tạo hơn. Bạn đã tìm thấy rất nhiều bản demo công nghệ sử dụng canvas và thậm chí là động cơ iso.


Cũng cần lưu ý, khá chắc chắn rằng không ai trong số này (ngoài "HTML5", hay còn gọi là JS + Canvas + CSS + HTML + v.v.) sẽ chạy trên tất cả các nền tảng di động khác nhau (vâng, bạn có thể đóng gói các trò chơi Unity cho iPhone và như vậy khác với sử dụng trình phát web).
coderanger

11

Adobe Flash

Flash vẫn là lựa chọn tốt nhất cho rất nhiều loại game.

Mã nguồn mở

SDK là mã nguồn mở và có một số công cụ phát triển mã nguồn mở tuyệt vời ngoài kia. Tôi tin rằng FlashDevelop là IDE ActionScript tốt nhất hiện có.

FlashPlayer ở khắp mọi nơi

Hầu như tất cả các máy tính đều đã cài đặt Flash Player và hiện tại quá trình nâng cấp được sắp xếp hợp lý.

Nền tảng Flash

Flash hiện là một Nền tảng, do đó, có nhiều tùy chọn để triển khai nội dung flash của bạn, theo chính sách ghi một lần triển khai ở mọi nơi.

Thư viện và cộng đồng

Có một cộng đồng tích cực lớn xung quanh Flash và thậm chí xung quanh các trò chơi Flash cụ thể. Ngoài ra còn có rất nhiều thư viện trong ActionScript. Nhiều thư viện "trò chơi" chính từ các ngôn ngữ khác được chuyển sang AS3.

Phát triển tích cực bởi Adobe

FlashPlayer và Nền tảng đang ngày càng tốt hơn với mỗi bản phát hành. Có nhiều thứ được thêm vào nền tảng mọi lúc như Flex, Adobe AIR, Pixel Bender, v.v. Chỉ cần xem nhanh Adobe Labs để thấy tất cả những điều tuyệt vời sắp tới.

Có vô số lợi ích khác, bao gồm Flash IDE (vâng, đó là lợi ích), AMF, Các trang web và chương trình được thiết lập cho các trò chơi Flash (kongregate, mochi media, v.v.).


8

Mặc dù chưa trưởng thành nhưng Google đang phát triển một công nghệ gọi là Client Client hoặc viết tắt là NaCl. NaCl là một hộp cát cho phép thực thi mã nhị phân gốc an toàn, bảo mật, nhanh chóng. Nó hỗ trợ OpenGLES cho đầu ra tăng tốc 3d và OpenAL cho một lớp âm thanh.

Tóm lại, bạn sẽ có thể chơi các trò chơi cao cấp được cài đặt cục bộ trong trình duyệt web của mình, chỉ với việc giảm khoảng 5% tốc độ.

Tôi tin rằng nó có tiềm năng vừa là kẻ giết người Java vừa là kẻ giết người Flash, mặc dù nó vẫn cần một thời gian để trưởng thành. Unity đang chuyển công cụ của họ cho nó và đã có một tiện ích mở rộng Firefox để hỗ trợ nó.


6

Java Web Start là một lựa chọn tốt hơn so với các applet java. JNLP cho phép bạn truy cập các tài nguyên cấp bản địa như OpenGL. Bạn có thể có toàn bộ sức mạnh của card đồ họa, đồng thời trò chơi của bạn khởi chạy từ trình duyệt mà không cần người dùng cài đặt bất kỳ plugin nào (miễn là chúng có thời gian chạy java trên máy tính của họ).

Các jMonkeyEngine là một công cụ 3D tuyệt vời mà được xây dựng xung quanh nguyên tắc đó. Chạy ví dụ trên trang web của họ.

Công cụ Slick là một công cụ Java 2D cũng có thể được khởi chạy từ trình duyệt.


Java Web Start chỉ là một công cụ phân phối, có thể làm cho trò chơi có thể chơi trực tiếp, thông qua JWS và một applet. IMHO, ưu điểm chính của JWS là nó có thể cài đặt ứng dụng của bạn chỉ trong 1 cú nhấp chuột và tự động cập nhật nó bằng tệp JNLP. Vì vậy, việc truy cập vào các tài nguyên ở mức độ bản địa cũng có thể được thực hiện trong một applet (LWJGL có thể hoạt động trong một applet). Nhưng nếu bạn muốn có quyền truy cập riêng, nó sẽ hiển thị cảnh báo trừ khi bạn có (mua) chứng chỉ từ cơ quan cấp chứng chỉ.
Mr_Qqn

5

WebGL được hỗ trợ bởi tất cả (các bản dựng hàng đêm mới nhất) ngoại trừ IE và cung cấp sức mạnh và tính linh hoạt giống như OpenGL ES thường làm, chỉ giao tiếp qua trình duyệt. http://en.wikipedia.org/wiki/WebGL


3

Tôi đã thấy một số bản demo HTML 5 khá thú vị. Nếu bạn thực sự muốn ở bên cạnh chảy máu, bạn có thể muốn xem xét điều đó.


2
Canvas HTML5 vẫn được dành riêng cho FanBoys! Nó vẫn chậm một cách ngu ngốc và không thể truy cập như Apple có thể tin được.
Adam Harte

3

Một điểm dữ liệu, hãy nhìn vào các mục cho Ludum Dare 18.

http://www.ludumdare.com/compo/ludum-dare-18/?action=preview

Tôi đã chơi qua các mục chạy trong trình duyệt và bỏ qua các mục cần tải xuống. Hầu hết các trình duyệt chạy trong Flash là một số là Unity, một số là Java, một số là HTML / JS. Tôi chưa nhận thấy bất kỳ Silverlight nào.


3

Nếu bạn xem cách tiếp cận tốt nhất với khách hàng của mình (ví dụ: plugin nào được cài đặt sẵn nhiều nhất):

  1. JavaScript
  2. Tốc biến
  3. Java
  4. Đèn bạc
  5. Unity WebPlayer
  6. Plugin tùy chỉnh

Nếu bạn nhìn vào những công cụ nào là tốt nhất để đạt được mục tiêu cụ thể của mình, bạn cần phải rõ ràng hơn về loại trải nghiệm trò chơi mà bạn cố gắng tạo ra. Một số công cụ chưa sẵn sàng cho FPS cao, chơi trò chơi có độ trễ thấp trong khi những công cụ khác không tốt cho 3D, một số công cụ khác có công cụ rất chậm, v.v.


2

Các applet Java dường như không phổ biến trong những ngày này. HTML canvas đang làm khá tốt về hiệu suất. Theo dõi sự phát triển của WebGL.


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.