Apakah mungkin untuk mengembangkan game multi-pemain dengan HTML5?

9

Saya tahu HTML5 bagus untuk gim web, tetapi saya tidak benar-benar tahu apakah mungkin mengembangkan gim daring dengan banyak pengguna, menjaga agar semua orang disinkronkan dan menangani info masuk, dan lain-lain. Apakah mungkin melakukan ini?

arrrrgv
sumber

Jawaban:

7

Anda tidak dapat menulis dengan HTML5 saja. Anda akan selalu memerlukan skrip dan server untuk menangani komunikasi antara pengguna, karena batas keamanan skrip browser, dan juga untuk mencegah kecurangan.

Banyak orang telah menulis game html5 multipemain, bahkan saya punya. Penggunaan html5 sendiri mungkin bukan bagian terpenting darinya. Sebagian besar hal yang diperlukan (jika tidak semua) telah tersedia di html 4.01 juga. Pengecualiannya adalah kanvas, tetapi kanvas lebih lambat dari svg, dan svg sudah tersedia di banyak browser.

Saya pikir apa yang benar-benar melahirkan mania "html5 game" adalah kemampuan untuk membuat aplikasi sisi server dalam javascript. Ini berarti bahwa semua programmer sisi klien tiba-tiba dapat membuat seluruh sistem sendiri, dan mereka biasanya adalah orang-orang kreatif ketika datang ke hal-hal seperti game. Belum lagi JS sangat mudah bahkan nenekmu bisa memprogramnya. Mungkin.

Perbarui setelah komentar dari OP:

Arsitektur umum untuk game browser adalah

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

Atau dalam hal "bahasa" aktual:

  • Tampilan klien: HTML5 (mungkin dengan angular.js, belum menguji seberapa cepat dengan LOTS yang sedang berlangsung. Lihat juga raphael.js untuk "grafik")
  • Logika klien: JavaScript (jquery / vapor / plain / apa pun)
  • Basis data klien: WebSQL (bagian dari "suite" HTML5 kurasa)
  • Komunikasi: JSON (notasi objek Javascript, objek javascript dasarnya serial) melalui socket.io (perpustakaan JS untuk secara otomatis mendeteksi protokol komunikasi yang optimal)
  • Bahasa server: juga JS (simpul.js jika Anda memiliki BANYAK pengguna bersamaan pada beberapa core, solusi lain juga tersedia)
  • Validasi: pastikan data INCOMING game Anda (dari klien) valid. Keluar tidak perlu diperiksa, bahkan pada klien. Diasumsikan benar. Selalu .
  • Game World: kumpulan data DIVERIFIKASI yang didistribusikan kembali ke semua klien saat mereka masuk
  • Database server: couchdb, mongodb, database apa pun yang memberi Anda objek json mentah untuk bekerja dengannya.

Anda disana. Game internet lengkap yang ditulis hanya menggunakan javascript dan html. Menyenangkan.

Tor Valamo
sumber
saya menemukan jawaban Anda sangat menarik, dapatkah Anda memberi saya sedikit nasihat tentang bagian mana yang harus saya bangun (yang paling penting) ujung ke ujung dan teknologi mana yang memberi makan di setiap bagian, maaf tentang itu, hanya mencoba untuk mengetahui cara membangun sesuatu yang andal . Terima kasih!
arrrrgv
1
+1, HTML5 adalah hal yang paling disukai, tetapi apa yang orang nyatakan adalah sebagian besar fungsi 4,01 dan JavaScript. Bisakah saya meminta Anda untuk tidak memanggil JavaScript dengan mudah? Itu sudah mendapat fasilitasnya, tetapi jika Anda ingin menulis program nyata, Anda harus menjadi programmer nyata. JavaScript menghilangkan tugas deklarasi variabel dan manajemen memori, tetapi itu tidak membuat pengorganisasian kode Anda dan mencari algoritma dan struktur data lebih mudah, dan Anda pasti membutuhkan pola pikir dan pengalaman programmer untuk tugas-tugas tersebut.
aaaaaaaaaaaa
@eBusiness Apa yang saya maksud dengan mudah adalah begitu ringkas dalam hal pemrograman, dan penggunaannya didokumentasikan sampai mati. Anda selalu dapat menemukan tutorial atau fungsi yang melakukan apa yang Anda inginkan. Dan itu mudah diatur (Anda tidak perlu, itu sudah ada di browser).
Tor Valamo
@arrrrgv memperbarui pos dengan jawaban atas pertanyaan Anda
Tor Valamo
1
+1 untuk jawaban yang bagus, meskipun saya ragu munculnya game HTML5 ada hubungannya dengan JavaScript di sisi server. Sebenarnya, JS bahkan bukan bagian dari HTML5. Saya pikir ini adalah fitur-fitur baru seperti kanvas, webGL, audio dan video dan penyimpanan lokal yang memberi dorongan pada game HTML5. Dan tentu saja fakta bahwa itu baru dan hyped sehingga semua orang ikut-ikutan.
bummzack
3

Lihatlah artikel di http://smus.com/multiplayer-html5-games-with-node dan juga sumber yang disediakan bersama artikel tersebut. Perhatikan bahwa ini juga menggunakan JavaScript untuk jaringan.

FrenchyNZ
sumber
2
Harap tulis "JavaScript" sebagai satu kata, untuk menghindari kebingungan.
o0 '.
Suatu hari, Node.js tidak diperlukan - ketika dukungan lintas-browser untuk soket web tersebar luas.
Insinyur
Saya tidak melihat mengapa dukungan lintas browser untuk soket web akan mengubah kebutuhan komponen server di luar browser apa pun. Anda harus selalu memprogram permainan multipemain sehingga klien terhubung ke server pusat, bukan klien-ke-klien secara langsung.
jhocking
1
Lihat juga NowJS ( nowjs.com )
Tim Holt
soket web secara inheren tidak aman untuk aplikasi apa pun, yang merupakan alasan mengapa implementasi yang direncanakan ditinggalkan oleh banyak browser. Anda tidak dapat mengizinkan lingkungan yang mendapat akses ke "di mana saja" dan pada saat yang sama dapat mengambil input dari "di mana saja".
Tor Valamo