About
About this port
Rogue Survivor is a 2012 C#/Windows Forms game by Jacques Ruiz (roguedjack). Rogue Survivor Reloaded is a browser port of it: the same game, rewritten in TypeScript against a canvas instead of a GDI surface.
The original needs Windows and the .NET 3.5 runtime, and its
System.Drawing drawing code has no browser equivalent. Rather than
rewrite the game, the port replaces the three things that cannot survive a
browser and leaves the rules alone, so the behaviour you get is the
behaviour the original had.
How the port works
The original draws straight to a GDI surface, blocks on WinForms message loops and
reads Keys.D0-style key codes. All of that is replaced. The game rules,
the map generators, the AI and the item and skill tables are a direct port, kept
line-for-line comparable to the C#.
| In the original | In the port |
|---|---|
IRogueUI |
web/src/engine/IRogueUI.ts — the rendering and input contract |
WinForms canvas in RogueForm |
web/src/ui/CanvasUI.ts — Canvas 2D |
Blocking UI_WaitKey / UI_PeekKey |
Promises fed by web/src/ui/InputHandler.ts |
Application.DoEvents() busy-wait loops |
await plus the real DOM event loop |
System.Drawing |
Point / Rect / Color in web/src/engine/ |
| CSV resource files | JSON tables in web/src/gameplay/data/ |
| PNG sprites, MP3 audio | Lossless WebP sprites, Ogg audio |
Under the hood
Technology
- TypeScript 5
- Vite 5 for the dev server and the bundle
- Canvas 2D
- Web Audio API for music and sound
- Vitest for the test suite
- Neutralino for the optional desktop build
- Express for the optional production server
- Node 20 or newer
Display
- 1366×768 (16:9), the original was 1024×768 (4:3)
- 27 tiles across instead of 21, and a 498 px sidebar instead of 286
- Two text sizes: a 10 pt HUD and 12 pt menus, both up from the original's 8.25 pt, which lands near 11 device px on a HiDPI panel
- 2× map zoom on + and -, for when 27 tiles is not close enough
- Offscreen districts keep simulating without you
- Installable as a PWA, and playable offline
Credits
Programming, graphics and music - the original game
Jacques Ruiz (roguedjack), 2010–2018.
| Programming | C# .NET 3.5, Microsoft Visual Studio Community 2017 |
| Graphics software | Inkscape, Paint.NET |
| Sound & music software | GuitarPro 7, Audacity |
| Sound samples | sound-fishing.net, soundsnap.com |
| Blog | roguesurvivor.blogspot.com |
| Forum | roguesurvivor.proboards.com |
“Thanks to the players for their feedback and eagerness to die!”
Programming - Rogue Survivor: Still Alive
Mark Pryor (MP) wrote the fork whose extra rules, buildings, 711 sprites and audio
this port merges. Those files are also where a large part of the sprite and sound
library came from, and the fork states in its own CREDITS.txt that
every one of them is either public domain (CC0) or CC-BY 3.0 and every one has been
modified, so the artists and sound designers named there are owed the credit,
and it is reproduced in the game's own Credits screen.
| Programming | roguesurvivor.proboards.com/user/180 |
| Source | gitlab.com/RogueSurvivor-StillAlive |
| Images | opengameart.org |
| Sounds | freesound.org, pixabay.com |
Programming, sprite styles and fixes - this port
By Taislin. The rules engine, the browser runtime, the first-person view, the merged content tables and the sprite-style option are the port's own work.
Sprite styles
Pickable in Options › (Gfx) Sprite Style. Two are fan mods of Rogue Survivor made for it and released to its community; both artists are credited by name, and both packs are credited as CC-BY. Nothing about them was commissioned, and neither artist is affiliated with this port.
| Style | Artist | Source |
|---|---|---|
classic |
Jacques Ruiz (roguedjack) | The original game's own artwork |
deonapocalypse v9 r1 |
Deon | “DEONAPOCALYPSE” Rogue Survivor mod 1.2, dffd.bay12games.com |
genesis classic 1.4 |
Deon | “Genesis Classic” Rogue Survivor mod 1.4, dffd.bay12games.com |
dafttiles b1 |
daftigod | “Daft Tiles”, Rogue Survivor fan forum |
The three mod packs incorporate further work by other people - the Daft Tiles pack says so of itself - and are redistributed here as they were published.
License
The original game and this port are both covered by the GNU General Public License v3, inherited from the original project. The full text is in LICENSE.txt.
Game text, manual, artwork and music © Jacques Ruiz. This repository is a port of that work and is not affiliated with or endorsed by the original author. If you redistribute the game or this site, keep the credits and the license intact.