Пошаговый практический гид по созданию простого 2D-платформера на Godot 4.3: от установки редактора до экспорта сборки. Примерное время выполнения — 6–8 часов для новичка и 2–3 часа при базовых навыках.
0
Статья была полезной?
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…
Что вы изучите
Установите Godot 4.3 (релиз 2025) и подготовите проект для 2D.
Создадите персонажа на базе CharacterBody2D и реализуете управление движением и прыжком.
Настроите физику, столкновения через CollisionShape2D и TileMap.
Подготовите простую сцену уровня, анимацию и звуковые эффекты.
Экспортируете проект в HTML5 и в нативные сборки (Windows/Linux/macOS).
Получите список учебных ресурсов для дальнейшего роста.
Требования
Godot 4.3 (релиз 2025). AppImage на Linux, .dmg для macOS, .exe для Windows.
Операционная система: Ubuntu 22.04 LTS / Windows 10 64-bit / macOS 12 и новее.
ОЗУ: минимум 4 ГБ, рекомендуется 8 ГБ; CPU: 2 ядра, рекомендуется 4+ ядра.
Место на диске: минимум 500 МБ для проекта, экспортные шаблоны ~40–120 МБ в зависимости от платформы.
Рекомендуемые инструменты: текстовый редактор (VS Code 1.90, 2025), GIMP 2.10 (или Krita), Git для контроля версий.
Почему Godot?
Godot 4.3 (релиз 2025) предлагает унифицированный редактор для 2D и 3D, новый многоядерный движок физики и упрощённую систему сцен для быстрого прототипирования. Для 2D проектов Godot сохраняет малый размер редактора и простую интеграцию скриптов на GDScript, что позволяет сделать первую игру за один рабочий день.
Шаг 1: установка и проект
Команды и инструкции для Linux, macOS и Windows. Цель: получить рабочий редактор Godot 4.3 и создать новый проект "first_game" с 2D-шаблоном.
Linux (Ubuntu 22.04): скачайте AppImage, сделайте исполняемым и проверьте версию.
Ожидаемый результат: проект открыт, видны вкладки Scene, Inspector, FileSystem.
Типичная ошибка и фикс:
Ошибка: "Project path is not writable"
Фикс: проверьте права: chmod -R u+rw ~/projects/first_game или выберите другой каталог.
Скриншот окна установки Godot и создания проекта
Шаг 2: персонаж и движение
Создадим сцену Player.tscn с корневым узлом CharacterBody2D, добавим CollisionShape2D и Sprite2D, напишем GDScript для перемещения и прыжка.
Команды в редакторе (инструкции):
1. Scene -> New Scene -> выбрать CharacterBody2D и сохранить как res://scenes/Player.tscn
2. Добавить дочерние узлы: Sprite2D (импортируйте спрайт player.png), CollisionShape2D (RectangleShape2D)
3. Создать скрипт Player.gd на CharacterBody2D
Код скрипта (res://scripts/Player.gd):
extends CharacterBody2D
@export var speed: float = 240.0
@export var jump_velocity: float = -420.0
@export var gravity: float = 900.0
var velocity: Vector2 = Vector2.ZERO
func _physics_process(delta: float) -> void:
var input_dir := Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity.x = input_dir * speed
if not is_on_floor():
velocity.y += gravity * delta
else:
velocity.y = 0
if Input.is_action_just_pressed("ui_accept"):
velocity.y = jump_velocity
velocity = move_and_slide(velocity, Vector2.UP)
if Engine.is_editor_hint():
return
print("Player velocity:", velocity)
Ожидаемый вывод при тесте сцены (Console):
Player velocity: Vector2(120, 0)
Player velocity: Vector2(240, -416)
Типичная ошибка и фикс:
Ошибка: "Attempt to call nonexistent method 'move_and_slide'"
Фикс: В Godot 4 метод называется move_and_slide(), но для CharacterBody2D рекомендуется использовать move_and_slide() именно в 4.3. Убедитесь, что узел — CharacterBody2D, а не Node2D. Если ошибка сохраняется, пересоздайте узел и пересоздайте скрипт с тем же кодом.
Скорость и гравитацию экспортируйте как переменные (@export) для быстрой настройки в Inspector.
Скриншот сцены Player.tscn с узлами CharacterBody2D и инспектором
Шаг 3: физика и столкновения
Добавим уровни через TileMap и обеспечим правильные столкновения, слои физики и обработку столкновений с врагами и предметами.
Шаги в редакторе:
1. Scene -> New Scene -> TileMap, назначьте TileSet (импортируйте тайлсет tiles.png и настройте CollisionShape2D для тайлов)
2. Создайте узлы StaticBody2D/Area2D для врагов/монет
3. Убедитесь, что CollisionLayer/CollisionMask настроены: Player на layer 1, Environment на layer 2, Enemies на layer 3
Ошибка: "Signal not connected: area_entered"
Фикс: В редакторе выберите Area2D монеты, в Node -> Signals подключите signal "body_entered" или "area_entered" к Player или Game. Проверьте, что метод в коде имеет корректное имя и параметры.
Проверка столкновений (отладка):
func _physics_process(delta):
if is_on_floor():
# отладочная печать
print("On floor true")
Типичная ошибка и фикс:
Ошибка: "is_on_floor() всегда возвращает false"
Фикс: Убедитесь, что CollisionShape2D корректно настроен (RectangleShape2D с правильным offset), TileMap тайлы имеют CollisionShape2D и находятся на корректном слое. Проверьте, что у CharacterBody2D установлен правильный параметр 'Floor Snap Length' при необходимости.
Используйте TileMap для уровня: это уменьшает количество объектов и даёт высокий FPS даже на слабых машинах (тест на 2 ядрах/4 ГБ — стабильные 60 FPS на простых уровнях).
Шаг 4: экспорт
Экспортируем проект в HTML5 и нативные сборки. Покажу установку экспортных шаблонов и пример экспортного профиля для WebAssembly и Windows.
Установка экспортных шаблонов (в редакторе):
Project -> Install Export Templates -> нажмите Download and Install
Ожидаемый результат: шаблоны установлены, размер архива примерно 40–120 МБ в зависимости от платформы и ассетов. После установки в меню Export появятся пресеты HTML5, Windows Desktop, Linux/X11, macOS.
Типичная ошибка и фикс:
Ошибка: "Export templates not found"
Фикс: Перезапустите редактор после установки. Если ошибка сохраняется, скачайте шаблоны вручную с официального сервера Godot 4.3 и укажите путь в Preferences -> Export.
Ошибка: "emscripten not found" или "Cannot find WASM runtime"
Фикс: Убедитесь, что экспортные шаблоны установлены. Для ручной сборки WebAssembly установите Emscripten SDK (необязательно для стандартного экспорта через шаблоны). В большинстве случаев достаточно встроенных шаблонов Godot 4.3.
Экспорт для Windows:
1. Project -> Export -> Add -> Windows Desktop
2. Выберите 64-bit, путь builds/first_game_win64.exe
3. Нажмите Export Project
Ожидаемый вывод:
Export: Windows build succeeded: builds/first_game_win64.exe (size: ~12–20 MB без ассетов в зависимости от статических библиотек)
Типичная ошибка и фикс:
Ошибка: "Missing debug symbols" (только предупреждение)
Фикс: Это предупреждение можно игнорировать для релизной сборки. Для уменьшения размера используйте опцию "Strip" в профиле экспорта.
Советы по минификации и размерам:
Для Web: минимальный пакет сборки с простыми ассетами — примерно 1.5–4 MB (сжатие и оптимизация текстур сильно влияют).
Для десктопа: ~8–30 MB в зависимости от платформы и того, включаете ли вы динамические библиотеки.
Какие ресурсы для изучения?
Официальная документация Godot 4.3 (2025) — полный справочник по GDScript и API.
Godot Recipes и официальные демо-проекты — примеры готовых сцен и приёмов.
Канал автора уроков на YouTube: пошаговые туториалы по 2D для Godot 4.x.
Книги и статьи по дизайну уровней и оптимизации 2D-игр.
Топ-уроки — подборки полезных руководств по Godot и 2D.
Частые вопросы
Как начать, если я никогда не программировал раньше?
Начните с простого: создайте сцену с Sprite2D и CharacterBody2D, добавьте CollisionShape2D. Освойте базовые методы _physics_process() и move_and_slide(). GDScript синтаксис близок к Python — понятный и компактный. На первый день хватит: управление влево/вправо и прыжок. Сосредоточьтесь на Input Map и отладке через печать состояний. После этого добавьте TileMap и Area2D для предметов. Примеры из официальной документации помогут понять структуру проекта.
Что делать, если игра тормозит на слабом устройстве?
Проверьте следующее: используйте TileMap вместо отдельных StaticBody2D для тайлов, ограничьте количество draw calls уменьшением слоёв, оптимизируйте текстуры — используйте сжатие и меньшие размеры. Отключите отладочные принты в релизной сборке. В Project Settings уменьшите частоту physics ticks, если допустимо. Замерьте профайлером Godot точки нагрузки (Rendering, Physics, Scripts) и оптимизируйте узлы, которые используют много времени CPU.
Почему не работают сигналы при столкновениях?
Чаще всего причина в неверном типе сигнала или несоответствии узлов. Area2D использует сигнал body_entered/area_entered; StaticBody2D не эмитит area_entered. Проверьте, что CollisionShape2D активен и не имеет disabled=true, узлы находятся на пересекающихся слоях физики, и сигналы подключены в редакторе или через код (connect()). Дополнительно проверьте order of nodes и то, что объекты не находятся в режиме Monitoring=false.
Сколько времени займёт довести прототип до полной игры?
Прототип 2D платформера (игровой цикл, базовая механика, один уровень) можно собрать за 1–2 дня при знакомстве с Godot. Доведение до релизного состояния с оптимизацией, несколькими уровнями, системой сохранений и меню может занять от нескольких недель до нескольких месяцев в зависимости от объёма контента и опытности команды. Для одиночного разработчика на полный релиз лучше рассчитывать минимум 2–3 месяца.
Какой минимальный размер проекта после экспорта?
Минимальная итоговая сборка сильно зависит от ассетов и экспортных шаблонов. Для HTML5 с минимальными ассетами можно получить пакет ~1.5–4 МБ. Десктоп-сборки обычно находятся в диапазоне 8–30 МБ без дополнительных ассетов. Чтобы уменьшить размер, используйте компрессию текстур, strip для бинарников и удаляйте ненужные ресурсы из проекта перед экспортом.
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…