Перейти к содержимому

Какие игры сделаны на source

  • автор:

Создание своей RPG на движке Source

Обложка поста Создание своей RPG на движке Source

Если вы хотите научиться разрабатывать игры, моддинг существующих игр — отличное начало для изучения дизайна и создания прототипов без необходимости изобретать велосипед. В этой статье мы будем использовать Source Engine от Valve (на этом движке созданы Portal, Left 4 Dead, Half-Life и Team Fortress 2) для создания RPG-подобных квестов в Half-Life 2: Episode 2.

Обратите внимание, что эта статья подразумевает, что у вас есть базовые знания по Source SDK Hammer Editor и Face Poser, так что это проект не для начинающих, а скорее для программистов среднего уровня.

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

Для освоения этого материала вы должны знать, как создавать и компилировать карты, размещать сущности и настраивать триггеры, прежде чем повторять действия, описанные здесь. Если вы захотите добавить свои диалоги, вам нужно знать ещё и как создавать и сохранять сцены в Face Poser. Ничего страшного, если вы никогда не работали с Source SDK раньше — в интернете полно статей, описывающих, как им пользоваться. Начните с Valve Developer Wiki, которая содержит множество полезных статей по теме, затем сходите на design3 (кстати, я один из участников проекта) за пошаговыми видеоинструкциями по Source Engine. Минимальные системные требования для использования инструментов, описанных выше, такие же, как для запуска Half Life 2: Episode 2: процессор на 1.7 ГГц, 512 Мб RAM, DirectX 8.1 и Windows не ниже XP. Ещё вам понадобится микрофон.

Подготовка

Прежде чем мы начнём, убедитесь, что у вас есть всё необходимое. Во-первых, вам нужна установленная копия Half-Life 2: Episode 2. Мы будем использовать эту игру, потому что это самая новая одиночная игра на движке Source, к которой можно написать мод. Если у вас нет второго эпизода, скачайте его с то простой Half-Life 2 тоже должен подойти.

Если вы хотите добавить свой диалог в эту RPG, вам понадобится приложение для обработки аудио. Мы будем использовать Audacity — оно свободное, имеет открытый исходный код и отлично подходит для наших задач.

Нам также понадобится патч Phoneme Extractor, который поможет Face Poser лучше работать с Windows 7/Vista. Скачайте его и следуйте инструкциям по установке. Без него не будет работать соединение текста диалога со звуковой подложкой.

Дальше ставьте GCFScape. Он даст нам возможность открывать файлы кеша от игр Steam, так что мы сможем достать оттуда необходимые нам файлы. С его помощью мы будем вынимать аудио для нашего мода.

Если вы ещё этого не сделали, установите Source SDK. Для этого откройте Steam и переключитесь на вкладку «Инструменты». Вам понадобится своя карта, с которой мы будем работать (я буду называть её «основная карта»). Это может быть что угодно: от нескольких простых комнат до обширного ландшафта. Иллюстрация 1 — скриншот уровня, который я использовал для этой статьи, вы можете скачать его здесь.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Сейчас наш уровень — просто грубый прототип, который полностью не текстурирован и не детализирован. Лучше всего именно с этого и начинать, а деталями заниматься уже в самом конце. Итак, давайте уже начинать делать нашу RPG. Не забывайте вовремя сохраняться! Некоторые нововведения в Hammer’е не полностью поддерживаются в Episode 2 и могут вызвать аварийное завершение редактора.

Создаём структуру квеста

В этой статье мы сосредоточимся на получении и выполнении заданий, построение системы развития персонажа с очками опыта — тема для отдельной статьи. На нашем уровне будут три неигровых персонажа (NPC), каждый будет давать нам по два задания. Мы можем их использовать также для предоставления игроку информации, атак на него или просто для того, чтоб добавить немного жизни уровню.

Для того, чтобы уровни были организованы, давайте использовать следующую конфенцию имён:

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

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

Прежде чем мы всё-таки начнём делать квесты, нам нужно разбить их на меньшие компоненты, а именно:

  • Trigger Start: запускает задание;
  • Sprite: показывает, где квест может быть начат;
  • Giver: NPC, который даёт это задание;
  • Scene Start: диалог, описывающий задание;
  • Sound Start: звук, который уведомляет игрока о получении задания;
  • Text Start: текст, описывающий задание;
  • Relay Content: прослойка, которая запускает необходимые для квеста процессы (например, спаунер NPC);
  • Quest Components: основное содержимое квеста — после выполнения оно должно запустить Relay Complete;
  • Relay Complete: прослойка, которая настраивает уровень для последующего задания;
  • Text End: текст, который описывает, как выполнить задание;
  • Sprite: снова появляется, чтобы указать, с каким NPC нужно поговорить;
  • Trigger End: триггер, инициирующий окончание задания;
  • Scene End: заключительный диалог;
  • Sound End: звук, знаменующий окончание задания;
  • Next Quest Activation: если есть следующее задание, оно активируется здесь.

Если вы что-то из этого не поняли, не переживайте — пока мы просто составляем список всего необходимого. Это список лишь для одного задания, так что нам понадобится создать действительно много всяких сущностей. Чтобы не засорять мозг лишним, мы будем использовать VisGroups для разделения заданий и сокрытия того, что сейчас не нужно. VisGroups позволяет вам обозначить группы кистей и сущностей и быстро скрывать или показывать их. Если группа скрыта во время компиляции, всё, что содержится в этой группе, будет пропущено и не появится в игре. Это очень удобно, ведь вы можете избирательно просматривать отедльные группы объектов, сосредоточившись на них, а ничто другое вам мешать не будет.

Создание шаблона задания

Мы будем использовать шаблоны (instancing) — отличный инструмент Hammer Editor’а. Это позволит ссылаться нашей основной карте на другие. Мы создадим экземпляр задания, который в дальнейшем будем использовать как шаблон. После того, как мы его закончим, мы сможем просто раскопировать его и немного отредактировать настройки копий так, чтобы каждое задание стало уникальным. Таким образом, нам не придётся делать одну и ту же нудную работу много раз. К сожалению, Episode 2 не полностью поддерживает эту технологию, поэтому нам придётся конвертировать экземпляры в уровни перед компиляцией (мы коснёмся этого позже).

Для того, чтобы настроить наш шаблон задания, нам нужен новый файл карты. В Hammer’е выбирайте File, затем New, карту сохраните как «quest_instance» в папке «instances» в том же месте, где лежит ваша основная карта.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Лучше всего размещать сущности как можно ближе к координатам (0,0,0). Также стоит размещать их выше плоскости XY, чтобы не потерять при переносе. Для правильного размещения вы можете воспользоваться Selection Tool. Наш шаблон будет автоматически добавлять выбранный нами префикс ко всем сущностям внутри него. Триггеры и выставление некоторых значений буду описаны позднее, так что не переживайте, если вам показалось, что мы что-то упустили.

Нам понадобятся все сущности, упомянутые в списке выше. Давайте начнём с добавления NPC. Выберите Entity Tool, найдите npc_citizen в выпадающем списке и разместите его у начала координат. Этот парень будет давать нам задание. Нажмите Alt+Enter, чтобы открыть его настройки, и дайте ему имя «giver». Выставьте параметр Prevent picking up weapons? на Yes . Примените настройки нажатием на Apply и перейдите на панель Flags. Выставьте флаг Not Commandable , иначе наш работодатель будет всюду таскаться за игроком по карте. Выставьте ещё Don’t drop weapons и Ignore player push (чтобы он не уступал дорогу игроку).

Теперь нам понадобится триггер, который будет отслеживать, подошёл ли игрок к… Давайте называть его Гриша, потому что «этот парень» или «quest giver» звучат не очень хорошо. Так вот, чтобы отслеживать, подошёл ли игрок к Грише, создайте кисть со следующими размерами: 64 юнита в высоту, 32 юнита в ширину, 4 юнита в длину — и разместите объект прямо перед Гришей. Назначьте этому объекту текстуру nodraw , чтобы она не рендерилась. Чтобы изменить текстуру, выделите объект, переключитесь на Toggle texture, нажмите кнопку Browse, используйте фильтр по nodraw , двойным кликом выберите его и примените параметры (кнопка Apply). Затем назначьте этой сущности триггер, нажав Ctrl+T и выбрав func_button из списка. Назовите его «trigger_start» и измените скорость ( speed ) до нуля. Снова сохраните изменения.

Теперь давайте добавим спрайт, который будет уведомлять игрока, что у этого NPC есть задание. Поместите сущность env_sprite сверху от головы Гриши и откройте окно Object Propeties, нажав Alt+Enter. Назовите его «Sprite». Теперь нам нужно изменить режим ренедринга, чтобы спрайт отображался в игре корректно. В том же окне найдите опцию Render Mode и выберите World Space Glow из выпадающего меню. Вы можете изменить текстуру этого спрайта, используя это меню, если хотите. Убедитесь, что во кладке Flags стоит галочка напротив Start on .

Займёмся диалогом. Найдите в списке сущностей logic_choreographed_scene и поместите его за Гришей. Нам понадобится минимум две таких на каждый квест — одна для начального диалога, вторая для заключительного — так что скопируйте её и вставьте вторую поверх первой. Дайте им имена «scene_start» и «scene_end» соответственно. Добавление собственно диалога мы рассмотрим несколько позже.

Кроме всего этого, нам ещё нужны звуковые уведомления о том, что игрок получил задание и о том, что он его выполнил. Создайте две сущности ambient_generic , поместите их рядом с NPC и назовите «sound_start» и «sound_end». Если у вас нет своих подходящих звуков, используйте plats\elevbell1.wav (вводить нужно в поле Sound Name ). На вкладке флагов все три опции должны быть отмечены галочкой.

После этого нам нужно добавить текст, который будет описывать задание. Создайте две сущности game_text и назовите их «text_start» и «text_end». Выставьте для обеих достаточно высокий параметр Hold Time (порядка 99999), чтобы текст не исчез, пока мы сами его не уничтожим. Нам нужно, чтобы текст был сбоку экрана и не мешал игроку, так что выставьте у обеих сущностей поля X и Y на 0.1.

Нам понадобится несколько прослоек, чтобы систематизировать триггеры. Прослойка (relay) — сущность, которая при активации запускает другие сущности. Одна прослойка обычно запускает действия, которые должны выполняться в одно время и в одном месте, чтобы ими было удобнее управлять. Создайте две сущности logic_relay и разместите их рядом с Гришей. Назовие их «relay_content» и «relay_complete». Эти две прослойки будут запускать все сущности в задании. Особенности конкретного задания придумайте сами — вам нужно установить для игрока цель вроде «собрать столько-то таких-то предметов» или «добраться до такого-то места». Для проверки выполнения этих условий вы можете использовать такие сущности, как math_counter или сущности областей вроде trigger_once . Когда эти сущности выяснят, что задание пройдено, они должны будут запустить «relay_complete», который, в свою очередь, запустит всё необходимое для ознаменования конца задания.

Добавим ещё один триггер напротив Гриши. Он будет практически идентичным стартовому триггеру, поэтому просто скопируйте «trigger_start» и переименуйте его в «trigger_end». Убедитесь, что флаг Starts locked включен. Убедитесь, что эти сущности не перекрывают друг друга и что стартовый триггер находится перед хитбоксом NPC (иначе игра будет путаться, выбираете ли вы триггер или «кнопку»), используя виды сверху и сбоку. Чтобы определить местонахождение хитбокса, выберите Гришу — вокруг него появится жёлтая рамка.

Теперь настроим триггеры, как показано на Иллюстрации 5. Вам пока не стоит переживать за триггеры в квадратных скобках, их мы добавим позже. Выберите перечисленные сущности, откройте их Object Properties, зайдите во кладку Outputs и настройте всё в соответствии с таблице ниже. Убедитесь, что вы сохраняете все изменения (кнопка Apply)!

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Размещаем шаблоны

Наш шаблон готов, теперь мы можем размещать такие шаблоны по карте и настраивать их более детально. Разместите «func_instance» где вам удобно, откройте его Object Properties и под VMF Filename найдите ваш файл «quest_instance». Обратите внимание, что поиск работает несколько багованно, так что вам может потребоваться ввести путь к файлу вручную. Теперь вы можете раскопировать этот шаблон по карте: создайте столько заданий, сколько хотите.

Выберите первое задание и дайте ему импортировать все необходимые сущности (нажимайте Instancing, Collapse, Selection). Hammer даст всем сущностям префикс, по умолчанию «AutoInstance-». Всё импортированное будет выделено, нам останется только добавить их в одну группу через VisGroups. Откройте Object Properties и выберите там вкладку VisGroups. Вы увидите примерно следующее:

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

«Sewer» и «Main level» — группы, которые я создавал раньше, так что это нормально, что у вас их нет. Нажмите на «Edit Groups» и вы увидите следующее:

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Здесь вы можете создать новые группы, которые потом будете использовать. Нажмите «New group» и вы увидите новый элемент в списке. Переименуйте его в «Quest_n», где n — номер задания. Как закончите с этим, нажмите «Close», вы увидите свою группу в главном списке. Отметьте чекбоксами для добавления сущностей в группу, нажмите «Apply», затем снова «Close». Тперь вы можете скрывать или просматривать группы, используя панель управления VisGroup, как показано ниже. Делайте так с каждым вашим заданием.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Добавление собственных звуковых файлов

Наша РПГ была бы крайне скучна без диалогов, раскрывающих историю, так что мы запишем их через Audacity. Для начала у вас должен быть микрофон. Из-за особенностей работы Face Poser вам стоит записывать по одному предложению за раз. С Audacity всё просто — настройте микрофон, нажмите на красную кнопку, скажите что-то, остановите запись и сохраните файл в формате .wav . Если у вас возникли какие-то проблемы, можете смело использовать встроенную справку, она очень хорошо сделана. Как закончите, создайте папку «RPG» и поместите в неё все файлы. Папку эту переместите в C:/Program Files/Steam/steamapps/half-life episode two/ep2/sounds/ . Сохранение всех файлов в папку на один уровень выше «sounds» принципиально — иначе движок их просто не увидит.

Идём дальше. Создайте файл «sound_script», чтобы движок мог связать наши звуки в редакторе с игрой. Запустите GCFScape, перейдите к File->Open, перейдите к своей папке «steamapps» и откройте файл «episode two content.gcf». После того, как GCFScape его прогрузит, вам нужно будет найти файл «game_sounds_manifest.txt», который размещён в «/steamapps/ep2/scripts». Нажмите на него правой кнопкой мыши и выберите «Extract» и разместите этот манифест в «/steamapps/half-life 2 episode two/ep2/scripts». С GCFScape мы закончили, можете закрывать его.

Теперь идите в папку со скриптами и откройте «game_sounds_manifest.txt», который мы только что извлекли. В этом файле лежат все звуковые скрипты, которые игра будет использовать, и нам нужно добавить наши записи туда же. Под последней строчкой кода, в последних скобках напишите ровно следующее:

Создание своей RPG на движке Source 1

Файл манифеста можно уже закрывать. Создадим файл «rpg_sounds.txt», на который мы ссылаемся и запишем в него следующее:

Создание своей RPG на движке Source 2

Первая строка — имя звука, которое отобразится в Face Poser: «rpg_sounds» — префикс, а вторая часть — собственно имя. Вы можете менять их как вам угодно. Следующие четыре строки говорят движку, что ему с этими звуками делать, примите их просто как данное. Последняя строчка — . wav файл, который будет загружаться, и относительный путь от папки «/steamapps/half-life 2 episode two/ep2/sound/». Всё, что вам нужно сделать — поместить в эту папку все свои звуковые файлы и убедиться, что их имена и расширения совпадают с указанными в скриптовом файле.

Если у вас стоит Windows Vista или Windows 7, нам придётся немного помочь Face Poser. Как указано выше, вам для этого понадобится патч Phoneme Extractor. Тут стоит упомянуть, что Source SDK обновляет себя каждый раз, как вы его запускаете, поэтому патч нужно ставить каждый раз, как вы открываете Source SDK. Да, это утомительно, но это самый простой путь, поверьте.

С открытым Face Poser мы начнём создавать новую сцену. Под меню «Choreography» нажмите «New». Я порекомендую вам сразу же её сохранить. Имя выберите сами, а папка для сохранения — «/steamapps/half-life episode two/ep2/Scenes/RPG_MOD/». Её потом будет гораздо проще найти, если вы дадите ей какой-то префикс, например, «RPG_». Теперь Face Poser попросит вас дать имя главному действующему лицу (Actor). Назовите его «!_targetN», где N — число от 1 до 8, т.к. у нас будет до восьми NPC в каждой сцене. Hammer будет использовать того NPC, которого вы укажете. У нас пока есть только Гриша, поэтому назовём действующее лицо «!_target1». Сделайте правый клик по имени действующего лица, которое появилось в меню «Choreography», затем перейдите к New->Channel->Create Channel box. Назовите этот канал «Audio». Теперь создайте ещё один канал и назовите его «Anim» (для анимации).

Теперь нам необходимо отсортировать наши аудиозаписи. В списке вкладок в нижней части экрана Face Poser дважды нажмите на «Phoneme Editor». В открывшемся окне нажмите «Load» и выберите .wav файл, который вы хотите добавить. Затем нажмите на «Re-extract», и Face Poser предложит вам написать содержимое аудиофайла текстом. Впишите его. Теперь, если вы нажмёте на кнопку проигрывания, вам будет показано лицо действующего лица, губы которого будут двигаться. Можете сохранять всё и закрывать это окно. Эти действия необходимо повторить для каждого звукового файла.

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Если вы хотите добавить жесты, выражения лица или другую анимацию, Вам стоит делать это сейчас. Я не буду рассказывать, как это сделать в этой статье, вы можете прочитать об этом где-то ещё. Далее сохраните свою сцену (Choreography->Save). Теперь осталось применить эту сцену к нашему NPC.

Добавление стороннего аудио к NPC

Теперь нам нужно настроить диалог. Нам нужно добавить созданные нами сцены к «scene_start» и «scene_end», которые мы создавали раньше. Для этого нажмите Alt+Enter, чтобы открыть Object Properties, там найдите опцию «Scene file». Назначьте ей недавно созданную сцену и сохраните изменения. То же самое сделайте для «scene_end».

Активация событий

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

Игроку нужно убить пять врагов. Каждый раз, когда умирает враг, math_counter увеличивается на единицу. Когда счётчик доходит до пяти, math_counter вызывает logic_relay . В свою очередь, logic_relay прекращает спаун мобов, активирует NPC и «relay_complete».

Настройка автосохранения

Никто не любит, когда один случайный крэш убивает результат многочасовой игры. Поэтому вам стоит добавить сущность logic_autosave и вызывать её каждый раз, когда задание будет пройдено (вы уже знаете, как это делается).

Конец игры

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

На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Заключение

Я рассказал всё, что хотел. Теперь вы можете создавать любые виды заданий, умеете работать с триггерами и, в общем-то, можете начинать писать свои несложные моды к играм. Удачи!

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Самые популярные бесплатные движки для разработки игр

В январе я участвовала в своем первом геймджеме — Global Game Jam 2022, в Стамбуле. На джеме все участники писали игры на движках — ибо надо быстро. Игровой движок — это физика, рендеринг, скрипты, искусственный интеллект. Создавать игру с нуля или пользоваться движком — вопрос вкуса. Вон, Джонатан Блоу вообще пишет свой движок, чтобы писать на нем игру.

Я обратила внимание, что большинство студентов использовали либо Unity либо GameMaker. Сама я питаю нежные чувства к Construct, но на нем всего одна команда делала игру. Я решила поискать альтернативу для себя, заодно запилила подборку бесплатных движков для начинающих (а может и продолжающих) игроделов.

Еще я веду канал в Telegram GameDEVils (на русском) и блог на Substack (на английском), делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).

Популярные движки Steam и itch.io

Вот статистика, игры на каких движках выкладывают в Steam:

Топ-11 движков в Steam:

  1. Unity (27148)
  2. Unreal (6869)
  3. GameMaker: Studio (2806)
  4. RPGMaker (1938)
  5. Ren’Py (1235)
  6. XNA (572)
  7. Adobe AIR (398)
  8. Godot (384)
  9. Cocos2d (326)
  10. MonoGame (280)
  11. Construct (201)

И на каких движках чаще публикуют на itch.io:

Топ-11 движков на itch.io:

  1. Unity (82 000)
  2. Construct (18 300)
  3. GameMaker: Studio (12 100)
  4. Godot (8 640)
  5. Twine (7 800)
  6. Unreal Engine (4 800)
  7. Bitsy (4 800)
  8. RPG Maker (4 500)(не бесплатно, но есть триалка)
  9. PICO-8 (4 200)($15)
  10. Ren’Py (3 100)
  11. LÖVE (1 500)

1. Unity

На Unity разработали много игр, прям МНОГО. Вот ссылочка на Википедию. Unity поддерживается на iOS, Android, Windows Phone, Tizen и Fire OS.

Если оборот или объем привлеченных инвестиций не превышает $100 тыс. за последние 12 месяцев, то можно пользоваться бесплатной подпиской Personal.

Про Unity на Хабре:

  • Unity — самый популярный игровой движок? Обзор движков, на которых делают игры для Steam
  • У Unity всё плохо
  • Почему я пишу игры на Unity
  • Гусеница на Unity за 5 минут

2. Unreal

Игровой движок от компании Epic Games, тоже очень популярный, вот список игр из Википедии.

Unreal Engine бесплатный аж с 2015 года, но разработчики игр должны передавать 5% от выручки с продаж игры компании Epic Games, если ежеквартальная выручка превышает $1 000 000.

Про Unreal на Хабре:

  • Туториал по Unreal Engine. Часть 1: знакомство с движком
  • Какие прелести нас ждут в Unreal Engine 5
  • Блог Unreal Engine на Хабре
  • Unreal против Unity: на чем лучше разрабатывать мобильные игры?

3. GameMaker: Studio2

Интерфейс Game Maker объединяет в себе редакторы спрайтов, объектов, комнат, скриптов, а также тайм-лайнов (последовательностей действий с привязкой по времени), путей (маршрутов) движения и констант. Летом 2021 года YoYo Games сделали беплатный доступ без ограничений по времени. Изначально они выдавали триалку только на месяц, для знакомства. Правда экспортировать на бесплатной версии можно разве что на GXC.

За базовую подписку CREATOR (≈ 80 руб./мес.) появляется экспорт для Windows, macOS и Linux. За INDIE (≈ 260 руб./мес.) появляется экспорт для HTML5 и мобилки.

Проблема GameMaker, и других движков типа «наведи и щелкни» в том, что разработчики более ограничены. С другой стороны, GameMaker популярен, потому что позволяет создать игру без предварительных навыков программирования.

Про GameMaker на Хабре:

4. Godot

Открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT, который разрабатывается сообществом Godot Engine Community. Среда разработки запускается в Linux, BSD, macOS и Windows. Godot поддерживает GDScript (свой собственный язык), C++ и C#. Плюс есть еще средство для создания привязок к другим языкам — GDNative. Сообщество поддерживает Rust, Nim, JavaScript, Haskell, Clojure, Swift и D.

Про Godot на Хабре:

  • Из Unity в Godot. Первое впечатление
  • Твоя первая игра на Godot Engine
  • Прямоугольные тайловые миры
  • Гексагональные тайловые миры

Cocos2d

Кроссплатформенный опенсорсный фрейворк для разработки игр и приложений, преимущественно для мобилки с лицензией MIT. Cocos2d-x развертывается в iOS, Android, HTML5, Windows и Mac.

Фреймворк поддерживает создание 2D и 3D игр, предоставляет такие функции, такие как рендеринг графики, графический интерфейс, аудио, сеть, физика, пользовательский ввод и т.д. Ядро написано на C++ и поддерживает разработку на C++, Lua или JavaScript. У фрейворка есть множество ответвлений: Cocos2d-ObjC, Cocos2d-x, Cocos2d-html5 и Cocos2d-XNA.

Про Cocos2d на Хабре:

  • Cocos Creator
  • box-, cocos- и пицца- 2d (личный опыт создания игры)
  • Cocos2d-x — Обработка действий

5. Construct

Ноу-код движок для создания 2D игр. Запускается в браузере, работает из десктопа офлайн. Движок не дает большой гибкости, как GameMaker, и также дружелюбен к новичкам без технического бэкграунда + на ютубе выложена куча туториалов.

Есть бесплатная версия Construct, основное ограничение — 2 слоя и максимум 25 «событий» (если авторизоваться, то 50 «событий») в проекте. За события считается любое действие / поведение объекта. Но чтобы попробовать, и даже собрать элементарный платформер — хватает. Персональная лицензия стоит около $5.

6. Twine

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

Чтобы создать простенький сторителлинг с помощью Twine, код писать не нужно. Но можно. Можно дополнить свои истории с помощью переменных, условной логики, изображений, CSS и JavaScript.

Про Twine на Хабре:

7. Adobe AIR SDK (HARMAN)

Кроссплатформенный движок (Windows, OS X, Linux, QNX, Android) от компании Adobe, которая пару лет назад передала на нее права компании HARMAN. Этот движок можно использовать бесплатно, если вы зарабатываете менее 50 тысяч долларов в год. Движок все еще популярен в Steam, отчасти из-за адаптаций браузерных игр на Flash.

На Хабре про AIR:

  • Компилируем под iOS быстрее с AIR 4
  • Кроссплатформенная разработка на Adobe Air: частный случай
  • Разработка первой игры под Android с применением Adobe AIR и Stage3D

8. Ren’Py

Опенсорсный движок для создания визуальных новелл в 2D-графике с бесплатным коммерческим использованием.

Про Ren’Py на Хабре:

  • Пишем текстовую игру на Python/Ren’Py
  • Пишем текстовую игру на Python/Ren’Py ч.2: мини-игры и подводные камни

9. Bitsy

Крошечный онлайн редактор для мини-игр. Это какой-то супер-милый проект и милым сайтом. Разработчик выкладывает логи проекта на itch.io. И там же можно поиграть в игры, сделанные с помощью Bitsy движка.

10. LÖVE

Фреймворк для создания 2D игр на Lua. Он бесплатный, с открытым исходным кодом и работает на Windows, Mac OS X, Linux, Android и iOS. Лицензия zlib, позволяет свободно использовать движок даже в коммерческих проектах с закрытыми исходниками.

Про LÖVE на Хабре:

  • Создание игры на Lua и LÖVE — 1
  • Разработка на LÖVE

11/12. XNA и/или MonoGame

Microsoft еще лет 10 назад сказали, что не будут больше выпускать обновления для Microsoft XNA Game Studio. У этой платформы есть преемник — проект MonoGame, представляющий собой кроссплатформенную open-source реализацию XNA с дополнительными возможностями. MonoGame позволяют разрабатывать под Windows, Mac OS, Linux, iOS, Android, PS4, PSVita, Xbox One и Nintendo Switch. Язык разработки игр — C#.

НЕбесплатные движки с itch.io и Steam

PICO-8

Это игровая консоль, которая имитирует ограниченные графические и звуковые возможности 8-битных систем 1980-х годов. Можно единоразово приобрести за $15.

RPG Maker

Это серия движков для создания РПГ, точнее JRPG, японских ролевых игр. Для RPG Maker тоже нет бесплатной подписки, но есть пробная триалка. RPG Maker поддерживает только Windows. В Steam он лежит для разовой покупки от 500 до 3000 рублей, в зависимости от продукта, там есть несколько «комплектаций». Менять скрипты под себя можно на Ruby-подобном языке.

Начиная с RPG Maker MV используетcя JS вместо Ruby, т.е. версии с 2015 года и позже.

Больше бесплатных движков

Вот бонусом еще 11 бесплатных вариантов движков:

1. Amazon Lumberyard

Бесплатный кросс-платформенный игровой движок, разработанный Amazon. Визуальная технология Lumberyard основана на CryEngine, но команда разработчиков Amazon уже внесла в систему значительные обновления. Роялти нет, лицензионных сборов нет. Amazon зарабатывает деньги через Amazon Web Service. Естественно, у этого игрового движка прекрасная совместимости с AWS. Помимо бесшовной интеграции с AWS, Lumberyard также предлагает интеграцию с Twitch.

Про Amazon Lumberyard на Хабре:

  • Amazon Lumberyard: крик души
  • Тестирование игрового движка Amazon Lumberyard. Подходы и инструменты

2. Solar2D (бывший Corona SDK)

Кросплатформенный движок с открытым исходным кодом для создания мобильных 2D-игр и приложений. Поддерживает такие платформы, как Android, iOS, Kindle, macOS, Windows, Linux. Предусмотрена сборка веб-приложений (HTML5). Solar 2D использует интегрированный Lua, наложенный поверх C++ / OpenGL.

Про Solar2D на Хабре:

3. jMonkeyEngine

Движок с открытым исходным кодом, написанный на Java для создания игр и приложений для Android или iOS. Точнее jMonkeyEngine — это набор библиотек для низкоуровневой разработки, а в высокоуровневый инструментарий его превращает интегрированная среда разработки, к примеру jMonkeyEngine 3 SDK.

Про jMonkeyEngine на Хабре:

  • Пробуем 3D с помощью jMonkeyEngine
  • Кроссплатформенное приложение в Android Studio на jMonkeyEngine 3

4. SpriteKit

Это движок для 2D-игр, разработанный Apple и предназначенный для устройств Apple.

Про SpriteKit на Хабре:

  • Создание игры на движке Sprite Kit (Часть 1)
  • Первый опыт разработки игры на Sprite Kit

5. Box2D

Физический движок от разработчика из Blizzard Entertainment, написан на C++, лицензия MIT.

Про Box2D на Хабре:

  • Физические безумства
  • WPF и Box2D. Как я делал физику c WPF

6. LibGDX

Кросплатформенная среда разработки на Java, которая предоставляет унифицированный API для создания 2D- и 3D-игр. LibGDX дружит с движком Box2D (физика реального мира), можно добавить поддержку TrueType шрифтов или работать с 3D объектами.

А еще коммьюнити LibGDX проводит геймджемы раз в сезон (март, июнь, сентябрь, декабрь), вот ссылочка на подробную информацию: Game Jams.

Про LibGDX на Хабре:

  • Разрабатываем игры на LibGDX с помощью шаблона Entity Component System
  • Чему я научился делая игры на LibGDX

7. Urho3D

Бесплатный 2D и 3D игровой движок, запускается на Windows, Linux, macOS/iOS/tvOS, Android, и даже на Raspberry Pi и в браузере. Вики Urho3D содержит всю инфу для начала работы с движком, включая практические руководства по настройке.

Про Urho3D на Хабре:

  • Основы Urho3D
  • Редактор Urho3D (часть 1)
  • Редактор Urho3D (часть 2)
  • Urho3D: Игры всерьез

8. CryEngine

Если вы использовали версию движка 5.5+ и заработали 5000$, то придется выплачивать 5% от прибыли. Если вы используете более ранние версии, то можете подать заявку на освобождение от выплат.

Про CryEngine на Хабре:

9. Panda 3D

Движок с открытым исходным кодом для 3D-игр. Язык разработки игр — Python. Сам движок написан на C++ и использует автоматический wrapper-генератор для предоставления полной функциональности движка в интерфейсе Python. Panda 3D может работать практически на всех основных платформах.

10. Bitty

Небольшой кроссплатформенный движок и опенсорсный фреймворк для создания 2D-игр на Lua…

11. Phaser

HTML5-опенсорсный движок для тех, кому хочется писать JavaScript или TypeScript браузерные 2D игры. Для начала работы с движком создатель предлагает просто начать вносить свои правки в уже существующие общедоступные игры и смотреть, что из этого получается. Плюс есть форум, где чувачки из комьюнити активно отвечают.

Кстати, про геймджем по-турецки скоро отдельный пост запилю. Вот пока моя фотка во время джема:

(Это я в шапочке, честное слово)

  • 15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли
  • Ещё 20+ игр, которые прокачивают логику, алгоритмы и радуют умный мозг
  • Каким был первый game jam 20 лет назад и где можно поджемить в этом году
  • Как инди-разработчику найти художника для своей игры и сэкономить $500

Мой канал в Telegram с находками про разработку игр, историю игр и геймдизайн: GameDevils (на русском) и блог на Substack (на английском).

Движок Source и его лиминальность

В Half-Life 2, в конце главы про катер, есть тупичок, который весьма легко пропустить. Смотреть в нём особо не на что: бетонная канава, несколько лачуг и парочка зомби. Но этот уголок с его далёким пением сверчков и обжигающим панельные стены закатом настолько атмосферный, что всегда, когда я перепрохожу игру, останавливаюсь там ненадолго. Этот тупичок с зомби идеально передаёт мимолётную меланхоличную красоту движка Source.

Движок Source, на котором сделана большая часть игр Valve (от Half-Life 2 до CS:GO) возник в уникальный период развития геймдева. Это была середина нулевых, когда 3D-игры наконец-то стали выглядеть хорошо. За десять лет до этого игровые локации представляли из себя вырубленные топором пространства, а десять спустя десять лет игры стали почти фотореалистичными.

Source заполняет собой пробел между эпохами. Он стал последним вздохом bsp-ландшафтов, статического освещения, но вместе с этим он показал сочный и живой мир. За последние десять лет разработчики научились извлекать из движка впечатляющие пейзажи, но делают они это с помощью редактора уровней (созданного в 1997 году) и с разными ограничениями (установленными в 2004 году).

Это странное напряжение придаёт Source-картам необычное, тревожное ощущение. Уровни освещаются «неуловимым» сиянием. Звуки отражаются немного сильнее, чем должны. Зайдите на пустую карту в Garry’s Mod — и сразу почувствуете себя в изоляции.

Уровниловка

По Интернету циркулирует примерно 11 тысяч миллиардов Source-карт. Source — не только последний вздох геймдизайнерской философии девяностых, но и последний оплот фанатских карт.

Часто ли вы видите где-то карты сообщества? Из современных соревновательных шутеров CS:GO — единственный, где всё ещё есть надёжные инструменты создания уровней. В мапперском сообществе есть мнение, что эта отрасль отмирает: современные левел-инструменты отказываются от эффективности в пользу сложности.

Использованные движками Unreal и id Tech функции и инструменты беспрепятственного создания арен заглохли вместе с Source, но начали возвращаться с Source 2. Source упростил создание качественных модов, не требуя углубляться в изучение разработки.

Каскадный резонанс

Source ощущается как напоминание о каком-то особом моменте из славного прошлого. Как мы уже говорили, это может быть момент перехода от старого дизайна к новому. Для нас, шутников из VALVe MEMES, Source — это напоминание о том времени, когда Valve действительно создавала игры. Source-моддинг — это возврат к тому Интернету, который ещё не был просто кучкой сайтов: это возврат к тысячам форумов, наполненных чьими-то модами и серверами — мирами, основанными на чьих-то чувствах. Source позволил простым моддерам стать разработчиками, а талантливым моддерам — инди-легендами. Source позволил энтузиастам стать аниматорами с помощью машинимы и Source Filmmaker.

Valve пошла дальше и теперь вкладывается в Source 2. Движок Half-Life: Alyx (и, прости господи, Artifact) ничуть не уступает своим предшественникам. Сообщество мододелов потихоньку сдвигается с мёртвой точки, и Source 2 ещё только предстоит волна креатива, которая в своё время захлестнула его предков.

Source продолжается благодаря Respawn Entertainment. Технология, лежащая в основе Half-Life 2 — это та же технология, на которой базируется Apex Legends. Конечно, Respawn распотрошили движок до неузнаваемости, создав миры, о которых стареющий Source мог только мечтать. И где-то во всей этой красоте всё ещё есть куски кода Quake Engine.

А когда слабый солнечный свет освещает каньон Кингс, я вижу в нём то тёплое, непостижимое сияние, которое зацепило меня ещё тогда — в канавах Сити 17.

Я вижу Source и понимаю, что я дома.

Какой движок используется в создании игры Black Mesa: Source?

Black Mesa: Source — это ремейк культовой игры Half-Life, который был разработан и выпущен в 2012 году. Создание игры заняло много лет и требовало от команды разработчиков значительных усилий. Один из важнейших элементов успеха Black Mesa: Source — это использованный движок.

Игра создана на основе Source Engine, мощного игрового движка, который был создан компанией Valve Corporation и использовался в таких играх, как Half-Life 2, Portal и Team Fortress 2. Он представляет собой полностью перенаправленный движок Quake, который был дополнен новыми функциями и возможностями.

Source Engine давно считается одним из лучших движков для создания видеоигр благодаря своей простоте в использовании, возможностям создания великолепной графики, физической проработки и площадки для развития игровых модификаций. Использование этого движка в Black Mesa: Source привело к тому, что игра получилась действительно красивой и захватывающей.

Black Mesa: Source — игровой движок

Black Mesa: Source – это игра, созданная на базе движка Source, который разработан компанией Valve. Он является одним из самых популярных движков для компьютерных игр.

Движок Source изначально был создан для игры Half-Life в 1998 году, но с годами прошел множество обновлений и стал использоваться во многих других играх. Он обладает мощным набором инструментов и возможностей для создания игровой среды, позволяет создавать реалистичные графические эффекты и легко настраиваться под разные характеристики компьютеров.

Black Mesa: Source – это модификация игры Half-Life, которая полностью переработана на основе движка Source. Это позволило разработчикам значительно улучшить графику и физику игры, а также внести множество новых элементов в геймплей, сделав игру более интересной и зрелищной.

В целом, использование движка Source в создании игры Black Mesa: Source позволило создать качественную и увлекательную игру, которая стала одной из самых популярных игр в своем жанре. Использование мощного и гибкого движка позволило разработчикам полностью раскрыть свой творческий потенциал и создать игру, которая оставляет незабываемые впечатления у игроков.

Что такое игровой движок

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

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

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

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

История создания Black Mesa: Source

Появление оригинальной игры Half-Life

В 1998 году компания Valve выпустила первую часть игры Half-Life, которая стала революционной в мире шутеров от первого лица. Она представляла собой не только сюжетную линию, но и сложные головоломки, инновационные механики и графические решения.

Начало работы над Black Mesa: Source

В 2004 году группа энтузиастов решила переделать оригинальный Half-Life современным движком Source от Valve, и назвала это проект Black Mesa: Source. Цель группы была сохранить сюжет оригинала, но изменить игровую механику, а также сделать более качественную графику и эффекты.

Сложности в разработке

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

Правовые проблемы

Еще одной проблемой в работе над проектом стали правовые проблемы. Valve не соглашалась на легализацию проекта, и разработчики вынуждены были работать над игрой на свой страх и риск. Однако благодаря усилиям группы Black Mesa проект все же был выпущен в 2012 году, удивив мир своей качественной графикой и улучшенной механикой

  • Вывод: Black Mesa: Source является одним из самых успешных проектов сообщества фанатов Half-Life, в котором представлены современные графические и игровые решения.

Какой движок используется в Black Mesa: Source?

Black Mesa: Source – это модификация для Half-Life, выпущенная в 2012 году разработчиками из Crowbar Collective. Она является полной переработкой оригинальной игры на движке Source.

В отличии от оригинала, в Black Mesa: Source была улучшена графика и физика благодаря улучшенному движку Source. Кроме того, были заменены звуковые эффекты и сделан ряд изменений в геймплее.

Известно, что разработчики использовали движок Source SDK 2007 для создания модификации Black Mesa: Source. Это специальный пакет разработчика, который предоставляет инструменты для создания игр на движке Source.

Использование движка Source SDK 2007 позволило разработчикам полностью воссоздать оригинальную игру, но с улучшенной графикой и физикой. Благодаря этому Black Mesa: Source получила высокие оценки и популярность среди фанатов игры Half-Life.

Особенности использования движка в игре Black Mesa: Source

Запуск на старых компьютерах

Движок, используемый в игре Black Mesa: Source, имеет высокие системные требования, что может быть проблематичным для старых компьютеров. Но разработчики предусмотрели возможность запуска игры в режиме совместимости с более старыми версиями операционных систем, что позволяет играть даже на более слабых компьютерах.

Редактор уровней

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

Модификация

Движок в игре Black Mesa: Source позволяет также создавать собственные модификации для игры, что является большим плюсом для ее пользователей. Это может быть тематические изменения скинов персонажей, замена текстур и звуков, добавление новых уровней и многое другое, что не только улучшает геймплей игры, но и позволяет игрокам проявить свою творческую натуру.

Графика и оптимизация

Движок, используемый в игре Black Mesa: Source, обладает высокой графической частью, но при этом требует хорошей оптимизации. Разработчики игры обеспечили оптимизацию движка, что позволяет играть с высокой скоростью и качеством на большинстве современных компьютеров.

Основные компоненты движка

Исходный код

Исходный код является основой любого движка. Именно на его основе создаются игры. Black Mesa: Source создан на основе движка Source Engine. Это позволяет разработчикам легко и быстро создавать и модифицировать игру. Под девизом «игроки создают игры» Valve, компания-создатель движка Source Engine, предоставляет возможность создавать модификации на основе их движка.

Моделирование

Моделирование — это процесс создания 3D-моделей игровых объектов. Моделирование в движке Source Engine осуществляется с помощью программы Hammer Editor. Она предназначена для создания игровых карт и всего, что на них находится: стен, окон, дверей, лестниц и т.д. Также Hammer Editor позволяет создавать простые модели прямо в программе. Для создания более сложных объектов используются сторонние программы для моделирования, такие как 3ds Max или Maya.

Анимация

Анимация — это процесс создания движения игровых объектов. В движке Source Engine анимация создается с помощью программы SDK — Software Development Kit. С ее помощью можно создавать не только простые анимации объектов, но и сложные сцены, где несколько персонажей взаимодействуют друг с другом. Также в SDK есть инструменты для создания и редактирования спецэффектов и звуков.

Звук

Звук — это один из важных компонентов игры, который создает атмосферу и увеличивает иммерсию. В движке Source Engine звуковое оформление создается с помощью программы SDK. Она содержит обширную библиотеку звуковых эффектов и инструменты для их редактирования и создания собственных эффектов. Необходимо тщательно работать над звуковым оформлением, чтобы создать максимально реалистичный звуковой мир игры.

Физика

Физика — это то, что делает игру более реалистичной. В движке Source Engine для этих целей используется система физических движков Havok. Это профессиональный набор инструментов для моделирования твердых тел, жидкостей, газов и других физических явлений. С его помощью можно создавать игровые объекты, которые будут вести себя по физическим законам, взаимодействовать друг с другом и с окружающей средой. Это позволяет создать более реалистичную и интересную игру.

Преимущества использования Black Mesa: Source

Улучшенные графика и звук

Black Mesa: Source улучшает графическую часть игры Half-Life, добавляя более качественные текстуры и модели, а также улучшенное освещение. Новая версия также предоставляет уникальные звуковые эффекты, которые делают игру еще более реалистичной.

Новые эффекты и анимация

Black Mesa: Source включает в себя новые эффекты и анимацию, которые добавляют новое измерение в игру. Больший выбор возможностей поддерживает дополнительную интерактивность и делает игру более захватывающей.

Измененный и улучшенный сюжет

Black Mesa: Source изменяет и улучшает оригинальный сюжет Half-Life, добавляя новые детали и создавая уникальный игровой опыт. Сюжет дополнен новыми персонажами и развитиями истории, которые делают игру еще более интересной и увлекательной.

Лучшая совместимость с современными системами

Black Mesa: Source лучше подходит для работы на современных компьютерах и операционных системах. Это означает, что игроки смогут наслаждаться более высокими кадровыми частотами и лучшей производительностью в игре.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *