MMOs berbasis browser (WebGL, WebSocket) [ditutup]

29

Apakah menurut Anda secara teknis dimungkinkan untuk menulis klien MMO 3D sepenuhnya dengan JavaScript Browser - WebGL untuk grafik, dan WebSocket untuk Jaringan?

  • Apakah menurut Anda MMO masa depan (dan game umumnya) akan ditulis dengan WebGL?
  • Apakah kinerja JavaScript hari ini memungkinkan ini?
  • Katakanlah tim pengembangan Anda adalah Anda sebagai pengembang, dan pembuat model lainnya (artis). Apakah Anda menggunakan perpustakaan seperti SceneJS untuk game, atau menulis WebGL langsung? Jika Anda akan menggunakan perpustakaan, tetapi tidak SceneJS, harap tentukan yang mana.

UPDATE (September 2012): RuneScape, yang merupakan MMORPG berbasis browser 3D yang sangat populer yang menggunakan Java Applets sejauh ini telah mengumumkan akan menggunakan HTML5 untuk klien mereka ( sumber ).

Runescape HTML5

Java (kiri) dan HTML5 (kanan)

UPDATE (Juni 2013): Saya telah menulis prototipe MMO berbasis WebGL / WebSocket: https://github.com/alongubkin/xylose

Alon Gubkin
sumber
3
Mozilla Firefox dan Opera baru saja menjatuhkan dukungan websocket untuk alasan keamanan: heise.de/security/meldung/… Lihat gamedev.stackexchange.com/q/6524/450 untuk abstraksi lintas browser dari barang-barang jaringan.
Hendrik Brummermann
2
Saya pikir ketiga pertanyaan ini menarik, tetapi saya lebih suka memecahnya menjadi tiga pertanyaan. Dalam pikiranku mereka nyaris tidak berhubungan.
2
Secara teknis itu mungkin, ya. Secara realistis adalah masalah lain.
Bebek Komunis
Sebagai catatan tambahan: Google membuat pustaka JavaScript di WebGL yang cukup keren: code.google.com/p/o3d
Alex Beardsley
Asumsi saya adalah bahwa pertanyaan Anda menyiratkan MMO 3D. 3D bukan persyaratan untuk genre ini, dan pada kenyataannya banyak MMO telah ada di web selama bertahun-tahun lebih kecil dari bentuk HTML (Lihat urbandead.com ) Belum lagi semua game PHP dari Gameforge ( en.gameforge.com ) atau hal-hal AJAX / Javascript yang lebih eksotis seperti Lord of Ultima ( lordofultima.com )
wkerslake

Jawaban:

7

Apakah menurut Anda secara teknis dimungkinkan untuk menulis klien MMO 3D sepenuhnya dengan JavaScript Browser - WebGL untuk grafik, dan WebSocket untuk Jaringan?

Ya, tentu saja. Tidak ada alasan teknologi WebGL atau WebSocket akan mencegah Anda membuat klien MMOG 3D, atau klien game apa pun.

Apakah Anda pikir MMO masa depan (dan game umumnya) akan ditulis dengan WebGL?

Iya nih. Saya percaya dalam lima tahun ke depan, sebagian besar game browser 3D akan ditulis menggunakan WebGL. Alasannya sederhana - WebGL adalah satu-satunya teknologi 3D standar yang akan memiliki implementasi yang tersedia di setiap browser web utama (Chrome 9, Firefox 4, Safari 6, dan Internet Explorer melalui Chrome Frame).

Apakah kinerja JavaScript hari ini memungkinkan ini?

Iya nih. Kinerja JavaScript di browser modern telah meningkat ke titik di mana pengembangan game 3D layak. Misalnya, lihat proyek Three.js .

Katakanlah tim pengembangan Anda adalah Anda sebagai pengembang, dan pembuat model lainnya (artis). Apakah Anda menggunakan perpustakaan seperti SceneJS untuk game, atau menulis WebGL langsung? Jika Anda akan menggunakan perpustakaan, tetapi tidak SceneJS, harap tentukan yang mana. Terima kasih!

Gunakan perpustakaan untuk menghemat waktu. Tidak ada alasan untuk menulis kode grafis WebGL Anda sendiri kecuali perpustakaan yang ada kehilangan fitur yang Anda butuhkan. Bahkan dalam kasus itu, mungkin akan lebih efisien waktu untuk memperluas perpustakaan yang ada.

Untuk proyek saya, saya menggunakan GLGE karena mendukung banyak efek grafis yang berbeda dan terus diperbarui dengan yang baru.

Jephir
sumber
2
Pertanyaan "Apakah menurut Anda MMO masa depan (dan game umumnya) akan ditulis dengan WebGL?" dan jawabannya "Ya. Saya percaya dalam lima tahun ke depan, sebagian besar game browser 3D akan ditulis menggunakan WebGL." tidak cocok satu sama lain ...
Kylotan
5

Sudah ada beberapa MMO berbasis Browser di luar sana. Mereka biasanya tidak menggunakan grafik 3D.

Saya agak skeptis ketika datang ke WebGL. Pangkas browser saat ini tidak mendukung WebGL dalam versi rilis normalnya. Anda harus mendapatkan bangunan khusus atau mengacaukan file konfigurasi, yang lebih rumit bagi pengguna rata-rata daripada mengunduh plugin.

Berbicara tentang plugin: Beberapa orang menyebut Unity, tetapi jangan lupa Flash. Rilis berikutnya dari pemutar Flash (nama kode molehill ) akan memiliki akselerasi GPU-3D. Dugaan saya adalah, flash itu akan memberikan akselerasi grafik 3D perangkat keras di browser sebelum WebGL lepas landas.

bummzack
sumber
1
Masalah browser stabil dengan dukungan webgl seharusnya tidak terjadi setelah sekitar Jan 2010. Firefox 4 dan Chrome 9 dijadwalkan keluar pada waktu itu. Chrome 9 beta cukup mudah dipasang dan tidak perlu dipusingkan dengan apa pun untuk mengaktifkan webgl. Tautan ke edisi beta di bawah tautan unduhan reguler untuk chrome.
Nicolas K.
@ Nicolas K. - Maksud Anda Jan 2011 ?
DMan
1
@Nicolas K - Ketersediaan browser, dan pangkalan instal browser adalah hal yang sangat berbeda. 13% dari lalu lintas internet masih IE6. Sumber: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake
@DMan: Mungkin, karena sudah keluar sekarang. Saya tidak bisa menunggu sampai seseorang menemukan cara untuk bluescreen (atau panik kernel, atau apa pun itu Mac) driver OpenGL jelek menggunakan WebGL ...
1
@wkerslake: Statistik itu keterlaluan. Saya memelihara situs yang ditujukan untuk konsumen internet rata-rata dengan setengah juta kunjungan unik per hari, dan kurang dari 1% dari mereka menggunakan Internet Explorer 6 (sekitar 1/3 menggunakan Internet Explorer 7/8/9). Firefox dan Chrome mewakili 50% dari lalu lintas, dan mereka adalah browser yang memperbarui sendiri yang berarti mayoritas orang akan memiliki dukungan WebGL diinstal dalam beberapa bulan. Karena pengembangan game dapat dengan mudah memakan waktu 6 bulan, saya tidak melihat alasan untuk mencegah orang menggunakan WebGL hari ini.
Blixt
3

Secara teknis mungkin? Iya nih. Tapi mengapa repot ketika solusi web seperti Unity tersedia?

MMO masa depan ditulis dalam WebGL? Tidak. Ok mungkin tapi ada plugin berbasis web seperti Unity yang baik-baik saja sekarang.

Kinerja JavaScript hari ini memungkinkan ini? Tidak. Ok ya jika Anda menjaga gim Anda tetap sederhana.

Apakah Anda menggunakan perpustakaan seperti SceneJS [...] atau menulis WebGL langsung? Tidak juga. Saya akan menggunakan aplikasi pihak ketiga seperti Unity.

Tim Holt
sumber
4
Jawaban Anda salah, kontradiktif dan diformat dengan buruk. Maaf sudah sangat kasar. Jika Anda berpikir op hanya harus menggunakan persatuan katakan demikian dalam komentar untuk pertanyaannya.
oberhamsi
Ironisnya oberhamsi, jawaban asli saya hanya mengatakan "Gunakan Persatuan", tetapi saya diberitahu bahwa saya perlu menjawab pertanyaan itu secara lebih langsung.
Tim Holt
1
Oke, cukup adil. Saya pikir persatuan adalah binatang yang sangat berbeda kemudian mencoba melakukannya secara native di browser. Tentu, Anda dapat melakukan apa saja dengan sebuah plugin tetapi pertanyaannya bagi saya: apa batas teknologi browser asli.
oberhamsi
2

Ini tidak layak sekarang (awal 2011). Anda tidak dapat membuat MMO 3D real-time dalam teknologi browser asli (artinya tanpa plugin).

Saya tidak akan berspekulasi tentang masa depan. Beginilah tampilannya sekarang. Dengan asumsi Anda hanya menargetkan browser modern (IE9, FF4, dll). Jika Anda berencana untuk mendukung IE7 maka Anda gila. Itu tidak akan pernah berhasil.

Hal-hal yang hilang:

  • kontrol penuh atas keyboard dan mouse (kemampuan untuk mengatur posisi mouse, intersepsi kunci)
  • layar penuh
  • 3D

Area / solusi dengan masalah serius:

  • WebSockets sekarang dinonaktifkan di beberapa browser yang mendukungnya
    • tanpanya: sekarang latensi rendah, komunikasi client-server dua arah
  • masalah audio
    • kekacauan codec, Anda perlu ogg dan mp3
    • frekuensi umum tidak didukung
    • concurrancy
    • menunda
  • kinerja kanvas (dalam beberapa kasus melakukan transformasi divs & css lebih cepat)
oberhamsi
sumber
1

Ya, tetapi dengan peringatan utama.

Anda tidak akan memiliki kontrol keyboard penuh, dan bagi banyak orang aneh kontrol, ini bisa menjadi pemecah kesepakatan. Tombol-F misalnya mungkin akan tetap di luar jangkauan untuk beberapa waktu.

Anda juga tidak akan bisa mengenai sebagian besar browser. WebGL belum benar-benar didukung dengan baik, dan dukungan websocket sangat populer saat ini, dengan beberapa vendor browser mengaktifkannya untuk satu versi, kemudian menonaktifkannya untuk yang berikutnya.

Tapi Anda bisa mengumpulkan sesuatu yang sederhana, tentu saja. Lemparkan ke dalam gameplay yang menarik dan tidak masalah grafisnya sedikit rendah. Runescape dimulai dengan sangat sederhana, dan tumbuh menjadi MMO yang kompleks, menyenangkan, sangat populer, ketika semua orang mengatakan bahwa MMO yang dibuat dalam plug-in browser adalah mimpi pipa.

MMO yang dibangun dengan batas saat ini untuk peramban yang beradaptasi ketika segala sesuatunya berubah pasti akan meningkat pada saat peramban cukup jauh untuk mendukung MMO "AAA".

Dan Hulton
sumber
1
Hampir semua browser modern mendukung tombol fungsi ( quirksmode.org/js/keys.html#link6 ). Faktanya, halaman itu setidaknya berumur beberapa tahun dan dukungan untuk mereka di browser modern mungkin lebih baik.
Ricket
1

Pastinya ya.

WebGL termasuk dalam build malam di WebKit (Chrome / Safari) dan Gecko (Firefox). WebSockets saat ini dinonaktifkan karena masalah keamanan, tetapi tidak ada alasan mengapa itu tidak harus diaktifkan kembali setelah masalah diselesaikan. Sementara itu selalu ada HTTP.

Apakah semua game akan ditulis dengan cara ini? Tidak, tetapi jumlah yang signifikan adalah. Setelah WebGL berada di versi final Chrome dan Firefox, penetrasi akan lebih tinggi daripada plug-in asli seperti Unity.

Kinerja JavaScript sepenuhnya tergantung pada permainan menulis. Anda mungkin tidak akan melihat level grafik Crysis untuk sementara waktu, tetapi ingat dengan WebGL, angka-angka diturunkan ke GPU.

Untuk tim kecil yang terdiri dari 2 orang, Anda perlu bersiap untuk melakukan banyak pengkodean yang pernah Anda gunakan. Saat ini tidak ada mesin WebGL / JavaScript yang benar-benar mencakup banyak kode game. SceneJS, three.js dan sejenisnya adalah pembungkus di atas lapisan grafik, tetapi tidak memberikan apa pun untuk tabrakan, fisika, audio, pemuatan sumber daya, jaringan atau alat yang membentuk sebagian besar produk seperti Unreal Engine, atau Unity.

Ini hari-hari awal saat ini, saya berharap akan melihat lebih banyak middleware muncul pada tahun depan.

dave
sumber
0

Saya tidak berpikir banyak MMO masa depan akan ditulis dengan teknologi browser sisi klien karena sebagian besar pengembang MMO ingin menggunakan bahasa yang sama di seluruh klien dan server, dan sebagian besar pengembang game fasih dalam bahasa non-web seperti C ++. Terlalu banyak kode klien yang terlibat sehingga sangat praktis dalam Javascript, kecuali untuk simulasi yang sangat sepele. Ada juga batasan lain yang diberlakukan dengan menjalankan di browser yang tidak baik untuk pengembang game biasa.

Saya yakin akan ada beberapa game seperti ini. Mereka hanya tidak akan mengambil alih dari WoW atau game serupa untuk sementara waktu. Mereka mungkin akan dibuat lebih banyak oleh pengembang web masuk ke game daripada pengembang game masuk ke web.

Kylotan
sumber
Apakah downvoter ingin menambahkan komentar yang menjelaskan bagaimana mereka tidak setuju dengan jawaban saya? Hanya ingin tahu. :)
Kylotan
0

Pertanyaan yang harus Anda tanyakan pada diri Anda adalah mengapa pengembang game ingin bergantung pada teknologi web yang tidak mereka kuasai dan tidak memiliki kendali atas, bahasa saat ini memungkinkan Anda bahkan di browser web untuk membuat game yang luar biasa?

lollancf37
sumber
0

Ya, tetapi teknologinya masih perlu stabil dan kemungkinan akan ada trade-off kinerja vs aplikasi asli.

Vincent Scheib
sumber
-3

Persatuan itu baik. Lihat juga Siwa dan Mesin Utama.

Lionel Barret
sumber
1
Unity dan Prime Engine tidak ada hubungannya dengan teknologi yang disebutkan. Mereka adalah plugin kode asli.
Kylotan
1
Mereka adalah jawaban dalam arti bahwa kita mengatakan, "Tidak, itu bukan ide yang baik untuk melakukan ini, namun di sini ada alternatif." Jawaban yang mengatakan, "Tidak, tetapi ini adalah alternatif" jauh lebih disukai daripada hanya "Tidak"
Tim Holt
3
Terkadang saya setuju, tetapi jarang. Ada bahaya mencoba membaca pikiran seseorang dan menebak-nebak apa yang sebenarnya ingin mereka lakukan, padahal sebenarnya pertanyaan aslinya sah menurut hukumnya sendiri. Jika seseorang bertanya tentang kesesuaian X, kita tidak harus selalu menjawab dengan "gunakan saja Y". Paling tidak harus ada perbandingan kesesuaian keduanya sehingga kita dapat mengetahui lebih banyak tentang X.
Kylotan
Saya akan ulangi jawaban saya kemudian untuk menjawab pertanyaannya tentang perpustakaan apa yang akan digunakan. Saya akan menggunakan Unity "library" sendiri: P
Tim Holt
jawaban teratas mengatakan pada dasarnya hal yang sama ..
Kesalahan 454