RandomGamemodeEverywhere — ゲームモードをランダム化するGeodeプラグイン

Other

概要

RandomGamemodeEverywhereは、Geometry Dashのレベル内ギミックに対して「どこでもランダムにゲームモードを変える」ことを目的とした軽量なGeodeプラグインです。既存のギミックやトリガーが発火する箇所に介入して、プレイヤーの挙動や視覚効果に影響するモード(例えば重力、ミニ化、飛行など)をランダムに入れ替えることで、レベルの予測不能性とリプレイ価値を高めます。リポジトリはC++で記述され、Geode SDK向けのビルド設定(CMakeLists.txt)を含みます。READMEには協力者へのクレジットや、無限再帰のバグ修正に関する言及があり、デバッグを通じて安定性が改善されたことが読み取れます。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 4
  • ファイル数: 10
  • メインの言語: C++

主な特徴

  • Geometry Dash向けのGeodeプラグインとして実装されたC++コードベース。
  • レベル内ギミックの発火箇所に介入し、ゲームモードをランダム化する設計。
  • 小規模でシンプルな構成(CMakeによるビルド設定と数ファイルで構成)。
  • デバッグ履歴あり(無限再帰の修正など、安定化への取り組みが確認できる)。

技術的なポイント

このプロジェクトはGeode SDKを前提としたC++プラグインで、ゲームの内部処理へフックを設けることでランダム化を実現しています。具体的には、レベルギミックやトリガーが実行される際の関数(イベントコールバックやモード切替処理)に介入し、元の挙動を呼び出す前後や代替実行のタイミングでモード変更を挟むことで、意図的にゲームモードを差し替えます。ランダム化の実装では乱数生成が必要になりますが、再現性やデバッグを考慮してシード管理や発生条件の制御が設けられている可能性が高いです。

READMEの記述から、初期実装で「無限再帰」が発生していたことがわかり、これはフック先の関数が自身を再度トリガーしてしまうケースに起因します。これを避けるためには「フラグによる再入防止」や「オリジナル関数への直接呼び出し(トランポリンやオリジナルポインタ保存)」といった手法が用いられます。さらに、Geode環境上ではスレッドやレンダリングタイミングの考慮が必要なため、状態変更はメインスレッドで行い、必要に応じてフレーム境界での同期を取る設計が望まれます。

ビルドはCMakeLists.txtで管理され、Geode向けのビルド設定(ライブラリリンク、ヘッダ配置、出力先のプラグインフォルダ構成)を記述していると考えられます。ライセンスファイルが含まれているため、配布や改変条件が明示されており、他の mod と組み合わせる際の互換性チェックや衝突回避が必要です。総じて「軽量で実験的なモッド」として、既存ギミックの上書きや変形を行うためのフック設計、低レベルAPIの扱い、安定化のための再帰防止・同期の取り扱いが主要な技術ポイントとなっています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • CMakeLists.txt: file
  • LICENSE: file
  • README.md: file

…他 5 ファイル

(ファイル群にはソースコード(.cpp/.hpp)、ビルド設定、メタ情報、サンプル/リソースが含まれていると思われます)

まとめ

Geometry Dashのプレイ体験を予測不能にするための小規模だが面白いGeodeプラグイン。拡張や安定化の余地がある実験的プロジェクト。

リポジトリ情報:

READMEの抜粋:

RandomGamemodeEverywhere

Randomize gamemodes everywhere!

Based on level gimmicks pioneered by GD Quasar and popularized by KUAAA and the Globed mod.

Huge thanks to TheBearodactyl for debugging my accidental infinite recursion. Thanks to hiimjasmine00 for finding some much-needed function calls.

Mod idea suggested by CaptainHasLoaded.

This [Geode mod](https://geode-sdk.o