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.
Table of contents:
Download the game on itch.io.
Release notes: CHANGELOG.md
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.
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.
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!
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 original art was made by Clint Bellanger for the original Heroine Dusk game - CC BY-SA 3.0
- enemies come from Redshrike remix of Heroine Dusk original ones. Seamus wizard, demon & gorgon portraits from his 6 More RPG Enemies spritesheet, black bird from his Tower Defense Prototyping Assets and blowfish from his 3 RPG enemy remixes - all CC BY-SA 3.0 Shadow soul extra frames come from Bosses and monsters spritesheets (Ars Notoria) by Balmer - CC BY 3.0
- most new sprites (direction arrow, items, tiles) come from the awesome Recolor all the items!!! spritesheet by Marcus Ihde - CC-BY-SA 3.0
- bible, fish & scroll 16x16 icons from Kyrise's Free 16x16 RPG Icon Pack - CC BY 4.0
- cloudy town, animated flying demon, prie-dieu, statue, wood box & well from GothicVania Patreon Collection, GothicVania Church assets, GothicVania Cemetery assets, GothicVania Town assets, Forest Background & Mountain at Dusk Background by Luis Zuno (@ansimuz) - public domain
- forest fringe & valley village backgrounds by trulio - CC BY 3.0
- !$dungeon Of Sorrow Gate & !$Secret Passage by Nicnubill
- portcullis from LPC castle by Evert - CC BY 3.0
- cauldron & fire from [LPC] Dungeon Elements by Sharm - CC BY 4.0
- Boulder pixel art by TdeLeeuw - CC BY-NC-SA 3.0
- portal by LetargicDev - CC0
- dead tree by JRob774 - CC BY 3.0
- health bar from Buch Golden UI - CC0
- torch on wall from Blackspire studio Medieval PixelArt assets
- small amulet & magnifying glass from DawnLike 16x16 Universal Rogue-like tileset by DragonDePlatino - CC BY 4.0
- distant castle background by jkjkke - CC BY 3.0
- palace hall & ruins background from CraftPix.net 2D Game Assets - OGA-BY 3.0
- Dominik portrait from Blarumyrran faceset 2-bit - CC0
- Seamus portrait from RPG portraits by Buch - CC0
- Monk from Oracle Portrait by Justin Nichol - CC BY-SA 3.0
- Monk portrait from Wizard by lylfDW - CC0
- small storm dragon by Sharm - CC BY 3.0
- open book by Min - CC0
- stump made from Snake on an old stump by Angry Amish - CC0
- hangman from Fantasy Tiles by surt - CC0
- Temple background by Ironthunder - CC BY 4.0
- boat from Mythical Ruins Tileset by voec - CC0
- knight from Dungeon Crawl 32x32 tiles - CC0
- other knight from 2d Lost Garden Zelda style tiles resized to 32x32 with additions by Daniel Cook, Jetrel, Saphy (TMW), Zabin, Bertram - CC BY 3.0
- small mimics from Chest and Mimic by IndigoFenix - CC BY 3.0
- blood splat by PWL - CC BY 3.0
- Rose Flower by Lovecraft - CC0
- fish-on-a-stick & hand mirror from 496 pixel art icons for medieval/fantasy RPG by Henrique Lazarini (7Soul1) - CC0
- knight & skeleton portrait from 32x32 Fantasy portrait set by CobraLad - CC BY 3.0
- explosion from Lots of free 2d tiles and sprites by Hyptosis - CC BY 3.0
- SNES JRPG Background: Snowy Village by Inkerrio
- attacks SFXs from Dungeon Crawl Stone Soup - CC0
- gorgon's staff downscaled from Staff by LordNeo - CC0
- castle & tree on historical map from Karto tileset - CC BY 3.0
- small house on historical map from Micro Tileset - Overworld and Dungeon - OGA-BY 3.0
All the OpenGameAssets have been gathered in this collection.
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 ofBoxy-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.
Songs used in the game :
- M31 by Yubatake - CC BY 3.0
- A Darkness Opus, Audience, Caves of sorrow, Dark Hall, Full of memories, Insight, Journey to the East Rocks Mystery Forest, Mystical Theme & Treasures Of Ancient Dungeon 2 by Alexandr Zhelanov - CC BY 3.0
- 10 Mysteries of The Mechanical Prince by Tomasz Kucza (Magnesus) - CC BY 3.0
- Fantasy Music - Night Town by Angus Macnaughton - CC BY 4.0
- Dark Winds & Orchestral Looming Battle by Johan Jansen (Zefz) - CC BY 3.0
- Dark Descent, Defying Commodus, Heroic Demise, Soliloquy, Spiritwatcher & The Fall of Arcana by Matthew Pablo - CC BY 3.0
- Old Crypt by Janne Hanhisuanto - CC BY 3.0
- Walking with Poseidon by Marcus Rasseli - CC BY 3.0
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.
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!
- Python programming language
- Notepad++
- Sumatra PDF reader
- Firefox
- Gimp with a plugin to upscale sprites: gimp-plugin-pixel-art-scalers by bbbbbr and its Scale2X filter
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 -
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.