Видео движок
Прежде всего, игровой движок — это программный комплекс, который упрощает разработку игр, предоставляя вам набор необходимых для разработки инструментов. Из этого следует несколько простых фактов. Во-первых, движок совершенно необязателен, игру можно написать и без него на голом языке программирования. Во-вторых, движок не сделает крутую игру за вас. Но с ним работа пойдёт в десятки раз быстрее, так что я всем очень советую не писать велосипеды, а использовать готовое.Обобщённо говоря, игровой движок ответственен за организацию и поведение игровых объектов, а также за их отображение на экране. Ваша же задача — выбрать, как они будут выглядеть и как себя вести. Для этого движок предоставит вам возможность создавать и удалять объекты, задавать их параметры, добавлять логику и управлять ресурсами.
На самом деле, не так легко поделить игровые движки на отдельные категории, потому что чаще всего они предоставляют одни и те же возможности, вопрос лишь в количестве этих возможностей. Но я попробую.Касательно внутреннего устройства игровые движки делятся на:Полноценное ПО — это такая специальная программа, которая может собрать игру воедино за вас, а вам предоставляет полноценный редактор.Фреймворк — это набор полезных классов и функций, которые вы можете использовать при создании своей игры с нуля. Игру вам придётся собирать самостоятельно, но зато у вас будет больше контроля за процессом.
Если мы говорим о фреймворках, то игра пишется на том же языке, на котором написан фреймворк. Если же мы говорим о полноценном ПО, то программировать в них можно на:Полноценный язык программирования. Такими языками могут быть C , C#, jаvascript, Lua.Адаптированный скриптовый язык. Обычно за основу берётся какой-нибудь скриптовый язык, а его синтаксис и возможности расширяются, чтобы им было проще пользоваться в контексте разработки игр. Тут нет универсальных решений, но чаще всего эти языки очень похожи друг на друга.Визуальный интерфейс. Это абсолютно такой же процесс программирования, но вместо написания строк кода вы соединяете узлы действий между собой. Это ещё проще, чем писать код вручную, но процесс программирования всё равно изучать придётся. А ещё в узлах сложнее ориентироваться из-за их громоздкости.Если говорить о лицензии, то тут тоже есть несколько вариантов:Платные движки - за использование этих программ придётся платить, иногда даже каждый месяц.Бесплатные для использования - эти движки вы можете спокойно скачать и использовать для разработки, но чтобы продавать игры, сделанные на нём, придётся отчислять процент владельцам движка.Движки с открытым исходным кодом - эти движки вы можете спокойно скачать и использовать с минимумом ограничений.
Возможности, которые может предоставлять или не предоставлять игровой движок (список неокончательный):Система уровнейФизикаСистема частицНавигацияДвумерная анимацияТрёхмерная анимацияКарты тайловРедактор местности (terrain)
Воспроизведение звукаИсточники освещения и тениШейдерыДиалоговая система
Чем больше возможностей предоставляет движок, тем сложнее и дольше им пользоваться из-за огромного количества кнопочек и удлинённого времени компиляции, так что подбирать движок лучше не из соображений «чтобы умел побольше», но "взять достаточно для моих нужд — и не больше".Ну и последнее разделение, которое относится к движкам лишь косвенно — это их дата создания и популярность. Чем раньше был создан движок и чем популярнее он, тем легче вам будет с ним работать, поскольку создатели движка наверняка уже починили огромное количество багов (да, это тоже важно, в игровых движках могут быть баги и их может быть много), а в сети вы сможете найти очень много обучающих материалов.
Игровой мир состоит из игровых объектов (GameObject). К этой базовой категории можно практически отнести всё, что находится в игре, в том числе игрока, его инвентарь, камеру, землю под ногами, каждый отдельный кустик и даже небо. Не стоит думать, что все объекты обязательно должны быть видимы — всякие триггеры (объекты, вызывающие события при прикосновении), барьеры, источники освещения и даже части интерфейса являются такими же объектами. Все игровые объекты обладают несколькими базовыми свойствами: положение в пространстве (Transform), включены ли они (Active), какой у них родительский объект и есть ли он (Parent).Игровые объекты так же могут быть дополнены поведением (Behaviour или Component). Поведение — это отдельный код, который привязан к объекту и выполняется при определённых условиях. Условия могут быть самыми разными, а количество поведений, привязанных к объекту, ничем не ограничено. В таком коде вы например можете двигать объект по движению мыши или перекрашивать его цвет. А ещё у каждого поведения могут быть свои отдельные параметры (выраженные в переменных).Например, мы можем создать для картинки поведение «Персонаж», у которого будут очки здоровья и возможность прыгать. И когда персонаж падает со слишком большой высоты, эти очки здоровья у него отнимать.Помимо своих собственных поведений в игровом движке есть несколько стандартных типов поведений: форма столкновения (Bounding Box/Sphere/Capsule/…), физическое тело (Rigidbody), отрисовщик (Renderer), камера (Camera), создатель частиц (Particle Manager), аниматор (Animator) и ещё десятки других типов. Всеми этими поведениями вы можете управлять на лету.Очень важным концептом является событие (Event). Это сигнал, который возникает при соблюдении каких-то условий. Поведения объектов в игре могут порождать эти события и реагировать на них. Например, столкновение — это событие, причём одно из самых частых по использованию. Именно на событиях строится основной игровой процесс, разработчик игры может навешивать действия (Action) одних поведений на события других и так, например, делать кнопки, рычаги, точки сохранений и так далее.Но это и не единственный способ заставить игру работать, ещё есть раздел Update, в который можно написать код и который будет выполняться постоянно, в каждый игровой тик (tick). Тик — это самая минимальная единица времени, которую игра может обеспечить. Обычно тик составляет 16 миллисекунд, но если у вас плохо с оптимизацией, то он увеличится. Без этой функции не обойтись, и некоторые вещи, например плавное передвижение и проверка столкновений, пишутся именно там. Но чем меньше кода написано в этой секции — тем лучше.Место, в котором находятся игровые объекты, называется уровень или сцена (Level или Scene). Уровни можно менять в любой момент, а в некоторых движках ещё и совмещать между собой. Ваши игровые объекты будут распределены по уровням, чтобы друг другу не мешать. Например это будут локации и их наполнение. Но определённые универсальные для всех уровней объекты, например главный персонаж или интерфейс, лучше хранить в отдельном месте.В вашем проекте должна быть отдельная папка, в которой вы будете хранить сохранённые объекты (Prefab). Любой объект в игре вы можете сконструировать всего один раз, а затем сохранить в эту папку для дальнейшего, в том числе многократного, использования. Например, это могут быть деревья или враги. Во время игры вы можете создать любое количество объектов из этой папки, но лучше не переборщить и не использовать тысячи объектов, иначе движок начнёт лагать.И последнее, про графику. Объекты в игре могут выглядеть самым разным способом. И дело даже не в отдельный настройках, а в самом способе их отображения на экране. Это могут быть 2D-объекты, например различные простейшие геометрические формы (Shape) или картинки (Sprite). А могут и 3D-объекты, которые состоят из 3D-модели (Mesh). Все видимые объекты в игре обязаны иметь материал (Material) — набор параметров, влияющий на отображение объекта. Такими параметрами могут являться текстуры (Texture), цвета (Color) и обычные числа (Float). Некоторые движки дают доступ ограниченный доступ материалу, давая лишь задать текстуру и цвет окрашивания, другие же дают полный доступ. В основе материала лежит шейдер (Shader) — особая программа, которая проводит математические вычисления и проецирует объекты в пространстве на плоский экран камеры.
Сразу предупреждаю, что список далеко не окончательный, в мире буквально каждый день кто-нибудь создаёт новый движок программирования — просто потому что это очень интересное испытание. Здесь же указаны более-менее популярные движки, о которых хорошо отзываются и которые вы можете начать использовать прямо сейчас, а их порядок ни в коей степени не отражает мои мнения о них.
Construct 3 — настоящий ветеран индустрии. Используется для создания 2D-игр и достаточно популярен. У движка больше настроек, с недавних пор есть версия для браузера, очень много примеров и шаблонов. Логика на визуальном интерфейсе. Но большинство возможностей скрыто за крайне дорогой лицензией. Бесплатная версия ограничена.Stencyl — ещё один движок для создания 2D-игр. Имеет открытый исходный код и и приятный интерфейс. Логика на визуальном интерфейсе. Мало известен, но полностью бесплатен (платно только публикация на ПК).GDevelop — другой движок для создания 2D-игр, набирающий огромную популярность. Так же имеет открытый исходный код и приятный интерфейс. Логика на визуальном интерфейсе. Полностью бесплатен.RPG Maker — очень популярный движок для создания пиксельных RPG. Именно для RPG движок и заточен, но он подойдёт и для похожих жанров. Много встроенных ассетов и настроек для персонажей. Есть бесплатный 30-дневный пробник, дальше придётся платить.
Game Maker Studio — очень популярный движок для разработки 2D-игр. Позволяет программировать логику на адаптированном Lua и даёт много возможностей. Есть бесплатный 30-дневный пробник, дальше придётся платить.Godot — очень многообещающий движок с открытым исходным кодом, который грозится «заменить Unity» в своей распространённости. Godot поддерживает 2D и 3D графику, а так же несколько языков программирования (C , C# и модификация Python) и имеет свой визуальный скриптинг. Его использование полностью бесплатно.Ren’Py — самый популярный движок визуальных новелл, на котором написаны тысячи новелл. Использует Python в качестве языка программирования логики. Полностью бесплатенMonogatari — простой движок визуальных новелл на веб-технологиях. Мало известен, но выглядит интересно, к тому же движок на jаvascript легче исправить под свои нужды. Код пишется на том же языке. Полностью бесплатен.
Unity — самый популярный в мире движок для разработки игр. Поддерживает 2D и 3D графику, имеет в себе невиданное количество вспомогательных модулей, огромный магазин ассетов и поддерживает большинство платформ. К сожалению, с ростом популярности движок становится всё сложнее и тяжелее в освоении, но всё равно очень доступен. Программирование на C#. Использование условно-бесплатное, при превышении определённого порога прибыли придётся платить за лицензию.Unreal Engine - настоящий гигант, используемый профессионалами в индустрии кино и игр. Имеет самую лучшую графику на рынке, кучу инструментов внутри и ежемесячно раздаваемые бесплатные ассеты на любой вкус. В качестве программирования используется визуальный интерфейс, но есть возможность писать и на C . Инструмент для профессионалов, поэтому очень просто что-то испортить. Использование бесплатно, но с каждой проданой игры надо отчислять процент.Source - игровой движок, использумый Valve для своих игр. Использование напрямую недоступно, но с помощью него можно делать модификации на основе других игр - и вот тут уже намного больше возможностей.
Cocos2d - популярный фреймворк, портированный на несколько языков (C, Python, JS, Swift, C#). С его помощью сделано много игр в том числе для мобильных устройств.Phaser - набирающий популярность фреймворк для разработки игр на jаvascript. libGDX - завоевавший доверие фреймворк для разработки игр для Java.SFML - популярный фреймворк для разработки игр на C
Что ж, теперь вы знаете, как выбрать движок и какие опции доступны. А теперь дерзайте! Скачивайте, тыкайте, экспериментируйте. На сайтах движков вы можете найти очень много шаблонов и примеров, а на YouTube (особенно английской его версии) можно найти буквально сотни и иногда даже тысячи гайдов по тем или иным сторонам разработки. Ждём ваши работы!видео движок
Т.к. я сам довольно активно интересуюсь этой темой, решил поделиться с сообществом тем что мне удалось найти через google.
Оговорюсь сразу:
1. Все перечисленные ниже CMS (судя из информации на официальных сайтах) могу сами конвертировать видео файлы;
2. Ни одной из перечисленных CMS я сам не пользовался, а в статье я просто собрал ту информацию, которую нашел на официальных сайтах.
1. Video CMS от CodeMight (http://www.codemight.com):
1.1 Поддерживаемые целевые форматы видео — не указано;
1.2 Поддерживаемые билинги — PayPal, 2Checkout, AlertPay, Verotel, CCBill, Fortumo;
1.3 Поддержка записи с веб-камеры — есть, опция требует установленного сервера Red5;
1.4 Поддержка нескольких языков — есть;
1.5 Цена — 79$
2. PHPmotion (http://phpmotion.com):
2.1 Поддерживаемые исходные форматы видео — как минимум mpg, avi, divx;
2.2 Поддерживаемые целевые форматы видео — FLV;
2.3 Поддерживаемые билинги — не указано;
2.4 Поддержка записи с веб-камеры — не указано;
2.5 Поддержка нескольких языков — есть;
2.6 Цена — основной скрипт бесплатен дополнительные модули за деньги.
3. AlstraSoft Video Share Enterprise (http://www.alstrasoft.com/videoshare.htm):
3.1 Поддерживаемые исходные форматы видео — как минимум avi, wmv, QuickTime, divx, mpeg;
3.2 Поддерживаемые целевые форматы видео — FLV;
3.3 Поддерживаемые билинги — PayPal;
3.4 Поддержка записи с веб-камеры — не указано;
3.5 Поддержка нескольких языков — есть;
3.6 Цена — 199$ за одну лицензию.
4. AdultVideoScript (http://www.adultvideoscript.com/):
4.1 Поддерживаемые исходные форматы видео — как минимум avi, wmv, QuickTime, divx, mpeg, 3gp, flv;
4.2 Поддерживаемые целевые форматы видео — FLV;
4.3 Поддерживаемые билинги — не указано;
4.4 Поддержка записи с веб-камеры — не указано;
4.5 Поддержка нескольких языков — есть;
4.6 Цена — 149$ за одну лицензию основного скрипта есть много платных модулей.
5. ClipShare (http://www.clip-share.com):
5.1 Поддерживаемые исходные форматы видео — как минимум avi, wmv, QuickTime, divx, mpeg;
5.2 Поддерживаемые целевые форматы видео — FLV;
5.3 Поддерживаемые билинги — PayPal;
5.4 Поддержка записи с веб-камеры — не указано;
5.5 Поддержка нескольких языков — есть;
5.6 Цена — 233$ год бесплатных апдейтов или 317$ пожизненные бесплатные апдейты.
6. СlipСenter (http://www.clip-center.com):
6.1 Поддерживаемые исходные форматы видео — не указано;
6.2 Поддерживаемые целевые форматы видео — FLV;
6.3 Поддерживаемые билинги — не указано;
6.4 Поддержка записи с веб-камеры — не указано;
6.5 Поддержка нескольких языков — есть;
6.6 Цена — 179$ хотят за Premium и 79$ за Lite.
7. osTube (http://www.ostube.de):
7.1 Поддерживаемые исходные форматы видео — AVI, WMV, MOV, MPG/MPEG, 3GP, FLV, MP4, M4V;
7.2 Поддерживаемые целевые форматы видео — FLV;
7.3 Поддерживаемые билинги — как минимум PayPal, ClickBuy;
7.4 Поддержка записи с веб-камеры — не указано;
7.5 Поддержка нескольких языков — есть;
7.6 Цена: Community Edition — бесплатно, Professional Editions — 149$, Enterprise Edition — 949$.
8. TopMediaScript (http://www.topmediascript.com/):
8.1 Поддерживаемые исходные форматы видео — flv, swf, mpg, mpeg, avi, wmv;
8.2 Поддерживаемые целевые форматы видео — FLV;
8.3 Поддерживаемые билинги — не указано;
8.4 Поддержка записи с веб-камеры — не указано;
8.5 Поддержка нескольких языков — есть;
8.6 Цена — 99$ без инсталяции и 149$ с инсталяцией и доп. модулями.
9. VidiScript (http://www.vidiscript.com):
9.1 Поддерживаемые исходные форматы видео — не указано;
9.2 Поддерживаемые целевые форматы видео — FLV;
9.3 Поддерживаемые билинги — не указано;
9.4 Поддержка записи с веб-камеры — не указано;
9.5 Поддержка нескольких языков — не указано;
9.6 Цена — бесплатен.
10. ClipBucket (http://clip-bucket.com):
10.1 Поддерживаемые исходные форматы видео — все что поддерживает FFmpeg;
10.2 Поддерживаемые целевые форматы видео — FLV;
10.3 Поддерживаемые билинги — не указано;
10.4 Поддержка записи с веб-камеры — не указано;
10.5 Поддержка нескольких языков — есть;
10.6 Цена — бесплатен, скачать можно тут.
11. CastFire (http://www.castfire.com):
11.1 Поддерживаемые исходные форматы видео — flv, mpeg4, h.264;
11.2 Поддерживаемые целевые форматы видео — flv, mpeg4, h.264;
11.3 Поддерживаемые билинги — не указано;
11.4 Поддержка записи с веб-камеры — не указано;
11.5 Поддержка нескольких языков — не указано;
11.6 Цена — не указано.
Вот собственно и все, что мне удалось найти. Если у кто-то знает еще какие-то видео CMS, которые сами умеют конвертировать видео — прошу поделиться инфой.