Dev Log 3: Parallax in Motion

Part I — A New Dimension for 2D

In just a few days, RetroEngine took a major step forward. The engine can now render true 2D parallax scenes, built entirely on its custom DirectX 12 renderer and running through the same HDR signal path as the 3D stage.

This isn’t just a visual feature. It’s the first proof that RetroEngine’s rendering core can support a full 2D pipeline — modular, efficient, and deeply tied into the CRT simulation. Every pixel is treated as light, not color data, which means the behavior of the image is physically modeled from input to glass.

Part II — Inside the Sprite Renderer

The new SpriteRenderer2D runs directly on the engine’s HDR target. Each layer in the scene is defined through a SpriteLayer structure that holds a texture reference, a parallax ratio, and GPU descriptors for rendering.

Layers scroll independently and wrap seamlessly, creating the classic multi-plane effect seen in SNES and Genesis games. A lightweight SpriteCamera manages motion, while the renderer handles batching, alpha blending, and synchronization with the CRT pipeline. Everything is built to scale: future sprites, UI, and full 2D levels will use this same system. The focus here wasn't so much on the art, but the underlying systems. To that end, I got some quick test art in to proof it all out.

Part III — The Soul of Retro

Seeing the scene finally scroll was a moment of clarity. The layers drift across the screen with natural parallax, moving through the same simulated phosphor glow that defines the 3D render path. There’s something timeless about it, the same illusion of depth that once made pixel art feel infinite.

This milestone was hard-earned. Debugging, testing, and refining the DirectX 12 state transitions took time, but the payoff was worth it. For the first time, RetroEngine doesn’t just render an image. It renders motion.

Closing Thoughts

The addition of SpriteRenderer2D transforms RetroEngine into a hybrid system, equally capable of handling 3D environments and 2D scenes within the same physically simulated pipeline. This modular foundation sets the stage for everything ahead: an editor, layered worlds, and full gameplay systems rendered through CRT glass.

Next up: starting the process of the first editor features. No more hard-coded tests, instead I want to be able to start configuring things through a user-facing editor.