Kiến thức cần thiết để tạo các trò chơi dựa trên HTML / JavaScript [đã đóng]


17

Tôi đã tự hỏi liệu có bất kỳ chuyên gia nào ngoài đó có thể chia sẻ kiến ​​thức và tài nguyên về những gì cần thiết để bắt đầu tạo trò chơi với các tiêu chuẩn HTML và JavaScript mới nhất (hoặc một số người muốn gọi HTML 5). Có thư viện JavaScript nào cần thiết cho quá trình không? Ngoài <canvas>thẻ, chúng ta cần lưu ý những phần nào khác của HTML?

Câu trả lời:


9

Bạn nên biết về các thẻ AudioVideo . Lưu trữ web là rất quan trọng nếu bạn cần lưu nhiều dữ liệu cho các trò chơi đã lưu, v.v.

Hiện đã có một vài khung trò chơi Javascript html5, Akihabara khá phổ biến.

Theo như các thư viện khác, JqueryJavascript chức năng là 2 trong số các mục yêu thích của tôi.


điểm mạnh của từng khung là gì? Cái nào là đơn giản nhất, mạnh mẽ nhất và với mã sạch nhất? Từ "Chức năng" trong Javascript -term chức năng nghe có vẻ thú vị, thực sự nó là về cái gì? Khung nào bạn muốn đề xuất với pythonist?

Web Storage cung cấp những gì mà db không thể?
expiredninja

@Exiredninja một cơ sở dữ liệu thực sự sẽ tốt hơn nhưng lưu trữ web là cục bộ đối với máy của người dùng. Không lưu trữ & nhanh hơn thực hiện cuộc gọi ajax, v.v ... Câu trả lời này (hơi) lỗi thời với các kỹ thuật được sử dụng cho các trò chơi dựa trên trình duyệt hiện đại.
jdeseno

6

Đã có một vài khung công tác: GameQueryAkihabara , đây là một plugin để jQuery thực hiện một số hoạt động liên quan đến trò chơi, như hoạt hình, nhóm các họa tiết, phát hiện va chạm và đọc đầu vào của người chơi.


4

Chỉ cần ném thêm tài nguyên ra khỏi đó, hãy xem RaphaelJS . Đây là một thư viện vẽ và hoạt hình SVG rất đẹp có API đẹp. Đừng quên kiểm tra các bản demo.

Nhìn chung, tôi khuyên bạn nên sử dụng <canvas>các thẻ qua thao tác DOM thẳng (ví dụ: làm cho mỗi sprite của riêng mình <div>để thực hiện kiểm tra lần truy cập đơn giản một cách đáng kinh ngạc). Thật dễ dàng để thao tác DOM sai và hoạt động kém, trong khi các chiến lược phát triển 2d truyền thống hoạt động tốt trên khung vẽ HTML.


3

Ngoài một số khung làm trò chơi ngoài kia, bạn nên biết về Burst Engine, đây là khung công tác JS để hiển thị hoạt hình dựa trên SVG trong Canvas HTML5:

http://burst.bescentp.com/

Cho đến nay tôi đã thấy mọi người đề cập đến các thẻ và thẻ, nhưng có những thứ DOM khác rất quan trọng đối với việc phát triển trò chơi JS / HTML, bao gồm cả những thứ như thêm các cuộc gọi lại EventListener vào thành phần cho những thứ như các sự kiện 'mousemove' và 'mousedown'. Ví dụ: cái này lấy phần tử canvas đầu tiên mà nó có thể tìm và thiết lập nó để khi bạn nhấp vào canvas, nó sẽ gọi một hàm bạn đã xác định gọi là "shotAtClick":

document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', bắnAtClick, sai);

Bạn có thể thấy nó hoạt động trong ví dụ này , nơi tôi đã mở rộng công cụ Akihabara để chấp nhận điều khiển chuột cơ bản. (Nhấn Z để bắt đầu, sử dụng các phím mũi tên để di chuyển, nhấp chuột để bắn theo hướng con trỏ.)


3

Kiến thức về các thành phần HTML5 được hỗ trợ trong các trình duyệt nào.

Mặc dù khả năng tương thích trình duyệt chéo ngày càng tốt hơn và đồng đều hơn khi thời gian trôi qua, một số thành phần mới hơn vẫn không được hỗ trợ hoàn toàn như nhau.

Bộ nhớ cục bộ có thể có một số khác biệt cụ thể của trình duyệt và để được hỗ trợ cũ, bạn chắc chắn sẽ cần một thư viện như jStorage hoặc YUI Storage Lite .

Các socket web cũng có thể có sự khác biệt cụ thể của trình duyệt, nhưng socket.io trông giống như một thư viện đầy hứa hẹn cung cấp sự trừu tượng hóa thuận tiện.

Khả năng tương thích âm thanh là một thành phần chính yêu cầu các tệp âm thanh khác nhau cho các trình duyệt khác nhau: http://html5doctor.com/native-audio-in-the-browser/

Chrome có một vài lỗi âm thanh đáng kể, chẳng hạn như không thể phát các tệp âm thanh ngắn và phát nhiều âm thanh đồng thời có thể làm sập toàn bộ trình duyệt.

Điều chính là để hiểu sự khác biệt của trình duyệt, sử dụng các thư viện để trừu tượng và cung cấp hỗ trợ kế thừa khi cần thiết.


1

HTML và JavaScript thực sự là những nền tảng khá tệ để phát triển trò chơi, nhưng điều đó sẽ không thành vấn đề cho đến khi bạn quyết định chọn một loại trò chơi. Câu trả lời sẽ hoàn toàn khác nhau đối với một game bắn súng góc nhìn thứ nhất, RTS hoặc một game giải đố.

Lưu ý rằng bạn đang bắt đầu nhận được những câu trả lời mơ hồ, vẫy tay với những công nghệ ngẫu nhiên có vẻ gọn gàng. Đó là một dấu hiệu cảnh báo rằng bạn chưa đặt câu hỏi với câu trả lời đặc biệt hợp pháp.

Bạn cũng có thể hỏi những gì C ++ bạn cần để viết ứng dụng. Mà phụ thuộc. Hãy cho chúng tôi biết thêm về dự án và bạn có thể nhận được câu trả lời hữu ích.

Nhìn chung, có một lý do mà gần như tất cả các trò chơi web vẫn là Flash.


4
Tôi đồng ý rằng câu hỏi rất mơ hồ và câu trả lời ở khắp mọi nơi, nhưng không đồng ý rằng "HTML và [JS] là ... nền tảng xấu cho phát triển trò chơi." Ghi nhớ hình tượng trưng Pac-Man của Google? HTML và JS thẳng. Tôi nghĩ rằng một loại trò chơi thông thường nào đó hoạt động khá tốt trên nền tảng đó và con người sử dụng web đã có thời gian chạy. (=
drhayes

1
Wow, pac-man. Động thổ. Có một lý do không ai sử dụng HTML / JS trong chơi game cho bất cứ điều gì khác ngoài các bản demo công nghệ.
John Haugeland

1
@Edmundito: Nếu đó là cách bạn cảm thấy 'câu hỏi' này nên đi, thì nó nên được đánh dấu là CW.
Jesse Dorsey

12
-1 câu trả lời vô giá trị. Nếu ý kiến ​​của bạn là game trên web không phải là một nền tảng tốt thì hãy ngồi xuống. Tôi không biết tại sao điều này lại có quá nhiều sự ủng hộ, có thể những người khác chia sẻ ý kiến ​​của bạn nhưng nó không góp phần trả lời câu hỏi này.
Ricket

1
Các bạn ơi, bỏ cơn thịnh nộ ra. Câu trả lời rất khác trong năm 2010 so với ngày nay năm 2014. Tôi có một loạt các trò chơi HTML trong cửa hàng ngay bây giờ.
John Haugeland
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.