The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Открыты исходные тексты игрового движка PlayCanvas

05.06.2014 12:48

Объявлено об открытии (под свободной лицензией MIT) игрового движка PlayCanvas, нацеленного на создание переносимых многоплатформенных 3D-игр, создаваемых с использованием web-технологий и ориентированных для запуска в браузерах с поддержкой HTML5 и WebGL (Chrome, Firefox, Safari, браузеры Android и iOS) без установки дополнительных плагинов. Основателями проекта являются Will Eastcott (бывший технический директор Activision) и Dave Evans (возглавлявший разработку PlayStation Home). Проект развивается при поддержке Mozilla, ARM и Activision.

Основные возможности и особенности движка:

  • Графика: система 3D-рендеринга на базе WebGL, различные виды освещения (рассеянный, точечный, направленный свет, попиксельное освещение), скелетная анимация, статические и Skinned-мэши, маппинг теней, постпроцессинг;
  • Средства бесшовного импорта моделей и материалов, подготовленных в Maya, 3DS Max, Blender;
  • Библиотека PostFX с реализацией типовых визуальных эффектов;
  • Полная интеграция с движком симуляции физических процессов ammo.js (JavaScript-версия Bullet, скомпилированная при помощи Emscripten и работающая с использованием Asm.js). По производительности ammo.js отстаёт от нативной версии физического движка Bullet всего в полтора раза;
  • Движок генерации пространственного звука, использующий Web Audio API;
  • Определение игровой логики на языке JavaScript;
  • Высокоуровневая объектная модель, позволяющая создавать игровые объекты из готовых функциональных блоков, как конструктор Лего. Например, изображённая на скриншоте демонстрация мяча, проскакивающего через стенку из кубиков, занимает всего 100 строк кода;
  • Простая система загрузки ресурсов;
  • Встроенный набор компонентов для рендеринга моделей, анимации, типовых физических процессов (столкновения, деформация и т.п.), задействования 2D и 3D источников звука, изменение громкости в зависимости от удалённости от источника звука;
  • Поддержка мыши, клавиатуры, сенсорных экранов и пультов Gamepad.
  • Ориентация системы рендеринга на достижение производительности, максимально возможной в браузере. Например, команды отрисовки сортируются по материалам для сокращения числа вызовов WebGL, минимизируется число динамических операций с памятью и учитывается работа сборщика мусора;
  • Для упрощения разработки игр предлагается специальная web-ориентированная облачная среда совместной разработки, доступная через сайт playcanvas.com;


  1. Главная ссылка к новости (http://blog.playcanvas.com/pla...)
  2. OpenNews: Mozilla, OTOY и Autodesk объединили усилия в организации доступа к 3D-приложениям из браузера
  3. OpenNews: В игровом движке Torque 2D 3.0 обеспечена поддержка Linux
  4. OpenNews: Представлен Blend4Web, движок для создания браузерных 3D-приложений
  5. OpenNews: Продемонстрирован запуск игрового движка Unreal Engine 4 в Firefox
  6. OpenNews: Представлен Famo.us, фреймворк для создания высокопроизводительных графических web-приложений
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/39937-playcanvas
Ключевые слова: playcanvas, game, webgl, web
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:23, 05/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > минимизируется число динамических операций с памятью и учитывается работа сборщика мусора;

    Сначала создадим себе проблемы, а потом будем их героически решать. Дон-кихоты 2.0 :).

     
     
  • 2.7, Аноним (-), 19:22, 05/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Проблема сильно преувеличена. Сборщик мусора может быть полностью исключён из работы, если не выделять ресурсы каждый кадр. Между прочим, это справедливо и в случае C/C++, частые вызовы malloc и new сильно "просаживают" производительность.
     
     
  • 3.18, ваноним (?), 16:32, 06/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не путайте теплое с мягким. сборщик мустора и malloc/free -- слегка разные вещи. выделение и освобождение памяти, внезапно, есть и в случае сборщика мусора. ровно как и фрагментация памяти.
     
  • 3.20, Аноним (-), 08:41, 07/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > если не выделять ресурсы каждый кадр.

    А в случае JS как-то gc лучше програмера знает когда возбухнуть и что прибить. Знание интимных особенностей gc - превращает программирование в кластерфак, когда приходится онриентироваться на некие недокументированные и/или никем не гарантированные особенности. В сях/сях++ по крайней мере все просто и понятно - когда и что. GC делает этот процесс намного менее детерменированным, а изучение свойств gc - весьма отдельный рокетсайнс.

    > Между прочим, это справедливо и в случае C/C++, частые вызовы malloc
    > и new сильно "просаживают" производительность.

    Между прочим, там никто их лишний раз и не дергает. И вообще там возможна уйма стратегий, вплоть до полностью статического распределения ресурсов на старте. При этом память вообще никогда не выделяется и не освобождается. Что критично для ответственных применений, например. Тебе же не понравится если у твоего авто при наезде на кирпичную стену подушки безопасности не выпадут "потому что памяти не хватило", правда? :)


     

  • 1.2, 0н0ним (?), 14:44, 05/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    и так браузер тормозит из-за жаба скриптов, дак еще и это

    можно еще завернуть все в ява машину и пару виртуалочек, а то оверхеда не хватает

     
     
  • 2.8, Аноним (-), 19:28, 05/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    За последнее время джаваскрипт достиг производительности, сопоставимой с нативной. Хороших результатов добиться достаточно легко, особенно если правильно назначать типы и исключать чрезмерное выделение/освобождение ресурсов.
     
     
  • 3.21, Аноним (-), 08:44, 07/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > За последнее время джаваскрипт достиг производительности,
    > сопоставимой с нативной.

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

    > Хороших результатов добиться достаточно легко,

    Ага, оно и видно: в сях просто пишем что хотели. В js засоряем мозг кучей хлама типа знаний о gc, asm.js, как, где и почему оно тормозит и так далее.

    Эта тормозила долбанулась на своем JS. Если уж надо скорость - пример надо с гугли брать. С их PNaCl-ом. Вот так оно даже будет работать быстро и без выноса програмеру мозга всякой совершенно левой буитой.

    > особенно если правильно назначать типы

    ...чего в JS изначально вообще не было предусмотрено.

    > и исключать чрезмерное выделение/освобождение ресурсов.

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

     

  • 1.4, Аноним (-), 16:15, 05/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Ждем не отключающихся 3d порнобаннеров, выжигающих десктопное железо
    >нацеленного на создание переносимых многоплатформенных 3D-игр

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

     
     
  • 2.6, Анониус_ (?), 16:53, 05/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо, посмеялся.
     
  • 2.9, Аноним (-), 19:31, 05/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ждем не отключающихся 3d порнобаннеров, выжигающих десктопное железо

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

    думаете игра, написанная на джаве сильно быстрее? Там тот же самый сборщик мусора, и те же проблемы с потреблением памяти. Как вы думаете почему iPhone такой быстрый?

     
     
  • 3.15, Такие дела (?), 09:44, 06/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Поверьте, их производительность будет не намного ниже флеша.

    Того самого флеша, который блокируется в большинстве браузеров, или запирается под значок? С HTML5 так не поступишь. Вылечить такой банер можно только полной блокировкой js.
    > думаете игра, написанная на джаве сильно быстрее? Там тот же самый сборщик
    > мусора, и те же проблемы с потреблением памяти.

    Игра, написанная на жабе - это штука сугубо добровольная. Ее можно включить, когда обернешь руки полотенцем или воспользуешься прихваткой. А вот баннер может появиться внезапно.
    > Как вы думаете почему iPhone такой быстрый?

    Я думаю, iPhone "быстрый" потому, что в нем приоритет на отрисовку графики. Этот фокус в свое время провернул гугл с хромом, когда он сначала рисовал окно, а потом начинал остальные процессы (сеть и стартовая страница), фаерфокс в то же время делал наоборот, и подавал пользователю окно приложения в последнюю очередь, когда настройки сети были прочитаны. Из-за такого трюка запуск хрома, казался более быстрым, хотя реально подача готового к использованию браузера была одинаковой по времени.

     
     
  • 4.16, Аноним (-), 11:49, 06/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >С HTML5 так не поступишь.

    Почему-же. В любом браузере WebGL отключается в настройках, если кому-то понадобится, со временем сделают более удобное дополнение.
    >Игра, написанная на жабе - это штука сугубо добровольная. Ее можно включить, когда обернешь руки полотенцем или воспользуешься прихваткой. А вот баннер может появиться внезапно.

    Это сейчас, несколько лет тому назад Java-апплеты запускались без предупреждения. Да и вообще, пропаганда уязвимостей в Jav-е и флеше активно ведётся именно производителями браузеров. Раньше всем было на это наплевать.
    >Я думаю, iPhone "быстрый" потому, что в нем приоритет на отрисовку графики.

    Возможно, но с тех пор и андроид занялся оптимизацией. Реальность такова, что количество памяти в самом современном iPhone 5s 1 гиг, в Xperia Z2 - 3 гига. Всё это из-за того, что эпл в своё время выпилил сборщик мусора под корешок. Его нет даже в их новомодном полу-динамическом Swift. В условиях, когда ширина шины ограничена, избыток память никогда не приводит к увеличению производительности, скорее наоборот.

     
  • 4.22, Аноним (-), 08:53, 07/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > С HTML5 так не поступишь. Вылечить такой банер можно только полной
    > блокировкой js.

    Есть такой чудный аддон к Firefox - называется NoScript. То что доктор прописал.

    > А вот баннер может появиться внезапно.

    См. выше.

    > Я думаю, iPhone "быстрый" потому, что

    ...потому что маркетинговый булшит у эппла хорош, в отличие от технического исполнения.

     

  • 1.5, Аноним (-), 16:27, 05/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Мощный многоядерный процессор надо.
    Никогда на планшетах эта технология не приобретёт большой популярности.
     
     
  • 2.10, Аноним (-), 19:32, 05/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Мощный многоядерный процессор надо.
    > Никогда на планшетах эта технология не приобретёт большой популярности.

    На горизонте >2 ГГц 14 нанометровый проц и 4 гига оперативы. А теперь сравните эти спеки с Xbox 360 или PS3.

     
     
  • 3.19, Аноним (-), 08:36, 07/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >планшеты и прочие недопк в одной куче.

    Архитектуры разные, как тут можно сравнивать мегагерцы?

    Кстати было бы интересно увидеть тесты аля сжатие файла на этих фоторамках и каком-нибудь старом пентиуме c частотой ниже 2Mhz.

     

  • 1.14, dr Equivalent (ok), 01:18, 06/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Поиграл в демку Swoop. Миленько так.
     
  • 1.17, XoRe (ok), 15:38, 06/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    http://apps.playcanvas.com/will/doom3/gangnamstyle

    Монстры зажигают! :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру