A walking simulator / interactive story about a cat.
Find a file
blitzdoughnuts 65f5eb57ce Turn all sprites into BMPs, remove SDL2 Image as a dependency for the
SDL2 frontend, tidy up the Allegro frontend a bit, reduce the sample
rate of all sounds, remove legacy door sounds, rename SDL2 frontends
2025-05-20 22:29:18 -04:00
ASSETS Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
DOCS Give the title screen shading, fix some sprites, try incorporating some 2025-05-17 17:22:34 -04:00
mus Add some software rendering stuff, redo the * and 2 in the fontmap, move 2025-05-18 17:28:40 -04:00
scripts Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
sfx Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
sprites Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
.gitignore Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
constants.h Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
game.h Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
icon.png Update file icon.png 2023-05-20 02:49:13 +00:00
main_allegro.c Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
main_raylib.c Clean up some of the code, update frontends 2025-04-06 14:52:44 -04:00
main_saf.c Remove unnecessary images, update books a bit, add palette image, edit 2025-04-19 18:39:10 -04:00
main_sdl2.c Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
main_sdl2_software.c Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
make.sh Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
palette.h Add some software rendering stuff, redo the * and 2 in the fontmap, move 2025-05-18 17:28:40 -04:00
README.md Remove unnecessary images, update books a bit, add palette image, edit 2025-04-19 18:39:10 -04:00
readme_package.txt Give the title screen shading, fix some sprites, try incorporating some 2025-05-17 17:22:34 -04:00
renderer.h Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
saf_sprites.h Clean up some of the code, update frontends 2025-04-06 14:52:44 -04:00
settings.h Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
WTH_SaveGame.bin Turn all sprites into BMPs, remove SDL2 Image as a dependency for the 2025-05-20 22:29:18 -04:00
wthtool.c Clean up some of the code, update frontends 2025-04-06 14:52:44 -04:00

Wake to Hell

A walking simulator / interactive story about a cat who seems to be dealing with some strong issues... to say the least.

It's a public domain, free software game that puts you into the shoes of Lukifer Dredd, who must navigate his way through his day while having to put up with certain oddities across his area that seem to impede him. Meet your worries, meet your demons, meet yourself.

NOTE: This game is still in development! Things seen in these builds may change or be removed later, and not everything is in here. See the readme inside of game buids or readme_package.txt for controls.

Made with love and hatred by blitzdoughnuts, author of LUDICRITAL and professional lunatic.

Why This Game is Special (ft. Anarch)

  • Completely free (as in freedom)! Code and assets are CC0 (public domain) with an additional wavier of IP rights, see DOCS/LICENSES.txt for extra details.
  • Anti-commercial! No microtransactions, advertising, or capitalist intent here, it already gives us enough of a headache.
  • Game code is independent from the platforms, allowing for relatively easy porting! Current platforms include:
    • Window$ (tested: SDL2, Raylib)
    • GNU/Linux (tested: SDL2, Raylib, SAF)
  • Clean compilation! Just a C99 compiler, a handful of libraries, and optionally the make script are needed.
  • Uses ONLY integer math, to drop any floating point dependencies and to piss off sane programmers! :D
  • Low hardware demands! Sucklessly programmed to a high degree, hopefully most if not all code is optimal.
  • Made with free software! Vim (previously Notepad++) for code editing, LibreSprite for drawing, and the GNU and Tiny C compilers for GNU/Linux and Window$ respectively.
  • Contains psychological horror themes and, in tandem, borderline philosophical questions. Woohoo...
  • Has cats!
  • Kept simple, stupid! File I/O is not a dependency, the game is configurable in settings.h, it avoids overcomplicated methods as much as it can, and it is platform agnostic. Doesn't matter if you're on a PC or a bowl of oatmeal; just enjoy the damn game.

Much kudos to Anarch by drummyfish for this section's inspiration.

What the hell is this?

I made this game for a good reason: not only to exercise my storytelling capability and also to have an excuse to make a game entirely in C and (mainly) SDL2, but also to get out a message.

Honestly, it saddens me to see the current world where, on and outside of the Internet, there's a ton of stress and hecticity surrounding everything nowadays. Especially for people with aspergers, autism, or any form of neurodiversity or mental disorder, it's a double edged sword, even if you DON'T account for the shitfest that is the Internet. The workforce, for one, is an underlooked cause of stress. Not only is it hazardous in the obvious way, but also in the forced stress it puts on its employees with its manipulation tactics. Even our schools aren't safe.

I decided to vent this over to a tangible interactive medium, to hopefully make more people at least aware of the potential struggles that people in these times go through in social and personal terms, and otherwise provide something memorable in the form of a potentially gripping story. As the world is ever changing, probably for the worse, any nudge in the right direction counts.

tl;dr I'm crazy and I'm sad, so I made a game to say that.

Compiling

For compiling the SDL2 frontend of the game, you may type bash make.sh sdl on any GNU/Linux or *nix system or environment. You'll need the following: - GCC, TCC or some other C99-compliant C compiler - SDL2 (libsdl2-dev) - SDL2 Mixer (libsdl2-mixer-dev) - SDL2 Image (libsdl2-image-dev)

You can easily install these on Debian-based GNU/Linux systems with sudo apt-get install gcc libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev. Be sure to check settings.h to configure the game!

On Window$, you must have the respective .dll files in the same directory as the .exe to run the game! Keep this in mind when packaging the game, as well.

Known Bugs, Issues, and Mishaps

As the game is in development (0.3.1a as of writing), there's bound to be bugs and simple incompleteness around.

Bugs

  • RayLib and SAF are behind the SDL2 frontend, and have improper compatibility. May cause issues.
  • Some functions, e.g. sheeted sprite rendering, may have useless parameters.
    • Try precaching the size of the sprites when the game starts? Assume sprite sizes?
  • The keyboard status function on SDL2 always throws a warning due to the NULL given as a pointer parameter. May cause issues.
  • Fade doesn't respond to being turned off properly
  • The SDL2 version runs terribly on Wine.

Mishaps

  • The IDLE1 animation played in reverse loops erroneously.
  • (META) Maybe Wake to Hell isn't the best name for a libre game? I got the name from Hangover (Wake to Hell), a tracker song I was inspired by when making the game. I'm concerned that naming the game after this song would be infringing. I don't think "Wake to Hell" is trademarked, but still. It could be called "Lucid Nightmares" or something.
  • SDL2 SPECIFIC:
    • Demo playback might not find the EOF of the demo correctly
    • Demos don't account for things like game settings, player position and status, and game vars like the level and the Interactibles within.

What can be done with this?

Being free software, Wake to Hell has many more use cases than the average game. Here's some suggestion:

  • Play it, edit it, break it
  • Record it, (quick) review it
  • Improve in-game features
  • Add a level editor
  • Pretty up the game, or simplify it heavily
  • Add proper support for dynamic resolutions
  • Base your game off of WTH's codebase
  • Make an engine out of the game code that supports Wake to Hell data
  • Port to your favorite platform, e.g. Pokitto
  • Port the game to a different programming language, e.g. comun
  • Put Wake to Hell into Anarch (or vice versa)
  • Redraw the game's art
  • Remove or exaggerate the dreadful theme of the game
  • Add it to a package repository (Debian/Devuan/Trisquel, Arch, probably Flatpak)
  • Make the game 3D, bonus points for VR :)
  • Make frontends for the game with, e.g. SFML, X11 and PulseAudio, OpenGL, even bare-metal
  • Recreate the game on a different engine, like Godot, Torque, etc.
  • Use the game for education or demonstration
  • Remove any and all file I/O and piss off the normies lmao

Contributing

You don't.

Well not directly, anyways. You may point out bugs you've discovered, but pull requests/code merges will not be accepted, as I want this repository to compromise of only things I have made myself in the name of legal clarity.

Licensing

TL;DR everything here is CC0, solidified with a wavier of IP rights; do absolutely WHATEVER you want

Everything made by blitzdoughnuts in this repository, including but not limited to code, graphics, sound effects, story, and text strings are licensed and waived under either Creative Commons 0, alongside a full waiver of all rights, given below. For additional legal details, see DOCS/LICENSES.txt and DOCS/WAIVER.txt.

This work's goal is to never be encumbered by any exclusive intellectual property rights, it is intended to always stay completely and forever in the public domain, available for any use whatsoever.

I therefore release everything in this repository under CC0 1.0 (public domain, https://creativecommons.org/publicdomain/zero/1.0/) + a waiver of all other IP rights (including patents), which is as follows:

Each contributor to this work agrees that they waive any exclusive rights, including but not limited to copyright, patents, trademark, trade dress, industrial design, plant varieties and trade secrets, to any and all ideas, concepts, processes, discoveries, improvements and inventions conceived, discovered, made, designed, researched or developed by the contributor either solely or jointly with others, which relate to this work or result from this work. Should any waiver of such right be judged legally invalid or ineffective under applicable law, the contributor hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to this right.