Back
NO HOPE
Ungraded · College / Gap Year

What is No Hope?

No Hope title screen // 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.

  • First ever fully completable C# project — built solo from scratch
  • ~2,750 lines of C# using Spectre Console for styled terminal output
  • Turn-based combat with 5 enemy types, each with distinct stats and drops
  • Unique Maniac Meter and Fear Meter mechanics that affect combat outcomes
  • In-game store system powered by a Raindrops currency earned from enemies
  • Environmental hazards: Lightning Strikes and Contaminated Raindrops events
  • Served as the direct conceptual foundation for Into the Shadows

Turn-Based Combat

Turn-based combat UI // 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.

  • Wolf — howls audibly when HP drops low; the game's most common encounter.
  • Skunk — sprays gas on attack, passively increasing the player's Fear Meter as a secondary effect.
  • Honeybadger — can be bribed with meat to avoid combat entirely; a resource management decision.
  • Mutated Rat — low HP but inflicts a poison status; requires fast resolution to avoid DoT stacking.
  • Grizzly Bear — very high HP, causes Bleed on hit; the toughest non-boss encounter in the game.

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.

Navigation & Location System

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.

Status Systems & RNG Events

No Hope layered several status systems that became the foundation for Into the Shadows' more refined approach:

  • Maniac Meter — fills with each enemy defeat. When full, grants a 1.5× damage multiplier for 15 seconds, then resets.
  • Fear Meter — rises passively the longer the player stays away from the starting house. At maximum, it imposes HP and damage penalties and introduces a random chance to flee — restarting from the nearest safe point.
  • Lightning Strike — a random environmental event that stuns either the player or an enemy and deals bonus damage. Entirely RNG-driven, no counterplay.
  • Contaminated Raindrops — a subset of the currency that can't be spent until decontaminated. Decontamination costs a small amount of clean Raindrops — a currency drain mechanic.
  • Store — a purchasable items system using Raindrops as currency.
  • RNG Events — miscellaneous random triggers. Example: eating too much chocolate in the game's store could trigger a "Lactose Intolerant" debuff, reducing combat effectiveness.

What Went Wrong (And What It Built)

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.

Key lesson Shipping a broken but completable game is still shipping. The bugs exposed exactly where the architecture needed to be rethought — and that thinking became Into the Shadows.

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.