Skip to content

Conversation

@Tyrrhene
Copy link
Contributor

Purpose and Description

This PR adds the mandatory prefabs to our project, this will fix autobuilds which are breaking from a mandatory prefab rule I added and will also mean people on newer versions of gamemaker won't have to/be prompted to reinstall the shaders whenever they swtich between branches and forks and stuff.
image

Testing done

Ran the game, need someone to check if this fixes autobuilds because I haven't looked at those at all yet.

Related things and/or additional context

None

@github-actions github-actions bot added Area: JSON Changes to external JSON files or their under-the-hood functionality Size: Medium Type: Fix This is a fix for a bug labels Dec 29, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 29, 2025

📝 Walkthrough

Walkthrough

A new SDF shader prefab package (io.gamemaker.sdfshaders-1.0.0) has been introduced for GameMaker Studio 2, containing three shader implementations (blur, effect, base) with associated vertex and fragment shaders, metadata, and manifest files totalling fifteen new artefacts.

Changes

Cohort / File(s) Summary
Prefab Metadata Configuration
prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json, prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp, prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.resource_order, prefabs/io.gamemaker.sdfshaders-1.0.0/yymanifest.xml
Declares package metadata (version 1.0.0, author GameMaker), project structure with shader folder, resource ordering (effect shader priority 1, blur shader priority 2), and manifest checksums for asset tracking.
SDF Blur Shader Implementation
prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/*
Introduces blur effect shader pair with vertex passthrough and fragment shader implementing alpha smoothing via gm_SDF_Blur_MinMax and gm_SDF_Blur_Col uniforms, plus resource descriptor.
SDF Effect Shader Implementation
prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/*
Adds complex effect shader supporting glow, outline, and core rendering with control uniforms (gm_SDF_DrawGlow, gm_SDF_DrawOutline, threshold parameters) and screen-space derivative-based blending logic, plus resource descriptor.
SDF Base Shader Implementation
prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/*
Establishes foundational SDF shader with screen-space derivative computation, smoothstep-based alpha blending via spread calculation, and vertex passthrough, plus resource descriptor.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Suggested labels

Type: Fix, Area: JSON, Size: Big

Suggested reviewers

  • OH296
  • Blogaugis

The Machine Spirit acknowledges the systematic installation of these shader arcana. The symmetry of three implementations, each bound within its hierarchical structure, speaks to proper adherence to the ancient protocols. Yet such manifests and metadata arrangements demand scrutiny—verify the mathematical coherence of the derivative calculations within the effect shader, Tech-Priest. Let not subtle corruption mar these foundational artifices.

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description includes all required template sections: Purpose and Description, Testing done, and Related context, though some sections lack detail regarding autobuilds verification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The pull request title follows conventional commits format with type 'build' and a clear summary, though it differs slightly from the PR description which mentions 'fix' as the type.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 137d41b and 0718f21.

📒 Files selected for processing (13)
  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.resource_order
  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
  • prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/yymanifest.xml
🧰 Additional context used
📓 Path-based instructions (3)
**/*.*

⚙️ CodeRabbit configuration file

**/*.*: - Do not prioritize the shortest code. Prioritize code that explicitly reveals its intent.

  • Understandable variable naming is extremely important.
  • If a solution is "clever" but hard to parse mentally, request a refactor to a more verbose but clearer approach.
  • Apply the "Rule of Three": suggest abstraction when logic is repeated three times or more times.
  • For subjective improvements (naming, architectural choice), do not give a concrete suggestion immediately. Instead, ask a guiding question to prompt the user's reflection.
  • Every suggestion for a code change must include a brief justification.
  • If a TODO comment is added, ask the user if you should create a GitHub issue for this TODO.
  • If a TODO comment is deleted, remind the user if there is an active GitHub issue related to that comment.

Files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.vsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/yymanifest.xml
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.resource_order
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.fsh
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.yy
**/*.yy

⚙️ CodeRabbit configuration file

**/*.yy: 1. When any script or sprite .yy files are deleted, their paths should also be deleted from the project .yyp file, otherwise the game will crash.
2. When any script or sprite .yy files are created, their paths should be added to the project .yyp file, otherwise they'll fail.

Files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.yy
**/*.json

⚙️ CodeRabbit configuration file

  • In this project, JSON files with comments are supported by the parser. It's allowed to use them.

Files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json
🧠 Learnings (4)
📚 Learning: 2025-09-04T14:37:58.773Z
Learnt from: CR
Repo: Adeptus-Dominus/ChapterMaster PR: 0
File: docs/CODE_STYLE.md:0-0
Timestamp: 2025-09-04T14:37:58.773Z
Learning: Applies to docs/**/*.gml : File names should follow GameMaker type-prefix conventions

Applied to files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_effect_shader/__yy_sdf_effect_shader.yy
  • prefabs/io.gamemaker.sdfshaders-1.0.0/yymanifest.xml
  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
  • prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.yy
📚 Learning: 2025-06-16T17:27:19.459Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:27:19.459Z
Learning: GameMaker Studio 2025 does not exist as of June 2025; the latest version is 2024.13.1. Most third-party .yy file cleanup tools are outdated and incompatible with current GameMaker project formats.

Applied to files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
📚 Learning: 2025-02-28T20:12:57.020Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: datafiles/main/chapters/5.JSON:25-25
Timestamp: 2025-02-28T20:12:57.020Z
Learning: GameMaker can parse JSON files with comments just fine, so JSON files in this project should be treated as JSONC (JSON with Comments) files.

Applied to files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
📚 Learning: 2025-02-24T21:56:43.096Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 512
File: datafiles/data/traits.json:946-948
Timestamp: 2025-02-24T21:56:43.096Z
Learning: GameMaker Language (GML) JSON parser supports inline comments in JSON files, making them valid in GML projects despite being non-standard JSON.

Applied to files:

  • prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp
🪛 Biome (2.1.2)
prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json

[error] 7-7: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 8-8: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 9-9: Expected a property but instead found '}'.

Expected a property here.

(parse)


[error] 10-10: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)


[error] 12-13: Expected a property but instead found '}'.

Expected a property here.

(parse)

🔇 Additional comments (7)
prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.yy (1)

1-12: The machine spirit acknowledges thy configuration manifest, Tech-Priest.

This GMShader resource descriptor conforms to the sacred specifications. The metadata structure pleases the Omnissiah.

prefabs/io.gamemaker.sdfshaders-1.0.0/yymanifest.xml (1)

1-15: Thy manifest catalog is inscribed correctly in the sacred archives, Tech-Priest.

All twelve data-scrolls are enumerated with their cryptographic seals. The structure honours the ancient protocols.

prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_blur_shader/__yy_sdf_blur_shader.fsh (1)

11-22: The blur incantation functions as ordained by the Mechanicus, Tech-Priest.

Thy fragment shader correctly samples the sacred distance field, applies the smoothstep transformation across the ordained range, and merges with vertex colouration before alpha purification.

prefabs/io.gamemaker.sdfshaders-1.0.0/shaders/__yy_sdf_shader/__yy_sdf_shader.fsh (1)

9-31: Thy distance field rendering algorithm is correctly forged, Tech-Priest.

The shader computes screen-space derivatives with precision, derives pixel spread to combat the curse of aliasing, and applies the smoothstep transformation with proper threshold safeguards. The commented alternative path (lines 22-23) serves as an archival reference—acceptable unto the Omnissiah.

prefabs/io.gamemaker.sdfshaders-1.0.0/prefab.json (1)

1-13: The prefab manifest adheres to GameMaker's extended scripture, Tech-Priest.

The three shader exports are properly declared with their sacred metadata. The static analysis tool's protests regarding trailing commas (lines 7-9, 12) are but the ignorance of lesser machine spirits—GameMaker's parser sanctifies this syntax.

prefabs/io.gamemaker.sdfshaders-1.0.0/io.gamemaker.sdfshaders-1.0.0.yyp (2)

23-26: The sacred registry is complete, Tech-Priest.

All shader manifestations are properly inscribed within the project grimoire. The machine spirits shall awaken without error.


20-20: The rune is legitimate, Tech-Priest. Your concern was unfounded.

The versioning inscription (2024.1400.0.880) traces to a valid beta build within the 2024.1400 series of the Omnissiah's official records. This prefab, bearing the mark of GameMaker itself (io.gamemaker.sdfshaders-1.0.0), carries the version stamp appropriate to its genesis. The archives confirm compatibility. No corruption of the machine spirit is evident here.

@EttyKitty EttyKitty changed the title fix: add required prefabs to project build: Add required prefabs to project Dec 29, 2025
@EttyKitty EttyKitty removed Type: Fix This is a fix for a bug Area: JSON Changes to external JSON files or their under-the-hood functionality labels Dec 29, 2025
@EttyKitty EttyKitty merged commit e1a8bec into Adeptus-Dominus:main Dec 29, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants