Настройка среды разработки
Windows
Установка Visual Studio
Скачайте и установите Visual Studio 2022 (Community версия бесплатна).
При установке выберите рабочую нагрузку "Разработка классических приложений на C++".
Установка CMake
Скачайте и установите CMake (3.20+).
При установке выберите "Добавить в системный PATH".
macOS
Установка зависимостей
Используйте Homebrew для установки необходимых инструментов:
brew install cmake ninja Убедитесь, что установлены Xcode Command Line Tools:
xcode-select --install Получение Geode SDK
Клонируйте репозиторий Geode SDK:
git clone https://github.com/geode-sdk/geode.git
cd geode Настройте переменные окружения:
# Windows (PowerShell)
$env:GEODE_SDK = "path/to/geode"
# macOS/Linux
export GEODE_SDK="path/to/geode" Создание первого мода
Создание проекта через CLI
Geode предоставляет инструмент командной строки для быстрого создания проекта мода:
geode new my-first-mod Это создаст проект мода с базовой структурой.
Структура проекта
Созданный проект имеет следующую структуру:
my-first-mod/
├── CMakeLists.txt # Конфигурация сборки CMake
├── mod.json # Метаданные мода
└── src/
└── main.cpp # Основной файл кода Написание кода
Откройте src/main.cpp, вы увидите базовый шаблон мода:
#include <Geode/Geode.hpp>
using namespace geode::prelude;
$on_mod(Loaded) {
log::info("My first mod loaded!");
}
Макрос $on_mod(Loaded) определяет код, выполняемый при загрузке мода.
Это простейший хук — вывод сообщения в лог при загрузке мода.
Сборка и тестирование
Используйте CMake для сборки проекта:
mkdir build && cd build
cmake ..
cmake --build .
После успешной сборки скопируйте сгенерированный файл .geode в директорию модов GD:
# Windows
%LocalAppData%/GeometryDash/geode/mods/
# macOS
~/Library/Application Support/GeometryDash/geode/mods/ Запустите GD и убедитесь, что ваш мод загрузился в интерфейсе Geode.
Конфигурация mod.json
mod.json — файл метаданных мода, содержащий следующие обязательные свойства:
| Свойство | Описание | Пример |
|---|---|---|
geode | Требуемая версия Geode SDK | "4.0.0" |
id | Уникальный идентификатор мода | "com.example.my-mod" |
version | Версия мода | "v1.0.0" |
name | Отображаемое имя мода | "My First Mod" |
developer | Имя разработчика | "Your Name" |
description | Описание мода | "A simple example mod" |
Механизм хуков
Хуки — ключевая функция Geode, позволяющая вставлять пользовательский код до и после выполнения игровых функций.
Используйте макрос $modify для определения хуков:
#include <Geode/Geode.hpp>
using namespace geode::prelude;
class $modify(MyPlayerHook, PlayerObject) {
void playerDestroyed(bool p0) {
// Выполнение пользовательского кода при смерти игрока
log::info("Player destroyed!");
PlayerObject::playerDestroyed(p0);
}
};
Этот пример хукает функцию PlayerObject::playerDestroyed,
выводя сообщение в лог при смерти игрока.
Дополнительные ресурсы
- Официальная документация Geode — полный справочник по API
- GitHub организация — исходный код и примеры
- Discord сообщество разработчиков — помощь и обсуждения
- Handbook серия руководств — пошаговое обучение