/undying-dusk

The very first PDF video game

Primary LanguagePython

Pull Requests Welcome build status GPL v3 license

Title

Undying Dusk is a video game in PDF format, with a gameplay based on exploration and logic puzzles, in the tradition of dungeon crawlers.

The game is set in a fantasy realm where a curse set by the Empress keeps the world in an eternal dusk. You play a woman who recently found shelter in an eerie monastery.

It features:

  • ~ 200 000 PDF pages
  • retro aesthetics: 160x120 resolution & a 16 colors palette
  • a grid-based world with 50+ distinct tiles & 10 maps to explore
  • more than 30 treasure items, weapons & spells to pick up in order to face 15 enemy monsters
  • 20 music tracks
  • thousands of "Game Over" pages, and a single path to victory
  • 4 hidden secrets & a concealed epilogue
  • an online hall of fame

It was made during the summer of 2020 by Lucas Cimon. To my knowledge, this is the very first video game in a PDF format.

Dedicated SubReddit

Table of contents:

Trailer GIFs

GIF trailer #1

GIF trailer #2

Download

Download the game on itch.io.

Release notes: CHANGELOG.md

For Windows gamers

There is ZIP archive you can download for every version on the GitHub Releases page: it contains the PDF game and the Sumatra PDF reader program.

Once the ZIP content is extracted in a folder, you just have to double-click on the LAUNCH_UNDYING_DUSK_IN_SUMATRA.bat file to start the game.

This will allow you to play with the PDF reader that is best compatible with the game, without installing it globally on your computer.

Compatible PDF readers

You will find below a comparison table of how well several PDF readers wil let you play to Undying Dusk. Notably, Adobe Acrobat Reader does not perform well to render the game.

PDF reader: /Criteria Sumatra PDF MuPDF Xpdf FoxIt Adobe Acrobat llpp Chrome native Firefox native (PDF.js) Javelin3 Slim Utopia Okular
can load the game ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
no visual artifact ✔️ 🤔 ✔️ ✔️ ☹️ ✔️ ✔️ ✔️ ✔️
follow links ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
fast nav / ok page render time ✔️ ✔️ 🤔 ✔️ ☹️ ✔️ ☹️ - - - - 🤔
ALT+🡄 "back" key binding ✔️
backspace also works
t must be used instead ✔️ ✔️ ✔️ ✔️ ? ? ? Alt+Shift+🡄 instead; remappable
"back" history size 50 256 49 31 unlimited 49 ? ? ? 99

We only recommend PDF readers that meet all of the above criteria.

Questions & edits on this table are welcome through issues & Pull Requests.

Credits & attribution

Heroine Dusk

Undying Dusk is basically a PDF port / total conversion of Clint Bellanger wonderful Heroine Dusk game, with different game mechanics & slightly expanded.

I cannot thank him enough for providing the foundations of this game, under a GPL v3 / CC-BY-SA 3.0 license: high quality Javascript source code of a retro dungeon-crawler game engine, and numerous gorgeous visual assets of tiles, enemies & items. Thank you Clint!

Graphical assets

First of all, this game uses the great 16 color palette made by DawnBringer at PixelJoint.

This game also makes use of the following assets, some of which I ported to the DawnBringer palette:

All the OpenGameAssets have been gathered in this collection.

Fonts

The Boxy Bold font was made by Clint Bellanger for Heroine Dusk.

It was packaged into a .ttf file by William Thompson and released in the public domain, with lowercase letters added.

However this .ttf file has many minor differences with Clint Bellanger original font: it is monospaced, the character spacing is larger and the ", ', 1, 2, I, S, {, } & ~ characters are not rendered identically.

During the development of this game, 2 new fonts were created from William Thompson Boxy-Bold.ttf. Both are released into the public domain:

  • Boxy-Bold-Black.otf : an OpenType SVG font) allowing to preserve the black outline while changing the characters color. Sadly this kind of font cannot be embedded in a PDF, as of september 2020.
  • Boxy-Bold-Light.otf : a trimmed down variant of Boxy-Bold.ttf, that was used for an earlier prototype version of the game in order to add a "layer of color" on top of black characters.

Music

Songs used in the game :

They have all been collected in this collection on OGA.

Also, this game was mostly coded while listening to Lance's Dark Mood Party Mixes (Trip Hop / Downtempo / Electronica / Chill Out): Vol 36 - Vol 42 - Vol 166 - Vol 190 - Vol 196 - Vol 219.

As well as Beat Therapy: #10 - A Trip Hop Mix - #13 - Jazzy_Trip Hop / Breakbeat & World Culture Mix - #30 - A Trip Hop Mix.

Playtesters

A huge THANK YOU to Henri Crouzet & Maxime Lemanach for their precious feedbacks!

Many thanks also to Thibault Toledano for the cheerful support and the bright suggestions of elements to include in the game!

Tools used

Build steps

git clone https://github.com/clintbellanger/heroine-dusk
pip install -r requirements.txt
./gen_pdf.py

To launch the original Heroine Dusk web version:

cd heroine-dusk/release/; python3 -m http.server 8888; cd -

License

The code for Undying Dusk is released under GPL v3 license, climate-strike BSD and The Hippocratic License 2.1. All other content created for the game (text, images...) is under CC-BY-SA 3.0 license.