Phát triển trò chơi di động HTML5 so với các ứng dụng trò chơi gốc [đã đóng]


12

Trạng thái hiện tại của các công cụ trò chơi, khung, thư viện và chuyển đổi liên quan đến bộ công nghệ HTML5 (bao gồm các thư viện CSS3 và JavaScript như RaphaelJS, Impact, gameQuery); và làm thế nào tốt nhất trong số đó so với việc phát triển một ứng dụng gốc (đặc biệt là cho iOS và Android)?

Đặc biệt là về hiệu suất, hình ảnh và nhận được "cảm giác bản địa".

Những suy nghĩ về các giải pháp như Appcelerator và Corona SDK cũng được đánh giá cao. Liên quan đến Unity3D, có thể phát triển trong đó và vẫn có thể chơi trò chơi trên trình duyệt (ít nhất là các bản phát hành hiện tại của Chrome hoặc Firefox) mà không cần phụ thuộc hoặc yêu cầu người dùng cài đặt bất cứ thứ gì (không có trình phát web thống nhất) .

Điều tôi đang tìm kiếm là làm thế nào để phát triển các tiêu chuẩn web để đạt được số lượng nền tảng tối đa (bao gồm cả thiết bị di động bên ngoài) trong khi vẫn giữ được trải nghiệm gốc cho thiết bị di động mà không phải thực hiện trò chơi một lần nữa cho iOS và Android.


2
Unity vẫn yêu cầu người chơi web. Họ đang làm việc trên triển khai Flash 11, nhưng điều đó sẽ không được một thời gian. Tôi chưa chơi một trò chơi HTML5 trên trình duyệt di động mà cảm thấy tốt. Và âm thanh HTML5 vẫn là một đống mút.
michael.bartnett

1
Nếu bạn muốn "cảm nhận bản địa", thì bạn cần một ứng dụng gốc ... nếu không, bạn luôn bị giới hạn ở mẫu số chung của các nền tảng bạn muốn hỗ trợ.
bummzack

Ồ chắc chắn, tôi không có việc làm thêm. Nhưng có thể đạt được thỏa hiệp, miễn là tôi không cần phải viết lại tất cả các nền tảng cho một trò chơi, việc thêm mã chuyên dụng hơn cho giao diện cảm ứng sẽ hoàn toàn chấp nhận được.
Vic Goldfeld

1
Dựa trên kinh nghiệm của tôi, các trò chơi gốc có hiệu năng cao hơn nhiều so với các trò chơi HTML5 trên điện thoại cấp thấp
Nick Shvelidze

Câu trả lời:


7

Các thư viện HTML5 tốt đáng ngạc nhiên đặc biệt là xem xét tuổi trẻ của nó. Có các công cụ 2D / 3D vững chắc hỗ trợ các hiệu ứng hạt, vật lý và tương tự. Tuy nhiên, không có gì có thể so sánh với các công cụ trò chơi đã thành lập và trưởng thành như Unity hay Unreal Engine.

Ngoài ra lib lib HTML5 theo kinh nghiệm của tôi muốn được điều khiển sự kiện. Ví dụ, các sprite sẽ có một sự kiện onclick và thực sự sẽ không có một vòng lặp trò chơi truyền thống.

Đối với các ứng dụng gốc hiệu suất rất nhiều, nhanh hơn nhiều so với bất kỳ điều gì phải làm với khung vẽ HTML 5. Đó là phạm vi kinh nghiệm của tôi, mặc dù vậy, tôi không biết gì về Appcelerator hoặc Corona SDK.

Tuy nhiên, nếu mục tiêu của bạn là "số lượng nền tảng tối đa" nhiều hơn phần "tiêu chuẩn web", tôi đề xuất một giải pháp như Unity hoạt động trên hầu hết mọi thứ và nhờ trình chỉnh sửa tích hợp của nó là một công cụ rất hiệu quả.


6

Tom ở đây từ Scirra, chúng tôi biến Construct 2 thành nhà sản xuất trò chơi HTML5 .

Gần đây chúng tôi đã viết về điều này, so sánh hiệu suất HTML5 Canvas / WebGl / C ++ DX. Bạn có thể đọc nó ở đây:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

Và đây là biểu đồ:

nhập mô tả hình ảnh ở đây

Tôi biết đó không phải là hiệu suất so với các định dạng di động gốc, nhưng nó là so sánh với các ứng dụng gốc dành cho máy tính để bàn sẽ đưa ra một số dấu hiệu về khoảng cách hiệu suất.


Yêu đồ thị. Bất kỳ cơ hội cho một bản cập nhật năm 2016?
Dan Dascalescu

4

Đầu tiên và quan trọng nhất, SDK SDK rất đáng yêu để làm việc. Lua là một ngôn ngữ tuyệt vời, cho đến nay là một khuôn khổ rất kỹ lưỡng và tài liệu rất tuyệt vời.

Theo tôi, phát triển trò chơi HTML5 chưa xứng đáng. Cả trên trình duyệt máy tính để bàn và thiết bị di động. Nếu mục tiêu của bạn là tạo ra một trò chơi tuyệt vời để chạy trên máy tính để bàn và thiết bị di động, thì đừng bận tâm. Nếu mục tiêu của bạn là tạo một trò chơi HTML5, thì hãy tạo nó và sử dụng một trong các khung mà mọi người đã đề cập (cũng xem Crafty hoặc Gee để biết thêm về giao diện loại bản vẽ).

Lý do chính là khi tôi làm một trò chơi, tôi muốn tạo ra một trò chơi hoàn chỉnh và lịch sự. Một phần của việc tạo ra một trò chơi hoàn chỉnh và đánh bóng là âm thanh tốt. Mặc dù <audio>thẻ được hỗ trợ trên các trình duyệt chính (giả sử bạn cung cấp đủ các định dạng khác nhau), quản lý nhạc phim của bạn theo chương trình vớicreateElement là một điều khó khăn. SoundManager 2 là một hỗ trợ ban nhạc, không phải là một giải pháp. Trong nhiều trường hợp, nó sẽ quay trở lại sử dụng đối tượng Flash cho máy tính để bàn. Tại thời điểm đó tôi hỏi, tại sao không tạo ra thứ đáng sợ trong Flash?

Trên iOS, trừ khi bạn sử dụng hack như trong thư viện Jukebox của Zynga , bạn thực sự bị giới hạn chỉ phát âm thanh để đáp ứng với đầu vào của người dùng. Thật là nực cười.

Ngoài ra, trừ khi bạn đóng gói trò chơi HTML5 của bạn dưới dạng một ứng dụng, mọi người cần có kết nối để chơi. Thời gian tôi chơi game di động nhiều nhất là trên tàu điện ngầm - không có tín hiệu. Và nếu bạn đóng gói trò chơi của bạn lên, sẽ không có gì lạ khi không có âm thanh? Nếu tôi đang tải xuống một trò chơi, tôi mong đợi một mức độ đáp ứng và đánh bóng nhất định. Đọc: một ứng dụng bản địa.

Cho đến khi các trình duyệt di động và phát triển hơn nữa của HTML5 nhanh hơn và âm thanh HTML5 ngừng hút, tôi sẽ vui vẻ chơi với Javascript <canvas>và tất cả những thứ đó, nhưng tôi sẽ không đi xa để tạo ra một trò chơi bóng bẩy với nó. Nó nắm rõ mục tiêu của bạn là gì. Rất ít tôi biết ai chơi game và không phải là nhà phát triển thậm chí có game HTML5 trên thiết bị di động. Một lần nữa, nếu bạn muốn tạo ra các trò chơi HTML5 tuyệt vời, hãy tạo các trò chơi HTML5. Nếu bạn muốn tạo và bán các trò chơi tuyệt vời, hãy ưu tiên chất lượng trải nghiệm của người chơi của bạn.


Yêu cầu cập nhật giữa năm 2012 - phát triển trò chơi HTML5 có được cải thiện không? Có còn khoảng cách hiệu suất và các vấn đề âm thanh?
Flash

3

Kiểm tra http://cocos2d-javascript.org/

Nó chưa được thực hiện hoàn toàn. Nhưng một khi đã hoàn thành, nó có thể là tốt nhất :)

Có một vài bản demo trong trang web đó, chúng khá tốt ...

Chỉnh sửa: Chỉ cần kiểm tra, các bản demo không thân thiện với thiết bị di động ...


3

Như các câu trả lời khác đã chỉ ra, sự khác biệt hiệu suất là khá lớn. Tuy nhiên, có những cách mới đang được sử dụng để có được hiệu suất web gốc trên web (sử dụng Chrome).

MonoGame là một triển khai mã nguồn mở của khung XNA, được thiết kế để hoạt động trên càng nhiều nền tảng càng tốt. Khi điều này được kết hợp với Google Chromes NaCl (Máy khách gốc), kết quả khá tuyệt vời (yêu cầu chrome).

Lời khuyên của tôi sẽ là xây dựng một ứng dụng gốc trong XNA hoặc MonoGame và xem xét NaCl và / hoặc ExEn để đưa trò chơi của bạn lên các nền tảng khác. Phần lớn cơ sở mã của bạn sẽ giống nhau cho tất cả các nền tảng, nhưng kích thước giảm đang phát hành trò chơi của bạn sẽ không có sự đơn giản của trò chơi HTML5.

HTML5, theo tôi, chưa có liên quan đến hiệu suất có thể sử dụng được nhưng các tùy chọn khác tồn tại gần như là khả năng truy cập HTML5, mặc dù thêm một chút phức tạp (và chi phí trong một số trường hợp) vào việc phát hành trò chơi của bạn.


Ôi chúa ơi, tôi nghĩ NaCl chỉ dành cho mã C ++ bản địa, nhưng nó cũng chạy Mono?!
David Gouveia


1

Bạn có thể muốn thử PlayN . Hiện tại nó chưa hoàn thiện hoặc được ghi chép tốt và phải mất một số nỗ lực để làm cho nó hoạt động, nhưng nó cho phép bạn lập trình bằng Java và xuất trò chơi của bạn sang một số nền tảng khác nhau (tại thời điểm này, Java, HTML5, Flash, Android và iOS và trong tương lai, Windows Phone 7).

Ưu điểm của nó so với Corona, Phonegap, v.v. là nó biên dịch trò chơi của bạn cho từng nền tảng thay vì chỉ chạy nó bằng máy ảo; điều này đảm bảo rằng bạn có được hiệu suất gần như bản địa trên mọi nền tảng.


0

Câu trả lời và liên kết tuyệt vời - cảm ơn!

Tôi đang thực hiện một số điểm chuẩn của riêng mình (HTML5 / JS và PhoneGap) và tìm thấy câu trả lời tương tự. HTML5 chỉ là chưa có. Tôi chưa chơi với bất kỳ câu trả lời 'kỳ lạ' nào như ứng dụng * mobi, người tuyên bố rằng trình duyệt bị loại bỏ được tối ưu hóa để chơi trò chơi, nhưng kế hoạch chung "Viết trò chơi của bạn trong HTML5 và chơi trên điện thoại" là không khả thi tại thời điểm này. Nó có thể đến đó, nhưng tôi không chắc. Trình duyệt không có nghĩa là một công cụ kết xuất và chúng tôi đang nhảy qua rất nhiều vòng để đến đó. Tôi nghĩ thay vào đó chúng ta sẽ thấy ai đó đưa ra một giải pháp thay thế có khối lượng quan trọng, và điều đó sẽ cất cánh. Thời gian sẽ trả lời.

Tôi thích bất kỳ phản hồi và phê bình mang tính xây dựng nào cho công việc của tôi, trên GitHub và miễn phí cho tất cả mọi người.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

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.