Разработчикам

Начало разработки модов для Geode

Руководство по разработке модов на Geode SDK. Настройка окружения, создание первого мода, основные концепции.

💡
Для кого это руководство? Это руководство предназначено для разработчиков с базовыми знаниями C++. Если вы не знакомы с C++, рекомендуется сначала изучить основы.

Настройка среды разработки

Windows

1

Установка Visual Studio

Скачайте и установите Visual Studio 2022 (Community версия бесплатна).

При установке выберите рабочую нагрузку "Разработка классических приложений на C++".

2

Установка CMake

Скачайте и установите CMake (3.20+).

При установке выберите "Добавить в системный PATH".

macOS

1

Установка зависимостей

Используйте 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"

Создание первого мода

1

Создание проекта через CLI

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

geode new my-first-mod

Это создаст проект мода с базовой структурой.

2

Структура проекта

Созданный проект имеет следующую структуру:

my-first-mod/
├── CMakeLists.txt        # Конфигурация сборки CMake
├── mod.json              # Метаданные мода
└── src/
    └── main.cpp          # Основной файл кода
3

Написание кода

Откройте src/main.cpp, вы увидите базовый шаблон мода:

#include <Geode/Geode.hpp>

using namespace geode::prelude;

$on_mod(Loaded) {
    log::info("My first mod loaded!");
}

Макрос $on_mod(Loaded) определяет код, выполняемый при загрузке мода. Это простейший хук — вывод сообщения в лог при загрузке мода.

4

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

Используйте 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, выводя сообщение в лог при смерти игрока.

Дополнительные ресурсы