MMO на базі браузера (WebGL, WebSocket) [закрито]


29

Чи вважаєте ви, що технічно можливо написати повноцінний клієнт 3D MMO за допомогою браузера JavaScript - WebGL для графіки та WebSocket для мереж?

  • Як ви думаєте, майбутні MMO (та загалом ігри) будуть писатись із WebGL?
  • Чи дозволяє сьогоднішня продуктивність JavaScript?
  • Скажімо, ваша команда розробників була ви як розробник та ще один творець моделі (художник). Чи використовуєте ви для гри бібліотеку типу SceneJS або пишете прямо WebGL? Якщо ви використовуєте бібліотеку, але не SceneJS, вкажіть, яку саме.

ОНОВЛЕННЯ (вересень 2012 р.): RuneScape, дуже популярний в браузері 3D-браузер MMORPG, який використовував Java-аплети до цього часу, оголосив, що використовуватиме HTML5 для свого клієнта ( джерело ).

Runescape HTML5

Java (зліва) та HTML5 (праворуч)

ОНОВЛЕННЯ (червень 2013): я написав прототип MMO на основі WebGL / WebSocket: https://github.com/alongubkin/xylose


3
Mozilla Firefox і Opera лише припинена підтримка WebSocket з міркувань безпеки: heise.de/security/meldung / ... Див gamedev.stackexchange.com/q/6524/450 для крос - браузер абстракції мережі речі.
Гендрік Бруммерманн

2
Я думаю, що всі три ці питання цікаві, але я б краще їх розділив на три питання. По-моєму, вони ледве пов'язані.

2
Технічно це можливо, так. Реально інша справа.
Качка комуніста

Як додаткова примітка: Google створив бібліотеку JavaScript на WebGL, що дуже круто: code.google.com/p/o3d
Алекс Бердслі

Моє припущення, що ваше запитання передбачає 3D-MMO. 3D не є вимогою до жанру, і насправді багато ММО існують в Інтернеті роками як мінімум більше HTML-форм (Див. Urbandead.com ) Не кажучи вже про всі ігри PHP від ​​Gameforge ( en.gameforge.com ) або більш екзотичні речі AJAX / Javascript, такі як Lord of Ultima ( lordofultima.com )
wkerslake

Відповіді:


7

Чи вважаєте ви, що технічно можливо написати повноцінний клієнт 3D MMO за допомогою браузера JavaScript - WebGL для графіки та WebSocket для мереж?

Так, абсолютно. Немає причин, щоб технологія WebGL або WebSocket заважала вам робити клієнта 3D MMOG або будь-якого ігрового клієнта з цього питання.

Як ви думаєте, майбутні MMO (та загалом ігри) будуть писатись із WebGL?

Так. Я вірю, що протягом наступних п’яти років більшість ігор з 3D-браузерами будуть написані за допомогою WebGL. Причина проста - WebGL є єдиною стандартизованою 3D-технологією, яка матиме реалізацію, доступну у всіх основних веб-браузерах (Chrome 9, Firefox 4, Safari 6 та Internet Explorer через Chrome Frame).

Чи дозволяє сьогоднішня продуктивність JavaScript?

Так. Продуктивність JavaScript у сучасних браузерах зросла до того, що розробка 3D-ігор здійсненна. Наприклад, дивіться проект Three.js .

Скажімо, ваша команда розробників була ви як розробник та ще один творець моделі (художник). Чи використовуєте ви для гри бібліотеку типу SceneJS або пишете прямо WebGL? Якщо ви використовуєте бібліотеку, але не SceneJS, вкажіть, яку саме. Спасибі!

Використовуйте бібліотеку, щоб заощадити час. Немає підстав писати власний графічний код WebGL, якщо у наявній бібліотеці відсутні функції, які вам потрібні. Навіть у такому випадку розширити існуючу бібліотеку, мабуть, буде ефективніше.

Для свого проекту я використовую GLGE, оскільки він підтримує безліч різних графічних ефектів і постійно оновлюється новими.


2
Питання "Як ви думаєте, майбутні MMO (та загалом ігри) будуть писатись із WebGL?" і відповідь "Так. Я вірю, що протягом наступних п'яти років більшість ігор для 3D-браузерів будуть написані за допомогою WebGL." не є точним співпаданням один для одного ...
Kylotan

5

Там уже є кілька ММО на веб-переглядачах. Зазвичай вони не використовують 3D графіку.

Я трохи скептичний, коли мова йде про WebGL. Поточний обріз веб-переглядачів не підтримує WebGL у звичайних версіях версій. Вам доведеться отримати спеціальні збірки або безлад з конфігураційними файлами, що середньому користувачеві складніше, ніж завантаження плагіна.

Говорячи про плагіни: Кілька людей згадували Unity, але не забувайте Flash. Майбутній випуск Flash-плеєра (кодова назва molehill ) матиме прискорений GPU 3D. Я здогадуюсь, що цей флеш забезпечить апаратну 3D-графіку в браузері до того, як WebGL злетить.


1
Випуск стабільного браузера з підтримкою webgl не повинен виникати після січня 2010 року. Firefox 4 і Chrome 9 заплановано вийти приблизно на той час. Бета-версія Chrome 9 досить проста в установці і не потребує возитися ні з чим, щоб увімкнути webgl. Посилання на бета-версію наведено нижче звичайного посилання для завантаження для chrome.
Ніколас К.

@Nicolas K. - Ви маєте на увазі січень 2011 року ?
ДМ

1
@Nicolas K - Наявність браузера та встановлення бази браузера - це дуже різні речі. 13% інтернет-трафіку все ще є IE6. Джерело: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake

@DMan: Напевно, оскільки це вже зараз. Я не можу дочекатися, коли хтось зрозуміє, як на bluescreen (чи панікує ядро, чи що це робиться у Mac)

1
@wkerslake: Ця статистика обурлива. Я підтримую веб-сайт, орієнтований на середнього споживача Інтернету, що має півмільйона унікальних відвідувань на день, і менше 1% з них користуються Internet Explorer 6 (приблизно 1/3 користуються Internet Explorer 7/8/9). Firefox та Chrome займають 50% трафіку, і вони самостійно оновлюються веб-переглядачами, тобто більшість людей матимуть підтримку WebGL протягом декількох місяців. Оскільки розробка гри може зайняти 6 місяців, я не бачу причин відштовхувати людей від використання WebGL сьогодні.
Blixt

3

Технічно можливо? Так. Але навіщо турбуватися, коли доступні веб-рішення типу Unity?

Майбутні MMO написані на WebGL? Ні. Ок, можливо, але є такі веб-плагіни, як Unity, які зараз добре працюють.

Сьогоднішня ефективність JavaScript дозволяє це? Ні. Добре так, якщо ви будете тримати свою гру простою.

Чи використовуєте ви бібліотеку типу SceneJS [...] чи пишете прямо WebGL? Ні. Я б застосував сторонні додатки, такі як Unity.


4
Ваша відповідь неправильна, суперечлива та неправильно відформатована. Вибачте, що так суворо. Якщо ви думаєте, що оп повинен просто використовувати єдність, скажіть це у коментарі до його питання.
oberhamsi

За іронією долі оберхамсі, моя оригінальна відповідь просто сказала "Використовуйте єдність", але мені сказали, що мені потрібно відповісти на питання більш прямо.
Тім Холт

1
Гаразд, досить справедливо. Я думаю, що єдність - це зовсім інший звір, а потім намагатися зробити це вдома у браузері. Звичайно, ви можете робити все, що завгодно, із плагіном, але мені здається питання: які межі технологій для власних браузерів.
oberhamsi

2

Це неможливо зараз (на початку 2011 року). Не можна створити 3D-MMO в режимі реального часу в рідних технологіях браузера (маючи на увазі відсутність плагінів).

Я не буду міркувати про майбутнє. Ось як це виглядає зараз. Якщо припустити, що ви орієнтуєтесь лише на сучасні веб-переглядачі (IE9, FF4 тощо). Якщо ви плануєте підтримувати IE7, то ви божевільні. Це ніколи не вийде.

Речі відсутні:

  • повний контроль над клавіатурою та мишею (можливість встановити положення миші, перехоплення клавіш)
  • повноекранний
  • 3D

Сфери / рішення з серйозними проблемами:

  • Зараз WebSockets відключено в кількох браузерах, які підтримували його
    • без цього: тепер низька затримка, двонаправлена ​​комунікація-клієнт-сервер
  • проблеми зі звуком
    • безлад кодека, вам потрібно ogg та mp3
    • загальні частоти не підтримуються
    • узгодженість
    • затримка
  • продуктивність на полотні (у деяких випадках перетворення divs та css відбувається швидше)

1

Так, але з основними застереженнями.

Ви не матимете повного керування клавіатурою, і для багатьох виродків управління це може бути вимикачем угод. Наприклад, F-клавіші, ймовірно, залишаться недоступними протягом досить тривалого часу.

Ви також не зможете вражати більшість браузерів. WebGL ще насправді не підтримується, і підтримка websocket сьогодні не вдається, і деякі постачальники браузерів дозволяють використовувати її для однієї версії, а потім вимикають її для наступної.

Але ви можете зібрати щось просте, точно. Зауважте в якомусь переконливому геймплеї, і не має значення, що графіка трохи стримана. Runescape розпочався досить просто, і перетворився на складний, веселий, неймовірно популярний MMO, ще тоді, коли всі говорили, що MMO, створений у плагіні браузера, був мрією.

MMO, побудований з урахуванням поточних обмежень для браузерів, які адаптуються під час зміни речей, безумовно, матимуть краткий час до того часу, коли браузери будуть досить далеко підтримувати MMO "AAA".


1
Майже всі сучасні браузери підтримують функціональні клавіші ( quirksmode.org/js/keys.html#link6 ). Насправді цій сторінці принаймні кілька років, і підтримка їх у сучасних браузерах, мабуть, ще краща.
Рікет

1

Абсолютно, так.

WebGL включений у нічні версії як WebKit (Chrome / Safari), так і Gecko (Firefox). Наразі WebSockets вимкнено через проблеми із безпекою, але немає жодної причини, коли він не повинен бути повторно ввімкнутий після вирішення проблем. Тим часом завжди є HTTP.

Чи всі ігри будуть написані таким чином? Ні, але значна кількість буде. Після того, як WebGL буде в остаточних версіях Chrome і Firefox, проникнення вже буде вище, ніж у рідних плагінів, таких як Unity.

Продуктивність JavaScript абсолютно залежить від написання ігор. Напевно, ви деякий час не будете бачити рівень графіки Crysis, але пам’ятайте, що з WebGL, стискання числа завантажується в GPU.

Для невеликої команди на 2 чоловіки вам потрібно буде бути готовим зробити багато кодування, який будь-який двигун ви використовуєте. Наразі немає жодного двигуна WebGL / JavaScript, який би фактично охоплював більшу частину коду гри. SceneJS, three.js та подібні є обгортками над графічним шаром, але не дають нічого для зіткнення, фізики, аудіо, завантаження ресурсів, мережі чи інструментів, які складають основну частину продукту, наприклад Unreal Engine або Unity.

Наразі це ранні дні, я б сподівався побачити більше проміжного програмного забезпечення, що з'явиться протягом наступного року.


0

Я не думаю, що багато майбутніх MMO будуть писатися з будь-якою технологією браузера на стороні клієнта, оскільки більшість розробників MMO захочуть використовувати однакову мову для клієнта та сервера, а більшість розробників ігор вільно розмовляють з немережевими мовами, такими як C ++. Занадто багато клієнтського коду, щоб зробити його дуже практичним у Javascript, за винятком досить тривіальних моделей. Існують також інші обмеження, накладені запуском у браузері, які не є корисними для типового розробника ігор.

Я впевнений, що будуть такі ігри, як ця. Вони просто не збираються брати участь у WoW або подібних іграх досить довго. Їх, мабуть, більше зроблять веб-розробники, які вступають в ігри, а не розробники ігор, що потрапляють у Інтернет.


Чи бажаючий бажаючий додати коментар, пояснюючи, як вони не згодні з моєю відповіддю? Просто цікаво. :)
Kylotan

0

Питання, яке ви повинні задати собі, - чому розробники ігор хочуть залежати від веб-технологій, які вони не опановують і не мають контролю над ними, чи поточні мови дозволяють вам навіть у веб-браузері робити дивовижні ігри?


0

Так, але технологію все одно потрібно стабілізувати, і, швидше за все, залишаться компроміси продуктивності порівняно з власними програмами.


-3

Єдність - це добро. Дивіться також Шиву та головний двигун.


1
Unity та Prime Engine не мають нічого спільного із згаданими технологіями. Вони є плагінами нативного коду.
Кілотан

1
Вони є відповідями в тому сенсі, який ми говоримо: "Ні, це не дуже добре робити, проте тут є альтернативи". Відповіді, які говорять: "Ні, але тут є альтернатива", набагато кращі, ніж просто "Ні"
Тім Холт

3
Іноді я погодився б, але рідко. Існує небезпека спробувати прочитати чийсь розум і здогадатися, що вони насправді хочуть зробити, коли насправді оригінальне запитання саме по собі було абсолютно законним. Якщо хтось запитує про придатність X, ми не завжди повинні відповідати "просто використовувати Y". Принаймні, слід порівняти придатність обох, щоб ми пішли, дізнавшись більше про X.
Kylotan

Потім перефразую свою відповідь, щоб відповісти на його питання про те, якою бібліотекою користуватися. Я б сам користувався "бібліотекою" Unity: P
Тім Холт

найкраща відповідь говорить в основному те саме ..
Помилка 454
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.