Pengetahuan penting untuk membuat game berbasis HTML / JavaScript [ditutup]

17

Saya bertanya-tanya apakah ada pakar di luar sana yang dapat berbagi pengetahuan dan sumber daya tentang apa yang diperlukan untuk mulai membuat game dengan standar HTML dan JavaScript terbaru (atau apa yang beberapa orang suka menyebutnya HTML 5). Apakah ada perpustakaan JavaScript yang penting untuk proses ini? Selain dari <canvas>tag, potongan HTML apa lagi yang perlu kita ketahui?

Edmundito
sumber

Jawaban:

9

Anda harus mengetahui tag Audio dan Video . Penyimpanan Web sangat penting jika Anda perlu menyimpan banyak data untuk game yang disimpan, dll.

Sudah ada beberapa kerangka kerja game html5 Javascript, Akihabara agak populer.

Sejauh perpustakaan lain, Jquery dan Javascript Fungsional adalah 2 favorit saya.

Jdeseno
sumber
apa kekuatan masing-masing kerangka kerja? Yang mana yang paling sederhana, paling kuat dan dengan kode terbersih? Kata "Fungsional" dalam Fungsional Javascript -term terdengar menarik, ada apa sebenarnya? Kerangka mana yang akan Anda sarankan untuk pythonist?
apa yang disediakan oleh Web Storage yang db tidak bisa?
expiredninja
@ expiredninja database sebenarnya akan lebih baik tetapi penyimpanan web bersifat lokal ke mesin pengguna. Tidak ada hosting & lebih cepat daripada membuat panggilan ajax dll. Jawaban ini (sedikit) ketinggalan zaman dengan teknik yang digunakan untuk game berbasis browser modern.
jdeseno
6

Ada beberapa kerangka kerja yang sudah ada: GameQuery dan Akihabara , yang merupakan plugin untuk jQuery untuk melakukan beberapa aktivitas yang berhubungan dengan game, seperti animasi, pengelompokan sprite, mendeteksi tabrakan, dan membaca input pemain.

chiguire
sumber
4

Hanya untuk membuang lebih banyak sumber daya di luar sana, periksa RaphaelJS . Ini adalah pustaka gambar dan animasi SVG yang sangat bagus yang memiliki API yang bagus. Jangan lupa untuk melihat demo.

Secara keseluruhan, saya akan merekomendasikan <canvas>tag melalui manipulasi DOM langsung (misalnya membuat masing-masing sprite sendiri <div>untuk membuat hit-testing sangat sederhana). Sangat mudah untuk mendapatkan manipulasi DOM yang salah dan berkinerja buruk, sedangkan strategi pengembangan 2d tradisional bekerja dengan baik pada kanvas HTML.

drhayes
sumber
3

Selain beberapa kerangka kerja pembuatan game yang ada di luar sana, Anda harus mengetahui Burst Engine, yang merupakan kerangka kerja JS untuk menampilkan animasi berbasis SVG di Kanvas HTML5:

http://burst.bocoup.com/

Sejauh ini saya telah melihat orang menyebutkan tag dan, tetapi ada hal-hal DOM lain yang penting untuk pengembangan game JS / HTML, termasuk hal-hal seperti menambahkan callback EventListener ke elemen untuk hal-hal seperti acara 'mousemove' dan 'mousedown'. Misalnya, ini mengambil elemen kanvas pertama yang dapat ditemukan dan mengaturnya sehingga ketika Anda mengklik kanvas, ia memanggil fungsi yang telah Anda tetapkan disebut "shootAtClick":

document.getElementsByTagName ("CANVAS") [0] .addEventListener ('mousedown', shootAtClick, false);

Anda dapat melihatnya beraksi dalam contoh ini di mana saya telah memperluas mesin Akihabara untuk menerima kontrol mouse dasar. (Tekan Z untuk memulai, gunakan tombol panah untuk bergerak, klik mouse untuk menembak ke arah kursor.)

DariusK
sumber
3

Pengetahuan tentang komponen HTML5 apa yang didukung di browser apa.

Meskipun kompatibilitas lintas browser menjadi lebih baik dan lebih seragam seiring berjalannya waktu beberapa komponen yang lebih baru masih belum didukung sepenuhnya sama.

Penyimpanan lokal mungkin memiliki beberapa perbedaan spesifik peramban, dan untuk dukungan lawas Anda pasti akan membutuhkan perpustakaan seperti jStorage atau YUI Storage Lite .

Soket web juga mungkin memiliki perbedaan spesifik peramban, tetapi socket.io tampak seperti perpustakaan yang menjanjikan yang menyediakan abstraksi yang nyaman.

Kompatibilitas audio adalah komponen yang cukup utama yang memerlukan file suara yang berbeda untuk browser yang berbeda: http://html5doctor.com/native-audio-in-the-browser/

Chrome memiliki beberapa bug audio yang signifikan, seperti tidak dapat memutar file audio pendek , dan memainkan banyak suara secara bersamaan dapat membuat crash seluruh browser.

Hal utama adalah untuk memahami perbedaan peramban, menggunakan perpustakaan untuk abstrak dan memberikan dukungan lama yang diperlukan.

Daniel X Moore
sumber
1

HTML dan JavaScript adalah platform yang benar-benar buruk untuk pengembangan game, tetapi itu tidak masalah sampai Anda memutuskan jenis permainan. Jawabannya akan sangat berbeda untuk penembak orang pertama, RTS atau permainan puzzle.

Perhatikan bahwa Anda mulai mendapatkan jawaban yang samar-samar dan lambaian tangan yang mengoceh teknologi acak yang tampak rapi. Itu adalah tanda peringatan bahwa Anda belum mengajukan pertanyaan dengan jawaban yang sangat sah.

Anda mungkin juga menanyakan hal-hal C ++ yang Anda butuhkan untuk menulis aplikasi. Itu tergantung. Ceritakan lebih banyak tentang proyek ini kepada kami, dan Anda mungkin mendapatkan jawaban yang bermanfaat.

Secara keseluruhan, ada alasan bahwa hampir semua gim web masih Flash.

John Haugeland
sumber
4
Saya setuju bahwa pertanyaannya tidak jelas dan jawabannya ada di semua tempat, tetapi tidak setuju bahwa "HTML dan [JS] adalah ... platform buruk untuk pengembangan game." Ingat Google doodle Pac-Man? HTML dan JS lurus. Saya pikir jenis permainan kasual tertentu bekerja sangat baik pada platform itu, dan manusia yang menggunakan web sudah memiliki runtime. (=
drhayes
1
Wow, pac-man. Peletakan batu pertama. Ada alasan mengapa tidak ada yang menggunakan HTML / JS dalam game untuk hal lain selain demo teknologi.
John Haugeland
1
@ Edmundito: Jika itu yang Anda rasakan 'pertanyaan' ini harus pergi, itu harus ditandai sebagai CW.
Jesse Dorsey
12
-1 jawaban yang tidak berharga. Jika Anda berpendapat bahwa game web bukan platform yang baik, maka duduklah. Saya tidak tahu mengapa ini mendapat begitu banyak upvotes, mungkin orang lain membagikan pendapat Anda tetapi itu tidak berkontribusi untuk menjawab pertanyaan ini sama sekali.
Ricket
1
Kawan, berhentilah mengamuk. Jawabannya sangat berbeda pada tahun 2010 dibandingkan hari ini pada tahun 2014. Saya memiliki banyak permainan HTML di toko saat ini.
John Haugeland