Status: Foundational Architecture Completed
Tech Stack: C#, .NET 10, WPF (Windows Presentation Foundation), JSON/XML Data Parsing
This repository showcases a highly complex, data-driven RPG engine built entirely from scratch for the Windows Desktop environment. Rather than relying on a commercial game engine, I architected the core systems manually to master complex data binding, state management, and user interface decoupling.
- Strict MVVM Pattern: The engine strictly separates logic using the Model-View-ViewModel architecture. The backend data (
Models), the UI logic (ViewModels), and the visual layer (WPFUI) operate completely independently. - Factory Design Patterns: Engineered robust C# Factories (
ItemFactory,MonsterFactory,QuestFactory) to instantiate complex game objects dynamically at runtime. - Data-Driven Design: Game data (locations, stats, items, recipes) is decoupled from the compiled code and loaded dynamically via JSON and XML parsing, allowing for scalable content expansion without touching core logic.
- Event-Driven Combat & Logic: Utilized C#
EventArgsand custom Event Handlers to manage complex interactions like combat calculations, level-ups, and inventory management asynchronously. - Persistent Memory States: Engineered a Save/Load service that serializes the complex
GameStateinto persistent data structures.
This project was a massive undertaking in system architecture. It heavily exercises advanced C# features, strict interface implementation, dependency management, and Desktop UI data-binding—proving readiness for enterprise-level desktop application development.
Because this engine is built using a strict MVVM architecture, the solution contains multiple decoupled projects (Models, ViewModels, Core, Services, and UI).
- Clone this repository to your local machine.
- Ensure you have Visual Studio installed with the .NET Desktop Development workload, alongside the .NET 10 SDK.
- Open the
G00DS0ULRPG.slnx(or.sln) file in Visual Studio. - Crucial Step: In the Solution Explorer, right-click on the
WPFUIproject and select "Set as Startup Project". - Press
F5or click Start to build the solution. The engine will dynamically load the JSON/XML game data and launch the Desktop UI!