An indie personal RPG comedy project, paying comedic tribute to Toby Fox's classic Undertale.
nUndertale is a comedic parody inspired by Undertale. In the game, the player assumes the role of Grub the Fallen Gamer, who plummets into the forgotten underworld of Mt. Dew — a subterranean realm inhabited by eccentric internet tribes (Furries, Weeaboos, and Roleplayers).
Unlike the original game, losing all your HP in nUndertale does not simply destroy your soul: Grub succumbs to the surrounding "cringe" and undergoes a gradual metamorphosis into a furry! Your objective is to explore the Ruins, solve ridiculous puzzles, interact with eccentric characters, dodge meme bullets in retro bullet-hell encounters, and find your way back to your gaming PC.
- Disclaimer Screen: Nostalgic opening screen with smooth fade-in, authentic fonts (
monster_friend.otf,gomarice_shmup_in_the_zone.ttf), and clean personal indie project attribution (press Z or Enter to skip). - Intro Lore Sequence: 1:1 Undertale style slideshow across 10 cards (
lore1.bmpthroughlore9.bmp+ animated fall sequencelore10), chiptune soundtrack (Once Upon A Time Remix), and typewriter sound effects. - Main Title Screen: Authentic Undertale title font (
monster_friend_fore.otf), floating logo with red#emblem, random quotes, flashing[Press Z or Enter], and menu options with frog-soul selector. - Instruction Manual: Explains controls and the iconic rule: "When your HP is 0, you become a furry."
- Character Naming ("Name the fallen gamer"):
- Interactive 4x7 character matrix with subtle authentic pixel-jitter.
- Special buttons:
[PRO],[GAMER],[Backspace],[Done]. - Dynamic Easter Eggs with unique audio/visual reactions for:
CHAD(golden border),GRUB,GOBLIN,PEPE,SKYRIM,SANS,FRISK,CHARA,FLOWEY,TORIEL,ASGORE,RUIVA,LOIRA,OTOME,GOTICA,MORENA, repeated letters, and spamming limits. - Confirmation screen: "Are you sure about that?" with animated zooming name, PI angle jitter, and YES/NO choices.
- Overworld Exploration (Playable Test Level):
- Full 4-directional walking animations for Grub using the original spritesheet (
pepe_char.bmp) with magenta color-key transparency. - Virtual 640x480 retro canvas with pixel-perfect letterboxing on modern high-resolution displays.
- Sparkling animated Save Point: heals HP to 20/20, plays sound, and displays Determination text.
- Interactive signpost and Barky the Alpha Wolf NPC with typewriter dialogue box and sound bleeps.
- Northern exit doorway that triggers the battle encounter!
- Full 4-directional walking animations for Grub using the original spritesheet (
- Battle Encounter System:
- Turn-based parody combat against Barky the Alpha Wolf.
- Authentic Undertale menu actions:
[ FIGHT ],[ ACT ],[ ITEM ],[ MERCY ]. - Attack timing bar minigame for critical hits.
- Real-time bullet-hell dodge box: control the green soul to dodge cascading "UWU" bullets and bouncing Mountain Dew soda cans.
- Furry-meter and HP bar tracking.
The project was migrated from a legacy procedural singleton structure to Modern C++20 using the hardware-accelerated Raylib library:
- S (Single Responsibility Principle): Each subsystem (
AudioService,ResourceService,InputService,SceneManager,DialogBox,Player,BattleSystem) has one well-defined responsibility. - O (Open/Closed Principle): The
ISceneandIInteractableinterfaces allow adding new rooms, scenes, and mini-games without modifying the engine core loop. - L (Liskov Substitution Principle): All scenes (
DisclaimerScene,LoreScene,TitleScene,NameSelectScene,OverworldScene,BattleScene) are interchangeable and managed uniformly bySceneManager. - I (Interface Segregation Principle): Lightweight, focused abstract contracts (
IScene,IAudioService,IResourceService,IInputService,IInteractable). - D (Dependency Inversion Principle): High-level scenes depend upon abstractions provided by
GameContext, completely eliminating brittle global state and singletons.
| Key | Action |
|---|---|
| Arrow keys / W, A, S, D | Move Grub / Menu Navigation / Dodge in Battle Box |
| Z / Enter / Space | Confirm / Interact / Advance Dialogue / Attack |
| X / Shift | Cancel / Run / Backspace / Fast-forward text |
| C / Ctrl | Menu / Inventory |
| B | Quick battle encounter shortcut (in overworld) |
| Esc | Return to Previous Menu / Exit |
The project includes a portable GCC/G++ compiler and Raylib in the vendor/ directory, allowing clean native compilation without external dependencies or DLL hell:
.\build.bat.\nundertale_modern.exeFor full lore, character dialogue scripts, and design documentation, see ROTEIRO.md.
The canonical lore bible (world, cast, 30-minute structure, routes, endings, visual and audio direction) lives in docs/LORE.md.