MMO на основе браузера (WebGL, WebSocket) [закрыто]


29

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

  • Как вы думаете, будущие ММО (и игры в целом) будут написаны с помощью WebGL?
  • Позволяет ли сегодняшняя производительность JavaScript это?
  • Допустим, ваша команда разработчиков была вами как разработчиком и еще одним создателем модели (художником). Будете ли вы использовать такую ​​библиотеку, как SceneJS , или писать прямо на WebGL? Если вы используете библиотеку, но не SceneJS, пожалуйста, укажите какую.

ОБНОВЛЕНИЕ (сентябрь 2012 г.): RuneScape, очень популярная MMORPG на основе 3D-браузера, которая до сих пор использовала Java-апплеты, объявила, что будет использовать HTML5 для своего клиента ( источник ).

Runescape HTML5

Java (слева) и HTML5 (справа)

ОБНОВЛЕНИЕ (июнь 2013 г.): я написал прототип MMO на основе WebGL / WebSocket: https://github.com/alongubkin/xylose


3
Mozilla Firefox и Opera только что прекратили поддержку веб-сокетов по соображениям безопасности: 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 или любой игровой клиент в этом отношении.

Как вы думаете, будущие ММО (и игры в целом) будут написаны с 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
Вопрос "Как вы думаете, будущие ММО (и игры в целом) будут написаны с помощью WebGL?" и ответ «Да. Я полагаю, что в течение следующих пяти лет большинство игр для 3D-браузеров будут написаны с использованием WebGL». не точно соответствуют друг другу ...
Kylotan

5

Уже есть несколько основанных на браузере MMO. Они обычно не используют 3D-графику, хотя.

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

Говоря о плагинах: несколько человек упоминали Unity, но не забывайте Flash. В следующем выпуске Flash Player (кодовое имя molehill ) будет 3D-ускорение на GPU. Я предполагаю, что флэш-память обеспечит аппаратно ускоренную трехмерную графику в браузере, прежде чем WebGL взлетит


1
Проблема стабильного браузера с поддержкой webgl не должна возникать после января 2010 года или около того. Firefox 4 и Chrome 9 должны выйти примерно в то же время. Бета-версия Chrome 9 довольно проста в установке и не требует каких-либо усилий для включения webgl. Ссылка на бета-версию приведена ниже обычной ссылки для загрузки Chrome.
Николас К.

@ Николас К. - Ты имеешь в виду январь 2011 ?
DMan

1
@ Николас К - Доступность браузера и установка базы браузера - это очень разные вещи. 13% интернет-трафика по-прежнему IE6. Источник: marketshare.hitslink.com/browser-market-share.aspx?qprid=2
wkerslake

@DMan: Вероятно, так как это сейчас. Я не могу дождаться, пока кто-нибудь не

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

3

Технически возможно? Да. Но зачем беспокоиться, когда доступны такие веб-решения, как Unity?

Будущие ММО, написанные на WebGL? Нет. Может быть, но есть веб-плагины, такие как Unity, которые сейчас отлично работают.

Производительность JavaScript сегодня позволяет это? Нет. Хорошо, да, если вы сделаете свою игру простой.

Вы бы использовали библиотеку вроде SceneJS [...] или написали бы прямой WebGL? Ни. Я бы использовал стороннее приложение, такое как Unity.


4
Ваш ответ неверный, противоречивый и плохо отформатированный. Извините, что так резко. Если вы думаете, что оп должен просто использовать единство, так и скажите в комментарии к его вопросу.
Оберхамси

По иронии судьбы, Оберхамси, мой первоначальный ответ просто сказал: «Используйте Unity», но мне сказали, что мне нужно ответить на вопрос более прямо.
Тим Холт

1
Хорошо, достаточно справедливо. Я думаю, что единство - это совсем другой зверь, чем пытаться делать это в браузере. Конечно, вы можете сделать что-нибудь с плагином, но мне кажется вопрос: каковы ограничения нативных браузерных технологий?
Оберхамси

2

Это нереально прямо сейчас (начало 2011 года). Вы не можете создавать 3D-MMO в реальном времени с использованием собственных технологий браузера (то есть без плагинов).

Я не буду размышлять о будущем. Вот так это выглядит прямо сейчас. Предполагается, что вы ориентируетесь только на современные браузеры (IE9, FF4 и т. Д.). Если вы планируете поддерживать IE7, то вы с ума сошли. Это никогда не сработает.

Вещи отсутствуют:

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

Области / решения с серьезными проблемами:

  • WebSockets теперь деактивированы в нескольких браузерах, которые его поддерживают
    • без него: теперь низкая задержка, двунаправленная связь клиент-сервер
  • проблемы со звуком
    • беспорядок кодека, вам нужно ogg и mp3
    • общие частоты не поддерживаются
    • concurrancy
    • задержка
  • производительность canvas (в некоторых случаях преобразование divs и css выполняется быстрее)

1

Да, но с большими оговорками.

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

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

Но вы можете собрать что-то простое, конечно. Добавьте немного захватывающего игрового процесса, и не будет иметь значения, что графика немного сдержанная. Runescape начинался довольно просто и превратился в сложную, забавную, невероятно популярную 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 или подобных игр в течение долгого времени. Вероятно, они будут больше сделаны веб-разработчиками, а не разработчиками игр.


Желает ли downvoter добавить комментарий, объясняющий, как они не согласны с моим ответом? Просто интересуюсь. :)
Kylotan

0

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


0

Да, но технология все еще нуждается в стабилизации, и, скорее всего, компромиссы между производительностью и нативными приложениями останутся.


-3

Единство это хорошо. Смотрите также Шива и Главный Двигатель.


1
Unity и Prime Engine не имеют ничего общего с упомянутыми технологиями. Это родные плагины кода.
Kylotan

1
Это ответы в том смысле, что мы говорим: «Нет, это не очень хорошая идея, но есть альтернативы». Ответы «Нет, но есть альтернатива» намного предпочтительнее, чем просто «Нет»
Тим Холт,

3
Иногда я бы согласился, но редко. Существует опасность попытаться прочитать чьи-то мысли и угадать, что они «на самом деле» хотят сделать, тогда как на самом деле исходный вопрос был совершенно законным сам по себе. Если кто-то спрашивает о пригодности X, мы не всегда должны отвечать «просто используйте Y». По крайней мере, должно быть сравнение пригодности этих двух, чтобы мы ушли, узнав больше о X.
Kylotan

Затем я перефразирую свой ответ, чтобы ответить на его вопрос о том, какую библиотеку использовать. Я бы сам использовал «библиотеку» Unity: P
Тим Холт

Ответ с самым высоким рейтингом говорит в основном то же самое ..
Ошибка 454
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.