К основному содержанию
правило

gamemaker-gml — правило для Cursor: что делает и как установить

Задаёт стандарты архитектуры и стиля GameMaker Language для проектов на GML. Помогает Cursor писать чистый игровой код без утечек памяти.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/gamemaker-gml.mdc
Открыть на GitHub

Что делает gamemaker-gml

Правило применяется к файлам с шаблонами **/*.gml, **/*.yy и **/*.yyp. Оно распределяет ответственность между событиями движка: инициализацию оставляет в Create, симуляцию — в Step, а графический вывод закрепляет за Draw.

Архитектура опирается на конечные автоматы для состояний сущностей, изоляцию сбора ввода от выполнения действий и пулинг объектов для частых снарядов. Регулярный поиск через instance_find и повторяющиеся проверки коллизий в каждом шаге запрещены для сохранения частоты кадров.

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

Какие задачи решает

  • разделить игровую симуляцию и отрисовку между событиями Step и Draw
  • предотвратить утечки памяти при создании динамических структур данных GML
  • настроить конечный автомат для состояний персонажа или интерфейса
  • заменить ресурсоёмкий поиск экземпляров через instance_find на кэширование

Примеры запросов агенту

  • Сделай конечный автомат для состояний патрулирования и погони врага на GML.
  • Оптимизируй спавн пуль, добавив пул объектов вместо постоянного создания экземпляров.
  • Проверь этот объект игрока и перенеси логику расчёта урона из события Draw в Step.

Как установить gamemaker-gml

Вручную: положить файлы

.cursor/rules/gamemaker-gml.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о gamemaker-gml

Как установить gamemaker-gml в Cursor?

Создайте файл .cursor/rules/gamemaker-gml.mdc в корне вашего проекта и скопируйте в него содержимое правила.

Что делает gamemaker-gml?

Инструктирует Cursor писать код на GML по стандартам GameMaker, разграничивать события объектов и оптимизировать горячие участки симуляции.

Почему правило запрещает код логики в событиях Draw?

Событие Draw выполняется исключительно для рендеринга. Расчёты внутри него снижают частоту кадров и вызывают сбои при рассинхронизации отрисовки.

Исходный текст

gamemaker-gml.mdc · CC0-1.0
---
description: GameMaker Language (GML) rules for scripts, objects, events, rooms, data structures, and performance-minded game code
globs: ["**/*.gml", "**/*.yy", "**/*.yyp"]
alwaysApply: false
---

# GameMaker GML Rules

## Code Organization

- Keep object event code short and move reusable behavior into scripts or functions.
- Use clear prefixes or naming conventions for scripts, objects, sprites, rooms, and globals.
- Prefer functions over copy-pasted event blocks.
- Keep create-step-draw responsibilities separate.
- Put initialization in Create, simulation in Step, and rendering-only work in Draw.

## GML Style

- Use descriptive variable names and avoid one-letter names outside small loops.
- Prefer local variables with `var` or function-scoped declarations over unnecessary instance variables.
- Use constants, enums, and macros for repeated identifiers, layer names, states, and collision groups.
- Guard optional instance references with `instance_exists`.
- Keep global state minimal and document it.

## Gameplay Architecture

- Use finite state machines for player, enemy, UI, and game-flow states.
- Keep collision logic explicit and deterministic.
- Separate input collection from action execution.
- Use alarms, timelines, or explicit timers consistently; do not mix patterns without reason.
- Store save data through structured maps/structs and version the save format.

## Performance

- Avoid expensive searches such as broad `instance_find` or repeated collision scans in every Step event.
- Cache frequently used asset IDs, layer IDs, and object references when safe.
- Destroy data structures when no longer needed.
- Use object pooling for frequent projectiles, particles, or short-lived effects when allocation becomes costly.
- Profile before optimizing and keep hot-path code simple.

## Debugging and Testing

- Add debug overlays for collision boxes, state, velocity, and AI decisions when useful.
- Use assertions or explicit guard clauses for impossible states.
- Test room transitions, pause/resume, save/load, and controller/keyboard input separately.
- Keep reproducible test rooms for complex mechanics.

## Common Mistakes

- Do not put game logic in Draw events.
- Do not create data structures without destroying them.
- Do not rely on room editor instance order for critical behavior.
- Do not hardcode magic numeric state IDs.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Всё по теме «Геймдев и 3D: Unity, Unreal, Godot, Blender» →

Из того же набора140

github-code-quality-cursorrules-prompt-file Набор ограничений для агента Cursor: он проверяет факты перед выводом, не тратит ответ на извинения и сводки, правит файлы по одному. ★ 41 024звёзд репо gitflow Задаёт правила ветвления Gitflow, формат коммитов Conventional Commits и порядок релизов для ИИ-ассистента в Cursor. ★ 41 024звёзд репо git-conventional-commit-messages Правило задаёт формат Conventional Commits для сообщений Git. Пригодится, когда агент готовит коммиты по типу изменения и области кода. ★ 41 024звёзд репо gherkin-style-testing-cursorrules-prompt-file Правило превращает технические тест-скрипты и ручные кейсы в Gherkin-сценарии на языке, понятном бизнесу и юристам. ★ 41 024звёзд репо fortran Правило задаёт стиль для современного Fortran: модули, типы, массивы, тесты и сборка. Оно пригодится при разработке научного кода в Cursor. ★ 41 024звёзд репо flutter-development-guidelines-cursorrules-prompt-file Задаёт структуру проекта, нейминг и стиль Dart для Flutter-приложений на MVVM с Riverpod. Пригодится, когда агент в Cursor разносит код по папкам как попало. ★ 41 024звёзд репо flutter-app-expert-cursorrules-prompt-file Настраивает Cursor на разработку мобильных приложений на Flutter 3.x с чистой архитектурой, BLoC и Material 3. Помогает держать единообразную структуру фич и тестов. ★ 41 024звёзд репо fastapi Правило задаёт практики для FastAPI-проектов на Python: структура, API, модели, база данных, безопасность и тесты. Подключается к файлам по glob-шаблонам. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой