WakeToHell/README.md
2025-06-14 17:42:01 -04:00

8.2 KiB

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, and the game is designed as such to give de-facto freedom as well (low hardware demands, readable code).
  • Completely anti-commercial. No microtransactions, advertising, codes of conduct or other capitalist burdens here, it already gives us enough of a headache.
  • Very low hardware demands; only needs a CPU and a fair amount of KBs in RAM and storage. TODO: test specs
  • Programmed for portability, so far was ported to:
    • GNU/Linux SDL2
    • Window$ SDL2
    • SmallAbstractFish
  • Has no build system and is usually compilable with just one compiler run.
  • Only uses fixed-point math, which is good for platforms without an FPU.
  • 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.
  • Minimal dependencies; external dependencies like file I/O or rendering are optional. malloc is completely absent. Not even the C standard library (outside of stdint.h) is needed.
  • Readable, documented code to make hacking and studying easier.
  • Has PURE SOUL, with (almost) genuine oldschool design in mind. The game is much closer to being an actual 90s game than it is an imitation.
  • Has cats!

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)

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 issues

Currently (as of May 26, 2025) the game is still in development. There's still some issues that need to be ironed out.

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?
  • When using stairs, Lukifer's animation can freeze until he walks.
    • Issue was with the reverse animation holding the animation frame down. Maybe try finding a better solution.

Mishaps

  • (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.
  • The looping-around code for The Endless Streets is likely suboptimal, specifically with how big the range is. It may not work on 16-bit computers.
    • WTH_SUBPOS is 8, 3600 * 8 is well within 16-bit int bounds, maybe it works?
  • Lower WTH_SUBPOS values than 8 can cause unintended effects. Find them and correct them.

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 other games or game engines, e.g. Anarch, Godot, Torque, or Allegro
  • 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
  • Use the game for education or demonstration

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.