Disguiser (2021 7DRL)
Sneak into mansions, map them, steal all the loot and escape! Coffee-break turn-based stealth inspired by Looking Glass Studios' Thief games. The randomly-generated mansions are loosely based on Chinese courtyard houses, with symmetry, enclosed gardens, and a public-to-private gradient from the entrance northward.
When guards give chase, run diagonally around corners to gain distance (not unlike Pac-Man) or leap out a window.
Cyan guards patrol the northern private quarters and gardens, although they may occasionally patrol through the southern public areas as well. Magenta guards are not allowed in the private wings of the house; they only patrol the public rooms. It is possible to find and wear cyan and/or magenta guard disguises. Guards are less suspicious of someone who looks like themselves. However, picking up loot, climbing on tables or into bushes, or diving into water, will raise suspicions.
This game is my 2021 7DRL entry. It starts from ThiefRL2 as a base and adds disguise mechanics. Guard awareness and behavior has been retuned somewhat as well. Written for web browsers in a combination of Rust and JavaScript. Source is on Github.
Status | Released |
Platforms | HTML5 |
Rating | Rated 4.2 out of 5 stars (11 total ratings) |
Author | James McNeill |
Genre | Strategy |
Tags | 2D, Seven Day Roguelike Challenge, Procedural Generation, Roguelike, Tactical, Turn-based |
Comments
Log in with itch.io to leave a comment.
Great game! Only the core of the basic fun of a roguelike of tracking and exploration remains.
Lots of fun, and I really like the art!
I wish there was a way to skip the tutorial levels once you've already played them.Whoops, I just found out that if you die during a run, the tutorial text doesn't show up the second time.I love Thief and I love roguelikes, so this is perfect. Hope you develop it further, since it does get a bit repetitive after a while. The thing most missing for me is variety in enemies and a lack of items that would give you variety of choices on how to handle a situation. If you aren't already aware of it, you could check out Harmonist, also a stealth roguelike.
I’m glad you enjoyed it! It’s true there isn’t much game here. Disguiser was a semi-successful attempt to add disguises as a tool although their exact role isn’t settled in my mind. There is a slightly newer version over on https://mcneja.github.io/ that changes the role of disguises a bit. Still more to do though. It was also an attempt to learn Rust, JavaScript, WebAssembly, and WebGL be able to move games to the web for a lower barrier to getting people to try them. The native version runs faster but it’s much better for people to be able to easily try it.
I’ll devote more time to it at some point. I’ve made these while also making big games; the last one, Ghost of Tsushima, took seven years or so. One of my daughters finished elementary school, went through middle school, and started high school in that time window. I should have set up a counter for the throats I slit. Maybe ten thousand? Which is why the thief in these games has no capacity for lethal violence. I always envisioned it being a game where you’d kill one person, near the end.
I spent some time trying to come up with a wrapper game; something like a map of a city with all the individual buildings you can infiltrate on it. I’d like there to be an overarching mystery to unravel, or threat to unmask. Figuring out how that should work has been a challenge.
Thanks for recommending Harmonist to me; I hadn’t heard of it but will try it out. Another that I really enjoyed is https://dragonxvi.itch.io/skyrogue. It is short and the levels are pre-made but it’s fun and looks and feels great.
> It’s true there isn’t much game here.
There's quite enough game for something I'd play when I'd usually fire up Minesweeper. It's fun, the rules are simple and it's catchy in that way. My comments were from a perspective of a traditional roguelike lover more than anything else. For an arcade-y game, all you'd need to do is add some kind of highscore tracking (based on progress, number of alerts, etc.), and you could call it done.
> Disguiser was a semi-successful attempt to add disguises as a tool although their exact role isn’t settled in my mind. There is a slightly newer version over on https://mcneja.github.io/ that changes the role of disguises a bit.
Just tried it for a little bit- am I correct that the difference is that the guards of the same colour as the disguise will still get suspicious if you get too close, while the other colour ignores you completely (unless you steal/hide of course)? A nice way to add depth, and it makes sense. Though I'd call disguises a success (without the semi) in both cases.
> It was also an attempt to learn Rust, JavaScript, WebAssembly, and WebGL be able to move games to the web for a lower barrier to getting people to try them. The native version runs faster but it’s much better for people to be able to easily try it.
I always prefer native for a different reason: Relying on an environment is, in my experience, quite bad for the long term. I've been trying out old 7DRLs and I couldn't get a single one that uses Python or Java to work. And when I say old, I don't mean 20 years, I mean just a few. I would be especially wary of browsers, which have a history of destroying technologies that were used to lower the barrier before in the same way JS/WebAssembly/Whatever is now (like Flash, Java Applets and similar). Not to mention that players can't easily use an offline copy: If you say, decide to take it off the web, even if I have your source code compiled, I couldn't play it without a local web server-- or possibly disabling security features in my browser to allow local file access, if that's the only problem-- in any case not nearly as straightforward as a binary executable.
Have you considered writing against SDL/OpenGL and then using Emscripten to cross-compile for the web? That way, you could have (almost) the same source code for web and native versions. The best of both worlds, I'd think, though I don't know how that would interact with Rust.
> I’ve made these while also making big games; the last one, Ghost of Tsushima, took seven years or so. One of my daughters finished elementary school, went through middle school, and started high school in that time window.
That must have been a journey; thank you for sharing a bit of it. Congratulations on your successes :)!
> I should have set up a counter for the throats I slit. Maybe ten thousand? Which is why the thief in these games has no capacity for lethal violence.
Quite understandable. The lack of a way to incapacitate guards (lethal or non-lethal) also makes them feel much more dangerous. Trilby: The Art of Theft (stealth-platformer), had a system where you have a limited number of tasers you could knock out guards with, though using them lowers your final score. Kind of a balance between the two approaches.
> I always envisioned it being a game where you’d kill one person, near the end.
That's a great idea. Very evocative even without any backstory to it.
> Thanks for recommending Harmonist to me; I hadn’t heard of it but will try it out.
You can't go wrong with Harmonist. It's closer to a traditional roguelike, but it's also based around non-violent stealth. It also has a unique atmosphere to it.
> Another that I really enjoyed is https://dragonxvi.itch.io/skyrogue. It is short and the levels are pre-made but it’s fun and looks and feels great.
Likewise thank you for your recommendation. I checked it out, though for this kind of game, I highly prefer your style: clear graphics, single screen maps, and no animation (making play faster). Additionaly since it has handmade levels and guards that get you in one hit, Skyrogue feels more puzzly and should really have save/load/undo. Making a mistake and then having to replay the same level the same way from the start is tedious; that's why I stopped at level 5.
> I spent some time trying to come up with a wrapper game; something like a map of a city with all the individual buildings you can infiltrate on it. I’d like there to be an overarching mystery to unravel, or threat to unmask. Figuring out how that should work has been a challenge.
I can see that as being a great game, especially if it would also incorporate the more supernatural elements from Thief (wizard's towers, pagan forests, ancient trap filled tombs). Best of luck when/if you try it out!
Just to throw a few ideas out there:
On the big map, a player could strategize which district (each with it's own level generator, obstacles and items) to play next- depending on what they're ready to handle, or which loot they want. Staying too long in a single district makes it more difficult (e.g. increases guard presence) or eventually temporarily blocks it from play completely. Random events force the player's hand to play certain districts or special levels (e.g. city watch raid the hideout). Occasionally story events hint that a clue/story item can be found in a certain district.
Good ideas! I was definitely envisioning the over-map as being a way to exert a bit of control over the style of level you play, in terms of what the level generator is and what play features are present on it. It'd be nice if the player could pick to a certain degree but with some surprises, still. Obviously I would need to develop more level generators and play features to get the variety.
The idea of making a district ramp up in difficulty is similar to one I'd had; it would help push the player to try different areas. Another idea along those lines was that I was thinking mansion owners could stay home or visit someone else's place each night, so you'd get some mansions that are lightly occupied but guarded, and others that are full of people, and which was which would change each night. The ones full of people would have goals involving information-gathering, and maybe disguise gameplay, while the ones with the owner gone would be more focused around stealing loot or documents, and maybe feature traps and alarms.
I'd like it if there were some gating so you can't just go straight to the final location, but I haven't come up with how that would work. I tried a variety of puzzle-ish games, looking for the feel of gathering clues that help guide where you go next, but I think I was going too complex. All those prototypes are not web-playable, alas.
It might be enough to just have a couple of tracks you need to make progress on: money and clues. The money track would be straightforward looting (and you can't really loot the same place twice), and the clue track might just pick a subset of the maps each turn, and playing one of those would give you a chance to collect the next clue. I think stealing information is a potentially interesting vein to mine: overhearing conversations, digging up records, confronting people when they're alone, that sort of thing. If/when I return to this I'll be trying out some mechanics around those.
Does this game have an end, or does it just keep going?
it just keeps going… more like an arcade game I guess. I’ve been trying out various things to come up with a wrapper game that would have you choosing places from a city map to infiltrate to drive a story forward, but I haven’t gotten anything workable yet.
The AI is a lot more fun to interact with in this one. Thank you for putting it out there