Wolf
Howls audibly when HP drops low; the game's most common encounter.
A C# text-based console RPG rendered with Spectre Console — turn-based fights against forest wildlife, Raindrops as currency, and Fear and Maniac meters pulling in opposite directions. The earliest version of Into the Shadows.
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.
// No Hope — title / main screen
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.
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.
// Combat screen — turn-based battle UI
Howls audibly when HP drops low; the game's most common encounter.
Sprays gas on attack, passively increasing the player's Fear Meter as a secondary effect.
Can be bribed with meat to avoid combat entirely; a resource management decision.
Low HP but inflicts a poison status; requires fast resolution to avoid DoT stacking.
Very high HP, causes Bleed on hit; the toughest non-boss encounter in the game.
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.
> You are in Forest 2A. A 4-number combination lock is mounted to a wooden box. > Enter the combination: _
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.
// World navigation — location screen
No Hope layered several status systems that became the foundation for Into the Shadows' more refined approach:
// RNG event — status effect triggered
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.