Menambahkan multipemain ke game HTML5 [ditutup]

15

Saya tertarik membuat game yang saat ini saya punya pengalaman co-op, namun saya ingin tahu tentang metode terbaik untuk mengimplementasikan ini dalam HTML5.

Saya telah membuat game sebelum menggunakan soket C lurus, dan juga dengan perpustakaan Net untuk SDL.

Apa saja pilihan terbaik saya untuk melakukan ini di lingkungan berbasis kanvas?

Saat ini, yang bisa saya pikirkan adalah solusi AJAX / database (dengan refresh rate yang tinggi), atau entah bagaimana mengimplementasikan server PHP yang akan menyalurkan data melalui soket.


Gameplay keseluruhan akan menjadi jenis permainan platformer-ish 2.5D, sehingga kedua klien perlu terus diperbarui dengan posisi pemain, posisi musuh, proyektil, data lingkungan, dll.

engkau
sumber
1
Ketika websockets ( en.wikipedia.org/wiki/WebSockets ) diselesaikan (dan diimplementasikan dll) yang mungkin akan menjadi cara yang baik, sampai saat itu saya pikir AJAX (tanpa X, tidak diperlukan XML untuk ini) mungkin akan menjadi cara terbaik (masih bukan cara yang sangat baik kurasa).
Elva
Tampaknya dukungan untuk soket web menurun dengan cepat ...
the_e
Apakah Anda ingin membuat pendirian atau permainan? Jika Anda ingin membuat game; jangan repot-repot pergi untuk HTML5.
@stefan: mengapa tidak keduanya? hanya karena belum selesai belum berarti saya tidak bisa bekerja dengannya!
the_e

Jawaban:

12

Socket.IO menawarkan sistem yang dibangun di atas beberapa lapisan lainnya (termasuk soket web, lampu kilat, teknik komet) dengan pemilihan yang anggun.

Node.js adalah salah satu opsi untuk menjalankannya di sisi server.

Vincent Scheib
sumber
5

Lihat jawaban ini :

Anda dapat, bagaimanapun, menggunakan Flash di mana tersedia untuk menyediakan skrip Anda dengan mundur sampai WebSocket tersedia secara luas. Gimite's web-socket-js adalah salah satu contoh gratisnya. Namun Anda tunduk pada batasan yang sama seperti Flash Sockets, yaitu bahwa server Anda harus dapat mengeluarkan kebijakan lintas-domain berdasarkan permintaan ke port soket, dan Anda akan sering mengalami kesulitan dengan proksi / firewall. (Soket flash dibuat secara langsung; untuk seseorang tanpa akses IP publik langsung yang hanya bisa keluar dari jaringan melalui proxy HTTP, mereka tidak akan berfungsi.)

Ricket
sumber
3

" Komet " mungkin adalah istilah umum yang bisa Anda manfaatkan di sini. WebSockets akan menjadi opsi yang lebih diinginkan (ketika mereka senang bahwa itu aman).

Casr
sumber
3

Node.js adalah jawabannya. Saya telah menggunakannya untuk mengembangkan game menembak multiplayer waktu nyata, dan butuh sekitar 1 bulan dari awal hingga selesai. Ini menghadirkan beberapa tantangan unik, sehingga perlu memiliki latensi minimal, dan semua pemain harus tetap sinkron dengan yang lain agar konsep itu berfungsi.

Sisi klien, dan sisi server keduanya ditulis dalam javascript dan berbagi kelas / logika antara satu sama lain. Itu mulai diperhitungkan ketika mencoba memperbaiki bug, karena Anda tidak harus mengimplementasikan semuanya dua kali.

Permainan telah berjalan, selama sekitar 2 bulan, tanpa restart dan ribuan pertandingan telah dimainkan.

Socket.io adalah implementasi soket dan menggunakan node.js, namun terlalu gembung pada saat ini untuk permainan. Ada implementasi websocket lain di github untuk node.js dan juga contoh game yang menggunakannya.

suatu hari nanti akan membuat
sumber
2

Anda selalu bisa menggunakan AJAX dan semacam antrian pesan. ActiveMQ adalah contoh yang bagus. Anda menjalankan ActiveMQ di server, maka JavaScript Anda dapat mengirim dan menerima pesan. Buat saja setiap pemain memiliki nama yang unik, dan kirim pesan ke pemain lain.

Brendan Long
sumber
2

Anda dapat mencoba menggunakan http://easywebsocket.org/ , mudah diimplementasikan dan merupakan solusi serverLess berdasarkan websocket :)

Pierre-Loic Doulcet
sumber
2

Kami telah mengerjakan platform multi-pemain yang mungkin menarik bagi Anda. Anda dapat melihat proyek kami di www.16cubes.com - kami menyediakan lapisan javascript sederhana untuk melakukan komunikasi peer to peer. Ini agak didasarkan pada prinsip Comet, dan kami memiliki rencana untuk pindah menggunakan soket web karena menjadi sedikit lebih terstandarisasi. Di sisi lain, kami menyediakan beberapa fitur dari rak .. seperti pencocokan lawan otomatis, obrolan game, teman facebook undangan sekali klik dll.

Kami memiliki demo tic-tac-toe, Anda mungkin bisa mendapatkan ide yang lebih baik jika Anda melihatnya. Dan ya, Anda juga bisa bermain secara anonim. Tidak diperlukan pendaftaran, jika Anda tidak mau. Ada kurang dari 10 API javascript yang perlu Anda kode, dan tersedia di www.16cubes.com/documentation

Kami secara aktif mencari umpan balik, jadi beri tahu kami baik dan buruknya


sumber