Genjutsu Engine is a game engine framework developed by Walter Pease in 2022 as a custom engine layer built on top of GameMaker. It is designed as a reusable internal foundation for multiple projects, providing modern engine architecture, flexible rendering systems, ECS-based runtime behavior, and improved development structure beyond GameMaker's default workflows.
Type: Game engine framework
Developer: Walter Pease
Founded: 2022
Built on: GameMaker
Current version: 0.0.5
Status: Active, in ongoing development
License: Private / planned for future public release
Genjutsu Engine was created to make working in GameMaker feel closer to an industry-standard engine environment. Although GameMaker provides the low-level application shell, Genjutsu Engine replaces or abstracts much of the normal project structure with a more deliberate runtime architecture based on services, managed assets, and an entity component system.
The engine is intended to support a wide range of game projects rather than a single title. While it began as game code written for Shinobi Drop, it was later separated and maintained as a general-purpose framework for many future games.
Although it is currently focused primarily on 2D development, the engine also supports some simple 3D functionality.
Development on Genjutsu Engine began in 2022. The earliest form of the engine was not originally conceived as a standalone framework, but rather as project-specific code written directly inside Shinobi Drop. Over time, that code was extracted, generalized, and reorganized into its own reusable engine layer.
Several major architectural milestones shaped the engine's development:
As of its current internal development state, the engine is versioned and sits at 0.0.5.
Genjutsu Engine was built in response to what its developer saw as major limitations in GameMaker. These included:
Its primary goal is to provide a stronger architectural foundation for game development while still retaining the benefits of GameMaker as a low-level runtime platform.
The engine was initially designed around the needs of Shinobi Drop, but from the beginning it was intended to become a multi-use engine capable of supporting many kinds of games.
Genjutsu Engine is structured around a hybrid architecture:
At runtime, a single GameMaker game object creates an instance of the engine's Game Manager. All relevant GameMaker object events defer into this manager, which acts as the main entry point to the application. From there, engine systems are coordinated internally rather than through ordinary GameMaker object logic.
The engine makes use of:
This means Genjutsu Engine both layers on top of GameMaker and partially replaces normal GameMaker development patterns with a more centralized and extensible structure.
The engine is built from user-registered services that define runtime resources and behavior. These services form the main organizational structure of the engine and allow systems to be plugged into the application in a controlled way.
Genjutsu Engine includes asset managers and repositories for engine-managed content. Managed asset categories currently include:
Top-level systems are service-based, while individual managed resources derive from a base asset type appropriate to their category.
All top-level GameMaker object events are passed into the engine and propagated downward as needed. This allows the engine to maintain its own lifecycle flow rather than relying entirely on ad hoc GameMaker object event code.
Genjutsu Engine is intended to handle most core game responsibilities while relying on GameMaker only for a limited set of lower-level functions such as drawing surfaces, audio playback, and top-level lifecycle hooks.
The engine currently includes:
Genjutsu Engine supports:
A major part of the engine is its entity component system and entity manager. Entities can include motion components and collider components, allowing simple AABB collision and more reusable gameplay behavior than conventional hard-coded object logic.
Graphics components include animation systems, and events are deeply integrated across the engine as a communication and trigger mechanism between systems and objects.
The engine's save and load behavior is described as functioning similarly to an MVC application. It also includes a view manager that fills a role similar to scenes.
One of Genjutsu Engine's defining features is its custom render pipeline, which the developer considers especially unique and powerful. It is designed for extreme flexibility and fine-grained control over what is drawn, when it is drawn, and how rendering steps are composed.
The render pipeline can be extended to arbitrary size and is intended to give the user unusually strong control over rendering flow compared with standard GameMaker workflows. It is also built to support pixel-perfect rendering by default while remaining flexible enough for more advanced visual needs.
The engine includes support for:
Although most of the rendering pipeline is custom, GameMaker is still used underneath to manage surfaces, invoke shaders, and perform actual draw calls.
Genjutsu Engine uses the Dojutsu Framework for UI rendering rather than embedding all UI systems directly into the engine itself.
The engine also works alongside several related tools and systems:
Genjutsu Engine also includes backend data services using a repository pattern for reading, writing, and managing content data.
Its CI/CD pipeline is separate from the engine rather than embedded directly in it.
Networking support is planned but not yet complete. The intended long-term design is peer-to-peer rollback networking.
Although networking is important to future engine development, it was not the original reason the engine was created, nor was it built specifically for Shinobi Drop. It remains one of the major unfinished areas of the framework.
Genjutsu Engine is primarily intended for:
It is currently less suitable for:
The central design philosophy of Genjutsu Engine is to make developing in GameMaker feel more like working in a modern, structured, industry-standard environment.
The engine prioritizes:
It accepts some performance tradeoffs in exchange for greater power and flexibility out of the box.
Although it is especially well aligned with Bit Crush's retro-inspired design goals, it is intended to be broad enough to support many kinds of games rather than only retro platform fighters.
As currently developed, the engine's main limitations include:
These are among the most likely parts of the engine to change as development continues.
Genjutsu Engine is intended for use across multiple Bit Crush projects. Known projects associated with it include:
Genjutsu Engine is currently private, but its developer intends to release or sell it publicly once it reaches a more stable state. It is described as active and in ongoing development.
Although players interact with it only indirectly through games at present, the long-term goal is for other users to eventually build games with it directly.
For its developer, Genjutsu Engine has also served as a major learning project. Building it provided significant insight into how games function internally, as well as practical experience with architecture, systems design, and development practices.
This article is based on developer-provided information.