Super Mario Clone


A Modular 2D Platformer Built on a Reusable C++ Engine

Super Mario Clone is a modern C++ platforming application built using Engine Interface and the SFML Engine Backend. Rather than focusing on recreating a complete commercial game, the project reimplements the platform simulation systems originally developed for the AI Game Controller project within a reusable engine architecture.

The project serves as both a standalone platforming application and the foundation for the next generation of the AI Game Controller, allowing autonomous agents to be integrated as reusable modules rather than remaining tightly coupled to a single application.


The Engineering Problem

The original AI Game Controller combined platform simulation and artificial intelligence within the same project, making the gameplay environment difficult to reuse independently of the AI systems.

Super Mario Clone addresses this by rebuilding the platform simulation as a dedicated application layer above the reusable engine architecture. The challenge is to create a modular platforming framework that cleanly separates gameplay mechanics, world simulation, physics, animation and scene management from future AI implementations.

This separation allows intelligent controllers to be attached to the project without modifying the core platform systems while also allowing the platform simulation to evolve independently from the AI architecture.

My Role

I designed and implemented the platforming framework, developing the gameplay systems, player controller, physics, collision handling, animation systems, world management and application architecture that operate above the Engine Interface and SFML Engine Backend projects.

I am also establishing the architectural foundation for the redevelopment of the AI Game Controller as a reusable module. Once complete, this module will interact with the platform simulation through clearly defined interfaces rather than depending directly on application-specific classes.

The project remains under active development, with the current focus placed on rebuilding and validating the platform simulation before integrating the revised artificial intelligence systems.

Gameplay Demonstration

Title

Description.

Title

Description.

Title

Description.

Architecture Overview

Super Mario Clone forms the application layer of the wider architecture, consuming reusable services provided by the SFML Engine Backend through contracts defined by Engine Interface.

The application separates platform simulation into focused systems responsible for world management, character behaviour, physics, animation and gameplay logic while remaining independent from rendering and backend implementation.

The future AI Game Controller will be attached as an optional module above these systems, allowing autonomous controllers to observe the simulation, evaluate gameplay conditions and provide character input without becoming part of the platform implementation itself.

Core Gameplay Systems

The application is organised into three focused areas that combine reusable engine services with platform-specific behaviour. Each area maintains clear ownership of its responsibilities while supporting a modular simulation suitable for future AI integration.

World & Scene Management

Manages application states, gameplay scenes, level construction and object lifecycles. World systems organise terrain, entities, cameras and environmental objects while remaining independent from rendering, platform simulation and framework-specific services.

Platform Simulation

Implements character movement, gravity, jumping, collision detection/response and world interactions. Platform systems manage physics integration, grounded states and movement behaviour while remaining independent from rendering, scene management and animations.

Character & Animation Systems

Implements player state management, sprite animation, input-driven behaviour and gameplay feedback. Character systems coordinate animation, movement and interaction while remaining independent from world management, platform simulation and rendering services.

Together, these systems create a reusable platforming framework while preserving the architectural separation between gameplay logic, reusable engine services and backend implementation.

Engineering Principles

PrincipleApplication
Separation of ConcernsPlatform simulation, rendering, input, animation, world management and future AI behaviour are implemented as distinct responsibilities rather than being combined inside individual gameplay classes.
Dependency InversionApplication systems depend on contracts provided by Engine Interface rather than directly depending on SFML or backend-specific implementations.
Modular ArchitectureGameplay, engine integration and future AI functionality are organised as independent modules that can evolve without requiring widespread changes across the codebase.
Single ResponsibilityFocused systems manage specific behaviours such as movement, collision response, animation, level organisation and character control.
Reusable Engine IntegrationRendering, input, resources, timing and other framework services are consumed from the SFML Engine Backend rather than being recreated inside the application.
Interface-Driven DevelopmentStable interfaces define how application systems access engine services and will later define how AI controllers observe and interact with the platform simulation.
Composition Over CouplingGameplay behaviour is constructed by combining focused systems and components rather than relying on tightly coupled inheritance hierarchies or monolithic game objects.
ExtensibilityThe architecture is designed to support additional levels, character behaviours, environmental objects and controller implementations without restructuring the entire application.
Testable Simulation DesignSeparating simulation behaviour from rendering and direct input dependencies creates opportunities to test movement, physics and AI decisions independently.
Incremental DevelopmentThe platform simulation is being rebuilt and validated first, allowing the revised AI Game Controller to be introduced once the gameplay environment provides stable interaction contracts.

Key Design Decisions

Platform Simulation as a Standalone Application

The platforming systems are implemented independently of the AI Game Controller, allowing the gameplay environment to evolve separately while providing a reusable foundation for future autonomous agents.

Layered Engine Architecture

Gameplay systems remain within the application project while rendering, input, audio, resources and shared framework services continue to reside within the reusable engine layers.

Modular Character Systems

Movement, animation, collision handling and gameplay behaviour are implemented as focused systems with clearly defined responsibilities, reducing coupling between simulation components.

Shared Controller Interface

Character behaviour is being structured so that human input and future AI-generated input can operate through the same control pathway. This prevents AI behaviour from requiring a separate character implementation.

Future AI Integration

The application is designed so that intelligent controllers can later be introduced as interchangeable modules, enabling the AI Game Controller to become a reusable component rather than a standalone application.

Simulation Before Intelligence

The platform environment is being completed before the AI controller is rewritten. This ensures that the AI module will be designed against stable gameplay systems and clearly defined simulation data rather than inheriting the coupling of the original implementation.

Technologies

Development

C++ 20

Visual Studio 2022

Git

Git Submodules

Engineering Approach

Layered Architecture

Collision Management

Modular Gameplay Architecture

State-Driven Design

Scene Composition

Object Orientated Design

Platform Physics

Animation Systems

Modular Artificial Intelligence Integration

Separation of Concerns

Interface-Driven Development

Reusable Engine Integration

Development Roadmap

Platform Simulation

Reimplement and validate the movement, jumping, gravity, collision and environmental interaction systems previously contained within the AI Game Controller project.

Gameplay Framework

Develop the application states, scenes, world systems, character systems and animation architecture required to support a complete platform simulation.

Controller Abstraction

Establish a consistent control interface that can receive commands from human input, scripted behaviour or autonomous agents.

AI Game Controller Module

Rewrite the AI Game Controller as an independent submodule that can observe the platform environment, evaluate possible actions and control a character through the shared controller interface.

Integrated AI Platformer

Combine the completed platform simulation and modular AI controller to recreate and extend the functionality demonstrated by the original AI Game Controller project.

Engineering Outcome

Super Mario Clone demonstrates the ongoing development of a reusable platforming framework built upon a backend-agnostic C++ engine architecture.

By separating platform simulation from artificial intelligence, the project establishes a maintainable foundation that can support future gameplay features while enabling the AI Game Controller to be reintroduced as a reusable module rather than an application-specific implementation.

Although the project remains in development, its architecture already represents an important evolution from the original implementation. Platform mechanics, engine functionality and autonomous control are being divided into independent layers, creating a clearer and more extensible foundation for the completed system.

Application Gallery

Repository

Explore the source code to see how the architectural principles are implemented throughout the framework.