Языки скрипта¶
В этом уроке вы получите обзор доступных языков скриптов в Godot. Вы узнаете о плюсах и минусах каждого варианта. В следующей части вы напишете свой первый скрипт, используя GDScript.
Скрипты присоединяются к узлу и расширяют его поведение. Это означает, что скрипты наследуют все функции и свойства узла, к которому они присоединяются.
For example, take a game where a Camera2D node follows a ship. The Camera2D node follows its parent by default. Imagine you want the camera to shake when the player takes damage. As this feature is not built into Godot, you would attach a script to the Camera2D node and code the shake.
Доступные языки скрипта¶
Godot offers five gameplay programming languages: GDScript, C#, VisualScript, and, via its GDNative technology, C and C++. There are more community-supported languages , but these are the official ones.
Вы можете использовать несколько языков в одном проекте. Например, работая в команде, вы можете писать логику игрового процесса на GDScript, так как он быстро пишется, позволить дизайнерам уровней писать сценарии заданий в графическом языке VisualScript, и использовать C# или C++ для написания сложных алгоритмов, максимизирования производительность. Вам решать.
Мы предоставляем такую гибкость, чтобы отвечать потребностям разработчиков и разных игровых проектов.
` В Godot 4.0 из ядра будет убрана поддержка VisualScript.`__Так, создание новых проектов с использованием визуального программирования не рекомендуется. В будущем VisualScript может быть интегрирован в Godot 4.x только как расширение.
Пока что Godot 3.x поддерживает VisualScript, но рекомендуется использовать GDScript , особенно если планируется дальнейший переход проекта на Godot 4.
Какой из них мне следует использовать?¶
Если вы новичок, мы рекомендуем начать с GDScript. Мы создали этот язык специально для Godot и нужд разработчиков. Он имеет лёгкий и простой синтаксис и предоставляет наиболее плотную интеграцию с Godot.
For C#, you will need an external code editor like VSCode or Visual Studio. While C# support is now mature, you will find fewer learning resources for it compared to GDScript. That’s why we recommend C# mainly to users who already have experience with the language.
Давайте посмотрим свойства и особенности каждого языка, а также его плюсы и минусы.
GDScript код¶
GDScript — объектно-ориентированный и императивный язык программирования, созданный для Godot. Сделан от и для разработчиков игр, чтобы уменьшить затрачиваемое время на программирование игр. В его особенности входят:
- Простой синтаксис, который приводит к созданию маленьких по объёму файлов.
- Молниеносная компиляция и загрузка.
- Тесная интеграция редактора, с завершением кода для узлов, сигналов и дополнительной информации из сцены, к которой он прикреплен.
- Встроенные типы векторов и преобразований, что делает его эффективным для интенсивного использования линейной алгебры, так необходимых для игр.
- Supports multiple threads as efficiently as statically typed languages.
- Нет сборщика мусора, поскольку эта функция в конечном итоге мешает при создании игр. По умолчанию движок считает ссылки и управляет памятью за вас в большинстве случаев, но вы также можете управлять памятью, если вам это необходимо.
- Последовательная типизация. Переменные по умолчанию имеют динамическую типизацию, но вы также можете подсказки типов для сильной проверки типов.
GDScript похож на Python, поскольку вы структурируете свои блоки кода с помощью отступов, но на практике он работает иначе. Он вдохновлён несколькими языками, включая Squirrel, Lua и Python.
Почему не использовать сразу Python или Lua?
Много лет назад Godot использовал Python, затем Lua. Интеграция обоих языков требовала много работы и имела серьёзные ограничения. Например, поддержка потоков была большой проблемой в Python.
Разработка отдельного языка не требует от нас больше работы, и мы можем приспособить его к потребностям разработчиков игр. Сейчас мы работаем над оптимизацией производительности и функциями, которые было бы сложно предложить на сторонних языках.
.NET / C#¶
Поскольку Microsoft C# является любимцем среди разработчиков игр, мы добавили официальную поддержку для него. C# — это сформировавшийся и гибкий язык с огромным количеством готовых библиотек, для него написанных. Его поддержка была добавлена благодаря щедрому пожертвованию от Microsoft.
C# предлагает превосходный компромисс между производительностью и простотой использования, но вы должны помнить о его сборщике мусора.
Вы должны использовать версию Mono редактора Godot, чтобы писать на C#. Вы можете загрузить его на странице загрузки.
Поскольку Godot использует среду выполнения Mono.NET, теоретически любая сторонняя библиотека .NET или программная платформа может использоваться для написания скриптов в Godot, так же как любой CLR-совместимый язык программирования, такой как F#, Boo или ClojureCLR. Однако, на практике C# является единственным официально поддерживаемым .NET вариантом.
Код на GDScript выполняется не так быстро, как скомпилированный С++ или C#. Однако, большинство кода вызывает функции внутри движка, написанные на C++ с использованием быстрых алгоритмов. В большинстве случаев, при написании игровой логики, между языками GDScript, C#, или C++ нет значительного отличия в производительности.
VisualScript¶
` В Godot 4.0 из ядра будет убрана поддержка VisualScript.`__Так, создание новых проектов с использованием визуального программирования не рекомендуется. В будущем VisualScript может быть интегрирован в Godot 4.x только как расширение.
Пока что Godot 3.x поддерживает VisualScript, но рекомендуется использовать GDScript , особенно если планируется дальнейший переход проекта на Godot 4.
Визуальный Сценарий — это визуальный язык программирования на основе блоков, в котором вы эти блоки соединяете в логику. Это может быть отличным инструментом для людей, далеких от программирования, таких как игровые дизайнеры и художники.
You can use other languages to create custom blocks that are specific to your game, for example, to script AIs, quests, or dialogues. That’s where the strength of VisualScript lies.
Хоть это и предоставляет все необходимые базовые блоки для создания полноценной игры, мы не рекомендуем использовать VisualScript таким образом. Так как он медленней чем другие языки программирования.
C и C++ через GDNative¶
GDNative позволяет писать игровой код на C или C++ без необходимости перекомпиляции или даже перезапуска Godot.
Вы можете использовать любую версию языка или смешивать марки/бренды и версии компиляторов для сгенерированных общих библиотек, благодаря использованию нами внутреннего C API Bridge.
GDNative is the best choice for performance. You don’t need to use it throughout an entire game, as you can write other parts in GDScript, C#, or VisualScript.
Во время работы с GDNative, доступные типы, функции, и свойства очень близки к API C++ движка Godot.
Подведение итогов¶
Скрипты ‐ это файлы, содержащие код, которые вы прикрепляете к узлу, для расширения его функционала.
Godot официально поддерживает пять языков для написания скриптов, предоставляя гибкий выбор между удобством и производительностью.
Вы можете смешивать языки, например, для создания ресурсоёмких алгоритмов на C или C++, а для всей остальной игровой логики использовать GDScript или C#.
© Copyright 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0). Revision f157c0ca .
Уроки и ресурсы¶
Здесь находится список сторонних уроков и интернет-ресурсов от сообщества Godot. Имейте в виду, что существует официальная библиотека ресурсов (Godot Asset Library), в которой тоже много полезных ресурсов! Также взгляните на этот огромный список от Reddit.
Думаете, чего-то не хватает? Как и всегда, вы можете отправить Pull Request.
С чего начать¶
Видеоуроки по Godot от GDQuest, Game from Scratch и KidsCanCode положительно оценены сообществом и часто рекомендуются как хорошие вступительные уроки для начинающих.
Если вас интересует визуальный скриптинг, то, возможно, стоит посмотреть уроки от Emilio.
Если вам интересно полноценное обучение программированию на GDScript в Godot, хорошим местом для начала будет Youtube-канал Godot Tutorials `_ .
GDQuest’s Learn GDScript From Zero is a free and open source interactive tutorial for absolute beginners to learn to program with Godot’s GDScript language. It is available as a desktop application or in the browser.
Некоторые из ниже упомянутых уроков затрагивают и более продвинутые темы, такие как 3D или шейдеры.
Видео-уроки¶
- Godot Tutorials (2D, GDScript, Основы Программирования).
- Emilio (2D, GDScript и VisualScript).
- FinePointCGI (2D, 3D, GDScript and C#).
- GDQuest (2D и 3D, GDScript, VisualScript и C#).
- Game Development Center (2D, networked multiplayer, GDScript).
- Game Endeavor (2D, GDScript).
- Game from Scratch (2D и 3D, GDScript и C#).
- HeartBeast (2D, GDScript).
- KidsCanCode (2D и 3D, GDScript и VisualScript).
- Mister Taft Creates (2D, GDScript).
- Miziziziz (2D and 3D, GDScript).
- P1X / Krzysztof Jankowski (3D).
- Pigdev (2D, GDScript).
- Steincodes (2D, GDScript и VisualScript).
- TheBuffED (2D, GDScript).
- Code with Tom (2D и 3D, GDScript).
- BornCG (2D и 3D, GDScript).
- Gonkee (2D and 3D, GDScript, Shaders).
- TheGuideKnight (2D, GDScript).
- GDScript Dude (GDScript).
- Garbaj (3D, GDScript).
- Kasper Frandsen (3D, Shaders).
Текстовые уроки¶
- Веб-сайт FinepointCGI от Mitch
- Веб-сайт GDScript Эндрю Уилкиса
- Godot Рецепты от KidsCanCode
- Стейнкоды
Дневники разработчиков¶
Ресурсы¶
© Copyright 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0). Revision f157c0ca .