nuRCADE, formerly known as WinRayCast, stands for New (nu) Raycasting Classic Arcade Development Engine. It is a retro-style pseudo-3D engine and game development platform inspired by early 1990s first-person shooters such as Wolfenstein 3D.
At its core, nuRCADE uses a classic raycasting pipeline. The game world is represented as a two-dimensional grid map, and each column of the screen is rendered by casting a ray into that map, detecting wall intersections, and drawing the corresponding textured wall slice. The result is a convincing first-person environment created without polygonal meshes or a conventional 3D rendering pipeline.
On top of this rendering foundation, nuRCADE provides the mechanics and tools needed to build complete retro FPS experiences. Games can be assembled from reusable data and assets, including maps, textures, animated sprites, enemies, weapons, doors, keys, pickups, triggers, scripted behaviours, sound effects, and configurable game rules.
From MS-DOS to Modern Systems
The project has its roots in the 1990s, when I developed its first version for MS-DOS using C/C++ and Intel 386 assembly. At the time, efficient memory access, carefully optimized inner loops, and strict resource management were essential. Raycasting was ideally suited to that generation of hardware, offering a compelling 3D-like experience with limited processing power and memory.
The technique became relevant again with the arrival of early mobile devices. Although these systems were not always suitable for GPU-intensive 3D engines, many had enough CPU power and RAM to run optimized pseudo-3D renderers based on the same principles used by classic FPS games.
nuRCADE was later recreated as a programming tutorial for Computer Programming, a well-known Italian magazine published during the 1990s and 2000s. The engine and its underlying ideas were presented in a 2007 article exploring pseudo-3D rendering and the raycasting algorithms used by early first-person shooters.
A Retro FPS Game Generator
nuRCADE is not intended to compete with modern polygonal 3D engines. Its purpose is to explore and preserve the techniques of old-school game development: fast software rendering, grid-based levels, textured walls, sprite projection, simple visual effects, and compact gameplay systems.
Rather than being tied to a single game, nuRCADE is evolving into a small retro FPS game generator. Different games can be created by changing their data, assets, maps, and rules instead of rewriting the engine. This makes it suitable for experiments, prototypes, educational demonstrations, and nostalgic indie-style projects.
The project is part of a broader interest in retro programming: studying how earlier engines worked, recreating their techniques, and making them accessible through modern tools. Its architecture is intentionally approachable and educational, allowing programmers to understand pseudo-3D rendering and gameplay systems from the inside.
The nuRCADE World Editor
The project includes a dedicated world editor, developed in C#, for creating and modifying the digital worlds used by the engine.
The editor can be used to define:
Grid-based maps and layered environments
Wall textures and visual properties
Sprites, objects, enemies, and pickups
Weapons, doors, keys, and interactions
Triggers and gameplay behaviours
External images, sounds, and other assets
World definitions are exported as structured JSON files, while graphics, textures, sprites, sound effects, and other resources remain external and reusable.
This content-driven architecture turns nuRCADE into more than a standalone renderer. It provides a compact development environment in which new FPS-style games can be assembled primarily through data and assets.
Integration with nuBASIC
A version of the nuRCADE engine is also integrated into the Windows edition of the nuBASIC interpreter, bringing pseudo-3D raycasting to a retro-inspired programming language environment.
This integration makes it possible to control rendering, gameplay, movement, interactions, and game logic directly from nuBASIC programs. It combines the accessible and educational character of BASIC programming with the visual impact of a classic raycasting engine.
Together, nuRCADE and nuBASIC offer a practical way to study the ideas behind early FPS technology while using them to build new interactive worlds.