



Overview
// No Hope — title / main screen
No Hope is a C# text-based console RPG built during college and the following gap year — the earliest version of what later became Into the Shadows. It runs entirely in the terminal, rendered with Spectre Console, with no graphics, no audio engine, and no external assets beyond code.
The premise: an isolated man in a forest has lost his family. A storm warning forces him to reach the nearest telephone booth. Currency isn't gold or experience — it's Raindrops, squeezed from defeated enemies. The world has its own internal logic, which was the point of the exercise.
By the developer's own description, it was "a broken mess" — completable, but riddled with bugs. It is included here not as a polished product but as honest documentation of the starting point, before the same concept was rebuilt and pushed to its limit a year later.
Battle System
// Combat screen — turn-based battle UI
Combat is fully turn-based, displayed as a live text loop in the console. Each encounter involves HP tracking, attack resolution, and enemy-specific behaviours layered on top of the core loop.
The level-up system feeds directly into combat — raising base stats and unlocking improved attack thresholds. A VS2022 debugger screenshot in the gallery captures the battle loop live: call stack visible, HP values tracked in the output pane.
Game World
The world is a grid of named text locations — Forest 1A, Forest 2A, Outdoor zones — navigated via directional text prompts ("Move Right / Move Down"). Each location has its own encounter table and may contain interactable objects or puzzle elements.
The 4-number combination lock puzzle (code: 4-1-0-9) in Forest 2A unlocks a crossbow — an optional weapon that changes combat options in subsequent encounters. Puzzles are simple but deliberate; they exist to gate progression and reward exploration.
Mechanics
No Hope layered several status systems that became the foundation for Into the Shadows' more refined approach:
Challenges & Lessons
No Hope was written at college level, with no prior experience building anything of this scope in C#. The codebase reached approximately 2,750 lines before the project was set down — and it showed. Bugs existed throughout, some significant enough to alter intended gameplay flow without manifesting as crashes.
The Fear Meter and Maniac Meter were the two systems that worked closest to intention. They introduced asymmetric pressure — the player had both a reward for aggressive play and a mounting penalty for staying in the world too long — which gave the game its tonal identity even in rough form.
Spectre Console, the .NET rendering library used to style the terminal output, was the first time the project felt like a product rather than coursework. Coloured output and structured console layouts turned plain text into something visually legible — a lesson about perceived polish that transferred directly to the next project.