Движок Source – особенности, преимущества и недостатки. Source движок на каком языке

Этого уже должно быть достаточно для модификации и создания отдельных игр, о чем свидетельствует Гарри Ньюман, создавший популярный мод Sandbox Garry, а также многочисленные моддеры, создатели видео SFM и другого контента. Разработка исходного кода (если вы не создаете модели) требует соответствующего знания языка C++.

Языки скрипта¶

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

Сценарии прикрепляются к узлам и расширяют их поведение. Это означает, что сценарий наследует все функции и свойства узлов, к которым он присоединен.

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

Доступные языки скрипта¶

Godot предлагает пять языков программирования игр — GDScript, C#, VisualScript и GDNATIVE технологии C ++ и C. Существуют и другие языки, поддерживаемые сообществом, но вот формула.

Вы можете использовать множество языков в своем проекте. Например, вы можете использовать GDScript для быстрого описания логики вашей игры, чтобы дизайнеры уровней могли создавать сценарии на VisualScript и использовать C # или C ++ для создания сложных алгоритмов для максимизации производительности. Это зависит от вас.

Эта гибкость предлагается для удовлетворения потребностей разработчиков и различных игрушечных проектов.

Какой из них мне следует использовать?¶

Если вы новичок, рекомендуется начать с GDScript. Этот язык был создан специально для Godot и потребностей разработчиков. Он имеет простой и понятный аннуитет и предлагает самую тесную интеграцию с Godot.

... /... /_images/scripting_gdscript.png

Использование C # требует внешнего обработчика кода, такого как VSCode или Visual Studio. Поддержка C # уже разработана, но она требует меньше образовательных ресурсов по сравнению с GDScript. По этой причине C # рекомендуется в первую очередь пользователям с языковым опытом.

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

GDScript¶

GDScript — это язык объективного и простатного программирования, разработанный для Godot. Он был создан разработчиками игр и сокращает время, затрачиваемое на планирование игры. Его особенности включают.

Простые аннуитеты с малым размером файла.

Молниеносный аннуитет и загрузка.

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

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

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

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

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

GDScript похож на Python в том, что он создает блоки кода с отступами, но на самом деле он работает по-другому. Он вдохновлен различными языками, такими как Squirrel, Lua и Python.

Python и Lua прямо из коробки.

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

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

.NET / C#¶

Microsoft C# — любимый язык разработчиков игр, поэтому мы добавили его официальную поддержку. C # — это устоявшийся и гибкий язык, и для него создано множество готовых библиотек. Его поддержка была добавлена благодаря щедрому пожертвованию компании Microsoft.

Статья по теме:  Зачем и как обновлять драйвера видеокарты. Зачем нужно обновлять драйвера видеокарты

... /... /_images/scripting_csharp.png

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

Чтобы писать на C #, необходимо использовать версию Mono процессора Godot. Его можно загрузить со страницы загрузки.

Поскольку Godot использует среду выполнения Mono.NET, практически любая сторонняя библиотека .NET или программная платформа может быть использована для написания сценариев на Godot и CLR-совместимых языках программирования, таких как F#, Boo и ClojureCLR. Вы также можете написать. На практике, однако, C# является единственным официально поддерживаемым вариантом .NET.

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

Чем хорош Source?

Half-life 2

В основном из-за их доступности. Набор инструментов Source SDK бесплатен для всех пользователей Steam и включает в себя редактор карт, средство просмотра импорта/экспорта моделей, анимацию лиц, а также инструменты для распаковки и файлы исходного кода некоторых игр Valve.

Этого уже должно быть достаточно для модификации и создания отдельных игр, о чем свидетельствует Гарри Ньюман, создавший популярный мод Sandbox Garry, а также многочисленные моддеры, создатели видео SFM и другого контента. Разработка исходного кода (если вы не создаете модели) требует соответствующего знания языка C++.

Гэри.

Source тесно интегрирован со SteamWorkshop, что позволяет легко создавать и добавлять моды к играм на вашей машине, буквально копируя мод в папку с игрой. То же самое касается достижений, выделенных серверов и других функций: благодаря поддержке Steamworks, моды и отдельные разработчики игр могут интегрировать их в Steam и максимально использовать возможности сервиса.

Чем плох Source?

При всей гибкости и доступности Source, машина не может конкурировать с инструментами других компаний по технической насыщенности. Даже самые последние игры от опытных студий (например, Titanfall 2) меркнут по сравнению с проектами, созданными на UnrealEngine 4 или CryEngine.

Valve дружелюбна к моддерам и предлагает свои инструменты бесплатно. Однако если вы хотите продавать моды или игры на исходной машине, вы должны заплатить за использование машины и всех ее материалов, включая права на Havoc, Miles и Blink, и обязательно выпустить свою игру на Steam.

Кому стоит использовать Source (в первую очередь)?

История портала: mel.

Конечно, моддеры, которые хотят доминировать в разработке игр, создают моды для своих любимых проектов или добавляют новые скины оружия для CS: Go. что касается самых серьезных студий, то здесь, вероятно, больше возможностей и лицензирования верных терминов, таких как Unreal Engine и Unity. Лучше обратить внимание на другие машины.

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

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

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

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

Рисунок 2 — Используемый контракт именования

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

Перед началом миссии их необходимо проанализировать на более мелком материале.

  • 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, отличный инструмент редактора молотков. Это позволяет основной карте ссылаться на другие карты. Создайте кейс для задачи и используйте его в качестве стандарта. После завершения работы вы можете просто разделить и немного обработать параметры копирования, чтобы каждая задача была уникальной. Таким образом, вам не придется снова и снова выполнять одну и ту же утомительную задачу. К сожалению, Episode 2 не полностью поддерживает эту технологию, поэтому перед компиляцией вам придется преобразовать кейс в уровень (см. далее).

Для корректировки рабочих стандартов требуется новый файл карты. В файле Hammer Select сохраните карту как ‘Quest_Instance’ в папке ‘Instances’ в том же месте, что и основная карта после создания новой.

Рисунок 4 - Quest_Instance должен выглядеть следующим образом после добавления всех существ.

Рисунок 4 — Вот как выглядит quest_instance после добавления всех сущностей.

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

Вам понадобятся все организации, перечисленные в списке выше. Начните с добавления NPC. Выберите инструмент Entity Tool, найдите в выпадающем списке npc_citizen и поместите его в верхнюю часть координат. Этот человек дает нам нашу миссию. Нажмите Alt + Enter, чтобы открыть настройки, и назовите его «Даритель». Установите для параметра PreventArmsRetrieval значение Yes. Нажмите кнопку Применить, чтобы применить настройки и перейти к панели Флаги. Установите флажок Отключить команду. В противном случае работодатель перетащит игрока на карту. Также включите Не бросать оружие и игнорируйте толчок игрока (чтобы игрок не уступил ему место).

Здесь нужен активатор, который будет следить за тем, подходит ли к нему игрок… ‘этот парень’ или ‘поставщик квестов’ звучит не очень хорошо, поэтому назовем его Гришей. Поэтому, чтобы отследить, приближается ли игрок к Грише, создайте кисть высотой 64 единицы, шириной 32 единицы и длиной 4 единицы и поместите объект прямо перед Гришей. Назначьте этому объекту текстуру nodraw, чтобы он не был отрисован. Чтобы изменить текстуру, выберите элемент, прокрутите до Texture, нажмите кнопку Browse, дважды щелкните фильтром nodraw и примените параметры (кнопка Apply). Затем нажмите Ctrl + T и выберите func_button из списка, чтобы назначить активацию этой сущности. Назовите его ‘trigger_start’ и измените его скорость на ноль. Снова сохраните изменения.

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

Статья по теме:  Почему Цукерберг переименовал Facebook в Meta и что означает это название

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

Теперь, когда шаблон готов, вы можете разместить такой шаблон вокруг карты, чтобы придать ей более подробную форму. Поместите ‘func_instance’ в нужное место, откройте свойства объекта и найдите файл ‘quest_instance’ в области имени файла VMF. Обратите внимание, что поиск несколько проблематичен, и вам может потребоваться ввести путь к файлу вручную. Теперь вы можете распространить этот шаблон по карте. Создайте необходимое количество миссий.

Выберите первую задачу и введите все необходимые сущности (нажмите Instantiate, Collapse, Select). Hammer префикс всех сущностей. По умолчанию используется значение ‘AutoInstance-‘. Все импорты выбраны. Все, что вам нужно сделать, это добавить их в одну группу через VisGroups. Откройте свойства объекта и выберите вкладку VisGroups. Вы увидите следующее.

Рис. 6 - Настройка группы vis

Рисунок 6 — Настройки VisGroups.

‘Sewer’ и ‘Main Level’ — это группы, которые я создал в прошлом, поэтому вам не обязательно их иметь. Нажмите Редактировать группы, и вы увидите следующее.

Рисунок 7-Добавление областей и объектов в группу

Рисунок 7 — Добавление областей и объектов в группу

Здесь вы можете создавать новые группы для последующего использования. Нажмите на «Новая команда», и вы увидите новый элемент в списке. Переименуйте его в ‘quest_n’, где n — номер работы. После этого нажмите кнопку «Закрыть», и команда появится в основном списке. Установите флажки, чтобы добавить сущности в группу, нажмите ‘Apply’ (приложение), а затем снова ‘Close’ (закрыть). Вы можете скрыть или показать группы с помощью панели управления Visgroup, как показано ниже. Сделайте то же самое с вашей работой.

Рисунок 8 — Завершенная команда

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

Изменения, которые принесет переход на Source 2

Заметные различия в стрельбе и игровой механике вряд ли будут распознаны обычным пользователем, но, как уже упоминалось выше, автомат дает создателю и разработчику игры больше свободы для создания собственной карты. Маквикер также прокомментировал предстоящие изменения. ‘Обычный пользователь не увидит больших изменений. Большие изменения окажут большое влияние на внутриигровых картографов и контент, но для остальных они в основном незаметны».

Отличные обновления для Counter-Strike — большая редкость. Например, настоящий кризис произошел в 2018 году. В CS:GO первая функция была выпущена в 2013 году. В среднем, каждая операция длится около пяти месяцев, а следующая — через три-десять месяцев. Так было не всегда. Начав с операции «Ревен» и закончив бизнесом «Бигль», компании добились успеха менее чем за месяц работы друг с другом. С каждым бизнесом вводилась новая кожа. Это означало появление нового кармана как минимум каждые пять месяцев, что случалось нечасто, но в ходе бизнеса появлялось много карманов. Разрыв в бизнесе быстро увеличивался — пять месяцев между Bloodhound и Wildfire, и период между Wildfire и Hydra. Кульминацией застоя стал 2018 год — не было объявлено ни одного дела: Hydra закончилась в ноябре 2017 года, а сеть Sprint появилась только в ноябре 2019 года.CS: GO сообщество жило два года без операций. Это было связано с тем, что за это время разработчики изменили звук и графику CS: GO, перешли на новую версию и исправили огромное количество ошибок. Времени на операцию не было. Если бы на тот момент игра работала на Source 2, Operation Split Net могла бы выйти гораздо раньше. Стоит также отметить, что соревновательный маппер не обновлялся с начала 2018 года, и это начинает сильно утомлять участников обоих любительских этапов Counter-Strike.

Как уже упоминалось выше, карта не получала никакой существенной информации в течение почти двух лет, поскольку внести изменения очень сложно. Переход на Source 2 исправляет это, и CS:GO получает значительные обновления чаще, чем новые скины и мелодии агентов.

Оцените статью
emugame.ru