Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 27.10.19 08:56
Оценка:
Товарищи игроделы!

Как вы рассматриваете перспективность разработки игры на браузерных движках?

Речь идёт о том что изначально игру делать в браузере на каком нибудь babylon.js или three.js используя js или typescript. Для сети вебсокеты. А позднее когда игра готова оборачивать игру в electron или CEFSharp и издавать для десктопа в Стиме.

Логика моя такая: 1) браузер (canvas, webgl) уже на высоком уровне поддерживаются браузерами + есть движки хорошего уровня. 2) запоковать для десктопа тоже не проблема хоть для мобильной хоть для любой десктопной платформы. 3) делится вебной версией проще простого, кинул ссылку и все.
Re: Разработка кроссплатформенной игры на web движках
От: vsb Казахстан  
Дата: 27.10.19 10:02
Оценка:
А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?
Re[2]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 27.10.19 10:18
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?


Ну например тем не устраивает что браузер это одна среда на все платформы. Мне плевать в прямом смысле этого слова где игра будет исполняться, для меня это одна среда-браузер.А в юнити нужно приседать и прыгать с бубнами чтобы под каждую платформу запинать игру. Под мобилы я уже вообще не говорю, там считай отдельная разработка обычно.

Плюс браузер даёт мне UI по дефолту — HTML,js,css поверх канваса. То есть мне не нужно париться с кнопками и прочими контролами, я просто втыкаю готовое и кастомайзю как мне надо.
Re[3]: Разработка кроссплатформенной игры на web движках
От: vsb Казахстан  
Дата: 27.10.19 10:29
Оценка:
Мне кажется, FPS будет ощутимо ниже и утилизация многоядерности будет ниже. Если игра не с крутой графикой, наверное пофиг.
Re[4]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 27.10.19 10:40
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Мне кажется, FPS будет ощутимо ниже и утилизация многоядерности будет ниже. Если игра не с крутой графикой, наверное пофиг.


На самом деле я сам был удивлен, как браузеростроители довольно неплохо прокачали возможности браузеров. Если кто и умеет оптимизировать и использовать ресурсы то это скорее в первую очередь они. И если посмотреть сэмплы на том же babylon.js то очень и очень даже неплохо все летает, даже на средненьких мобилах.
Re[5]: Разработка кроссплатформенной игры на web движках
От: vsb Казахстан  
Дата: 27.10.19 15:41
Оценка:
Здравствуйте, C0x, Вы писали:

vsb>>Мне кажется, FPS будет ощутимо ниже и утилизация многоядерности будет ниже. Если игра не с крутой графикой, наверное пофиг.


C0x>На самом деле я сам был удивлен, как браузеростроители довольно неплохо прокачали возможности браузеров. Если кто и умеет оптимизировать и использовать ресурсы то это скорее в первую очередь они.


Это понятно, но тут дело в том, что API делается для публичных приложений, т.е. должно быть очень безопасно. Поэтому на каждый вызов API будет куча проверок. Кроме того WebGL ощутимо отличается от DirectX 12/Vulkan/Metal. Это всё приведёт к тому, что будут заметные накладные расходы.

> И если посмотреть сэмплы на том же babylon.js то очень и очень даже неплохо все летает, даже на средненьких мобилах.


Ну надо смотреть не на то, как летает, а сравнивать с хорошо написанным нативным приложением.
Re[6]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 27.10.19 17:51
Оценка:
Здравствуйте, vsb, Вы писали:


vsb>Это понятно, но тут дело в том, что API делается для публичных приложений, т.е. должно быть очень безопасно. Поэтому на каждый вызов API будет куча проверок. Кроме того WebGL ощутимо отличается от DirectX 12/Vulkan/Metal. Это всё приведёт к тому, что будут заметные накладные расходы.


Это все вопрос опять же оптимизации. Я почитал про OpenGL vs vulkan vs Metal и понял пока только то, что на разных платформах поддержки разные (например на макбуке только подразумевается metal, vulkan больше на мобилы ориентирован, а винда толкает свой DirectX). Получается что тот же юнити, как я и говорил,будет костыли наворачивать чтобы на разных платформах это более менее поддерживалось. С другой стороны производители браузеров утилизируют возможности всех этих фреймворков на разных платформах на самом нижнем уровне. Т.е webgl приложение может исполняться поверх того же vulkan или Metal, в зависимости от текущего железа. Опять же не секрет что майкрософтовый OpenGL поверх DirectX всегда работал. И многие двиглы на базе OpenGL не жаловались на производительность.

>> И если посмотреть сэмплы на том же babylon.js то очень и очень даже неплохо все летает, даже на средненьких мобилах.


vsb>Ну надо смотреть не на то, как летает, а сравнивать с хорошо написанным нативным приложением.


Пока таких сэмплов к сожалению не видел.
Re[3]: Разработка кроссплатформенной игры на web движках
От: okon  
Дата: 23.02.20 16:16
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Здравствуйте, vsb, Вы писали:


vsb>>А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?


C0x>Ну например тем не устраивает что браузер это одна среда на все платформы.


Браузер это совсем не одинаковая среда, даже более разная чем юнити — т.к. броузеров много и много разных версий, специфику платформы браузер тебе никак не помогает решить.
Я думаю тебе хотели сказать про плагин от Unity под броузер. Т.е. пишешь на юнити и запускаешь в браузере через их плагин, помоему они используют WebGL, может сейчас еще что-то появилось.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[4]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 23.02.20 16:19
Оценка:
Здравствуйте, okon, Вы писали:



O>Браузер это совсем не одинаковая среда, даже более разная чем юнити — т.к. броузеров много и много разных версий,


Речь шла не про браузеры как таковые а про движки браузерные типа хромиума для создания игр на их платформе. Внимательнее нужно быть.
Re[5]: Разработка кроссплатформенной игры на web движках
От: okon  
Дата: 23.02.20 16:44
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Здравствуйте, okon, Вы писали:




O>>Браузер это совсем не одинаковая среда, даже более разная чем юнити — т.к. броузеров много и много разных версий,


C0x>Речь шла не про браузеры как таковые а про движки браузерные типа хромиума для создания игр на их платформе. Внимательнее нужно быть.


Ну хромиум тем более по сути тот же “Unity” только не для игр, чем он поможет ?
Да на нем запускают джаваскриптовые приложения в т.ч. игры но писать игры на js менее удобно он все таки не для этого.
Или как на хромиум ты решишь проблемы разных платформ , разной компоновки в приложении, разных элементов управления, интеграция с маркетами для покупок в игре.
Это все придется решать так или иначе ,также как и в Юнити и где угодно, другое дело что в Юнити все таки все заточено на игры как правило.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 23.02.2020 16:53 okon . Предыдущая версия .
Re: Разработка кроссплатформенной игры на web движках
От: LuciferSaratov Россия  
Дата: 23.02.20 17:30
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Товарищи игроделы!


C0x>Как вы рассматриваете перспективность разработки игры на браузерных движках?


а что ты будешь делать, если игра вдруг выстрелит и её надо будет портировать на консоли?
Re[2]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 23.02.20 18:07
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>Здравствуйте, C0x, Вы писали:


C0x>>Товарищи игроделы!


C0x>>Как вы рассматриваете перспективность разработки игры на браузерных движках?


LS>а что ты будешь делать, если игра вдруг выстрелит и её надо будет портировать на консоли?


Так далеко я не планировал. Но а в чем проблема портирования хромиума на консоли?
Re[6]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 23.02.20 18:12
Оценка:
Здравствуйте, okon, Вы писали:

O>Здравствуйте, C0x, Вы писали:


C0x>>Здравствуйте, okon, Вы писали:




O>>>Браузер это совсем не одинаковая среда, даже более разная чем юнити — т.к. броузеров много и много разных версий,


C0x>>Речь шла не про браузеры как таковые а про движки браузерные типа хромиума для создания игр на их платформе. Внимательнее нужно быть.


O>Ну хромиум тем более по сути тот же “Unity” только не для игр, чем он поможет ?

Принципиально разные вообще-то вещи. Один лишь транслятор, а другой по сути ОС в ОСе.




O>Да на нем запускают джаваскриптовые приложения в т.ч. игры но писать игры на js менее удобно он все таки не для этого.


Ну а если typescript, kotlin, или даже webasm — конвертор Си в хромиум среду? Причем можно использовать любые уже двиглы сишные.



O>Или как на хромиум ты решишь проблемы разных платформ , разной компоновки в приложении, разных элементов управления,


Ну так же как и всегда или о каких проблемах речь конкретно?

.
O>Это все придется решать так или иначе ,также как и в Юнити и где угодно, другое дело что в Юнити все таки все заточено на игры как правило.

Просто разработчики Юнити дальше своего Юнити ничего и не видели похоже, а там целый мир!
Re[7]: Разработка кроссплатформенной игры на web движках
От: okon  
Дата: 23.02.20 19:58
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Здравствуйте, okon, Вы писали:


O>>Здравствуйте, C0x, Вы писали:


C0x>>>Здравствуйте, okon, Вы писали:




O>>>>Браузер это совсем не одинаковая среда, даже более разная чем юнити — т.к. броузеров много и много разных версий,


C0x>>>Речь шла не про браузеры как таковые а про движки браузерные типа хромиума для создания игр на их платформе. Внимательнее нужно быть.


O>>Ну хромиум тем более по сути тот же “Unity” только не для игр, чем он поможет ?

C0x>Принципиально разные вообще-то вещи. Один лишь транслятор, а другой по сути ОС в ОСе.

Не я не в плане что огурец сравним с помидором, они одинаковы в том плане что и то и другое платформа для разработки,
но хроимум это платформа для разработки броузера, а юнити это платформа для разработки игр.
Если ты делаешь игру то странно выбирать платформу заточенную под задачи броузера.



O>>Да на нем запускают джаваскриптовые приложения в т.ч. игры но писать игры на js менее удобно он все таки не для этого.

C0x>Ну а если typescript, kotlin, или даже webasm — конвертор Си в хромиум среду? Причем можно использовать любые уже двиглы сишные.

А надо их туда засовывать ? В чем цель, засунуть котлин в платформу для браузера или делать игру ?


O>>Или как на хромиум ты решишь проблемы разных платформ , разной компоновки в приложении, разных элементов управления,

C0x>Ну так же как и всегда или о каких проблемах речь конкретно?
Перечислил же ( компоновка под разные разрешения, разное управление ) , на мой взгляд браузерное решение тебе не решит проблем.
Но ты писал ранее

Ну например тем не устраивает что браузер это одна среда на все платформы. Мне плевать в прямом смысле этого слова где игра будет исполняться, для меня это одна среда-браузер.А в юнити нужно приседать и прыгать с бубнами чтобы под каждую платформу запинать игру. Под мобилы я уже вообще не говорю, там считай отдельная разработка обычно.


Т.е. есть какие-то проблемы которые легко решаются в броузере но плохо решаются в том же юнити ? Вот и мне интересно стало о каких проблемах ты говорил ?


C0x>.

O>>Это все придется решать так или иначе ,также как и в Юнити и где угодно, другое дело что в Юнити все таки все заточено на игры как правило.
C0x>Просто разработчики Юнити дальше своего Юнити ничего и не видели похоже, а там целый мир!
Не тут скорее в мире есть много инструментов и странно когда выбирают платформу броузера для игр, когда есть решения чтобы писать игры.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 23.02.2020 20:02 okon . Предыдущая версия .
Re[8]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 23.02.20 20:56
Оценка:
Здравствуйте, okon, Вы писали:




O>Если ты делаешь игру то странно выбирать платформу заточенную под задачи броузера.


Вообще-то Гугл давным давно начал движение в сторону Браузера как платформу для игр. Начал он с убийства Флэша и альтернативы в виде канваса, под который кстати уже есть не один 10-ок движков, в Том числе и Юнити. Потом Гугл за последние годы добавил рендер на графических картах для webgl, и сегодня мы имеем ряд 3d движков которые работают с webgl, в Том числе и Юнити. Сейчас Гугл обесчает полную хардварную поддержку для тяжолых 3d приложений. Т.е. по сути 3d игра в браузере или вне браузера не будут отличаться по возможностям. Юнити конечно будет туда транслировать свои поделки, но зачем ограничеваться им? Мне лично PixiJS для 2d игр кажется на порядок лучшим решением чем Юнити. Т.е. Юнити хорош, но он не единственный, а его преимущества с поддержкой кроссплатформы отпадают посколько мне достаточно теперь разрабатывать только для одной платформы!




O>Перечислил же ( компоновка под разные разрешения, разное управление ) , на мой взгляд браузерное решение тебе не решит проблем.


Я возьму любой браузерный движок, например PixiJS и там эти проблемы решены. И они решены для браузерной платформы — другие меня как бы уже не волнуют.


O>Т.е. есть какие-то проблемы которые легко решаются в броузере но плохо решаются в том же юнити ? Вот и мне интересно стало о каких проблемах ты говорил ?


Разработка игры в Юнити для андроида и разработка для Windows разные вещи. Хотя бы в плане оптимизации. Покрайней мере так было раньше, может сегодня что-то изменилось не знаю. А вот разработка под браузер это разработка под браузер а не под платформу.



O>Не тут скорее в мире есть много инструментов и странно когда выбирают платформу броузера для игр, когда есть решения чтобы писать игры.


Решений чтобы писать игр множества и для браузера. Только есть Browser specific, а Юнити всё-таки под браузер генерит далеко не оптимальный код и я это наблюдал не раз.
Re[9]: Разработка кроссплатформенной игры на web движках
От: okon  
Дата: 23.02.20 21:21
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Здравствуйте, okon, Вы писали:





O>>Если ты делаешь игру то странно выбирать платформу заточенную под задачи броузера.


C0x>Вообще-то Гугл давным давно начал движение в сторону Браузера как платформу для игр. Начал он с убийства Флэша и альтернативы в виде канваса, под который кстати уже есть не один 10-ок движков, в Том числе и Юнити. Потом Гугл за последние годы добавил рендер на графических картах для webgl, и сегодня мы имеем ряд 3d движков которые работают с webgl, в Том числе и Юнити. Сейчас Гугл обесчает полную хардварную поддержку для тяжолых 3d приложений. Т.е. по сути 3d игра в браузере или вне браузера не будут отличаться по возможностям. Юнити конечно будет туда транслировать свои поделки, но зачем ограничеваться им? Мне лично PixiJS для 2d игр кажется на порядок лучшим решением чем Юнити. Т.е. Юнити хорош, но он не единственный, а его преимущества с поддержкой кроссплатформы отпадают посколько мне достаточно теперь разрабатывать только для одной платформы!


Ну хоть PixiJS,если игра не большая и не много ресурсов почему бы и нет. Но учитывая что это все джава скрипт на большом объеме упрешься в передачу данных между JS и нативом, ведь ктото должен массив твой передать в нативный код.
Юнити гораздо больше функционала полезного для средней сложности и сложный игр, стейт машина, анимации и пр.


O>>Перечислил же ( компоновка под разные разрешения, разное управление ) , на мой взгляд браузерное решение тебе не решит проблем.

C0x>Я возьму любой браузерный движок, например PixiJS и там эти проблемы решены. И они решены для браузерной платформы — другие меня как бы уже не волнуют.
Не решены они в PixiJS, тебе в любом случае надо будет определить в какой операционке ты находишься и выполнять разную логику в зависимости от наличия тех или иных кнопок управления на железе.
Разрешения экранов и т.д. Особенно если игра 2Д и спрайтовая.


O>>Т.е. есть какие-то проблемы которые легко решаются в броузере но плохо решаются в том же юнити ? Вот и мне интересно стало о каких проблемах ты говорил ?

C0x>Разработка игры в Юнити для андроида и разработка для Windows разные вещи. Хотя бы в плане Playstationоптимизации. Покрайней мере так было раньше, может сегодня что-то изменилось не знаю. А вот разработка под браузер это разработка под браузер а не под платформу.

Платформоспецифичные вещи начинаются когда ты хочешь например использовать джойстик Playstation для управления или какие-то кнопки которые есть на маке но нет на винде.
Разные пропорции экранов — нужны предусматривать разный Layout для элементов игры, это все придется делать и в броузере.
Как тебе браузер поможет в этом я не знаю, скорее всего наоборот создаст проблемы с доступом к специфичному оборудованию..вот не знаю можно ли руль для гонок обрабатывать в браузере ?

Насчет разных шейдеров они ж в юнити там это придумали от того что делать нечего или учли проблемы которые возникают у разработчиков игр.
Браузер тебе ничего этого не учитывает он даст тебе доступ к рисовалке — а какие там особенности от каждой платформы и драйверов он не учтет.
Т.е. рисовать оно будет но будут также разные нехорошие эффекты на разных платформах, как минимум в зависимости от видях и поддержек разных версий шейдеров.
И придется тебе также писать свои шейдеры под слабые видяхи чтобы работало хорошо, в юнити они уже сделали оптимизированные шейдеры, в том числе для мобильных платформ.



O>>Не тут скорее в мире есть много инструментов и странно когда выбирают платформу броузера для игр, когда есть решения чтобы писать игры.

C0x>Решений чтобы писать игр множества и для браузера. Только есть Browser specific, а Юнити всё-таки под браузер генерит далеко не оптимальный код и я это наблюдал не раз.
Юнити помоему вообще для броузера минимум кода генерит, оно работает через нативный плагин и WebGL. Аля как флеш работал. Может уже сделали и чисто браузерный вариант не обращал внимания.

Вот например игрулька в броузере можно посмотреть как сделана
https://files.unity3d.com/jonas/AngryBots/
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 23.02.2020 21:32 okon . Предыдущая версия . Еще …
Отредактировано 23.02.2020 21:21 okon . Предыдущая версия .
Re[3]: Разработка кроссплатформенной игры на web движках
От: LuciferSaratov Россия  
Дата: 24.02.20 06:20
Оценка:
C0x>Так далеко я не планировал. Но а в чем проблема портирования хромиума на консоли?

В огромном количестве необходимой работы, требующей высокой квалификации исполнителей.
Re[3]: Разработка кроссплатформенной игры на web движках
От: wildwind Россия  
Дата: 24.02.20 08:26
Оценка:
Здравствуйте, C0x, Вы писали:

vsb>>А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?

C0x>Ну например тем не устраивает что браузер это одна среда на все платформы. Мне плевать в прямом смысле этого слова где игра будет исполняться, для меня это одна среда-браузер.А в юнити нужно приседать и прыгать с бубнами чтобы под каждую платформу запинать игру. Под мобилы я уже вообще не говорю, там считай отдельная разработка обычно.

Если бы разработчики Unity могли абстрагировать от тебя все эти проблемы, они бы давно так и сделали. С чего ты взял, что разработчики браузеров и JS фреймворков настолько круты, что смогли это сделать лучше? Тебе точно так же придется опрашивать возможности OpenGL конкретного железа, и выбирать, что использовать а что нет. Если перенести все это в JS фреймворк, получится тот же Unity с его же проблемами.
Re[4]: Разработка кроссплатформенной игры на web движках
От: C0x  
Дата: 24.02.20 11:07
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, C0x, Вы писали:


vsb>>>А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?

C0x>>Ну например тем не устраивает что браузер это одна среда на все платформы. Мне плевать в прямом смысле этого слова где игра будет исполняться, для меня это одна среда-браузер.А в юнити нужно приседать и прыгать с бубнами чтобы под каждую платформу запинать игру. Под мобилы я уже вообще не говорю, там считай отдельная разработка обычно.

W>Если бы разработчики Unity могли абстрагировать от тебя все эти проблемы, они бы давно так и сделали.


Прости друг, но помоему тут ты сравниваешь жопу с пальцем. Unity это всего лишь движок, поделка одной небольшой конторы, с заявкой на кроссплатформу. Таких движков на рынке десятки, а может сотня другая. Ну из наиболее популярных Unreal, CryEngine, Source, ID Tech, да тотже Game Maker и все со своими маркетами, студиями и фичами. Многие из них куда более производительнее чем Unity на конкретных платформах. Но речь не об этом.
Re[5]: Разработка кроссплатформенной игры на web движках
От: okon  
Дата: 25.02.20 00:39
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Здравствуйте, wildwind, Вы писали:


W>>Здравствуйте, C0x, Вы писали:


vsb>>>>А чем тот же Unity не устраивает? Зачем нужна дополнительная прослойка между программой и железом в виде электрона?

C0x>>>Ну например тем не устраивает что браузер это одна среда на все платформы. Мне плевать в прямом смысле этого слова где игра будет исполняться, для меня это одна среда-браузер.А в юнити нужно приседать и прыгать с бубнами чтобы под каждую платформу запинать игру. Под мобилы я уже вообще не говорю, там считай отдельная разработка обычно.

W>>Если бы разработчики Unity могли абстрагировать от тебя все эти проблемы, они бы давно так и сделали.


C0x>Прости друг, но помоему тут ты сравниваешь жопу с пальцем. Unity это всего лишь движок, поделка одной небольшой конторы, с заявкой на кроссплатформу.


А что такое хромиум, это разве не всего лишь движок броузера ?

Помоему ты немного отстал от реалий, юнити уже достаточно крупная контора.
Имеет офисы в 27 странах и поддерживает 25 платформ.

102 вакансии только на инженерные позиции
https://careers.unity.com/find-position?department=engineering


От того что хромиум делает более крупная контора ( но не факт что более крупная команда ) это не значит что он лучше подходит для задач написания игр, если юнити с 25 платформами это только “заявка“, то что же такое хромиум который работает только на гораздо меньшем количестве платформ.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 25.02.2020 0:49 okon . Предыдущая версия . Еще …
Отредактировано 25.02.2020 0:46 okon . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.