Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

James McNeill

52
Posts
75
Followers
35
Following
A member registered Dec 15, 2016 · View creator page →

Creator of

Recent community posts

Thanks for the notes! I’m glad you had fun with it. All my old games are kind of hard to see on modern screen resolutions. It’s true that the game does not have a ton of variety. You can experiment with the different vehicles’ handling characteristics, and hunt for the hidden caches, but that’s about it. You can read the dev diary for it here: https://playtechs.blogspot.com/search/label/2017-7drl

This 7DRL actually started out intending to be a space game. I mention the Racetrack game but I’d actually previously done some work trying to adapt a board game called Triplanetary, which has this control scheme on a hex grid (with no speed limits). I started the week with the hex grid from my previous 7DRL, Goblin Gold. I needed to scope down so I switched to a square grid and kept the game on land. The game had a bit more flavor and theme than my previous 7DRLs so I was happy for that. And I thought the road generation worked pretty well.

I have not played CDDA or Auto Fire, at least not any amount I remember. Will have to check those out; thanks for the leads!

Knockouts are very much a push-your-luck thing. So long as bodies remain undiscovered things are easy but that can unravel spectacularly. Sometimes you can contain the damage with re-knockouts but it’s challenging.

(1 edit)

Congratulations!

What’s your play style? How heavy are you on knockouts, noisemaking, optional loot, etc.

(1 edit)

One potential way around this is to lure the guard outside with a well-placed knock, then run inside while he is not looking. If there are locked doors you can also locate the guard carrying the key and lure him outside to steal it. Also play around with leaping under and out from tables. If you can arrange for the guard to only see you for one turn you can get by him.

You will especially need these techniques when you get to the last couple of levels.

The note lists the first words of three book titles. Try bumping those books twice.

if you want to mess around with things there are a trio of constants at the top of game.ts for starting out with a particular level number and/or type and with all the dev menus unlocked.

Exterior room type is a little special. In particular room zero is a special Exterior room that encompasses the outside surroundings. The Mansion levels have additional Exterior rooms between their wings.  I’m in the middle of removing the special exterior room concept. I’ll have to look at what you’re doing in more detail later.

A guard sitting in the dark inside the vault does happen occasionally. (Any chair, even one in storage, is fair game for putting a stationary guard in.) Not new to this update but it is amusing when it happens. What are they doing in there? My favorite is when a guard ends up investigating into the vault, spots an unlit lamp in there and lights it up.

My current project is a level style with a lot of small buildings separated by narrow alleyways. It is necessitating some fairly large changes to how things are represented.

I've updated the game with this change, along with a few bug fixes and some level-generation tweaks that are part of some more extensive work I've been doing (but have not finished yet). There should be a development log post with the details. Enjoy! Thanks for playing.

I’ll take a look tonight. Guard lines were recorded by someone who may or may not still be available for pickups but we may be able to just knock out some lines.

ah; that sounds like an entirely plausible sequence of events. 

Hm; weird! Is it a minor glitch or does it prevent being able to play the game? I'm assuming that all of the guards were unconscious before you got two stacked in the same spot?

I took a quick look at the code to refresh my memory but didn't see anything obvious. The code for pushing/pulling an unconscious guard will only operate on one of the guards in the square, if there happen to be multiple.

Amazing! Congratulations. You are the first player I’ve heard of to get all of them!

This is amazing!

I like this! The theme is neat, and the rescues provide a good optional objective. I'm gradually learning about exactly what guards can see, to sneak past them.

(1 edit)

This is a world where every mansion owner has a law library for some reason. The fantasy book title generator is something I threw together with my friend way back in high school.

Both sets of book titles are a nod toward my two main playtesters.

You’re on the right track! Some bookshelves have hidden switches. Bump a bookshelf twice in a row.

This bug has been fixed now. Thanks again for playing and letting me know.

Thanks for the bug report! I built some diagnostics and finally located the bug, which only happened (occasionally) in fortresses with biaxial symmetry. I'm testing the fix and should get it released soon.

Thanks! Glad you’re enjoying it.

(1 edit)

Oh, what a bummer! Sorry about that. I have seen that happen once before; my wife sent me a screenshot of one of her games. What did the symmetric room in the upper left of the fortress look like, I wonder? I’ll look through the code and see if I can think of what went wrong.

Wait using the Period key.

The non-numpad/arrow key bindings are based on Rogue's controls, which are in turn based on the VI text editor's cursor controls. VI didn't have diagonal movement or waiting, though. I'm not a huge fan of Rogue's diagonal-movement keys; it's a lot of index-finger reaching.

For LLLOOOT! we added a lot more key options for waiting: Enter, Z, and Space. This game is fairly simple though.

The screenshots all look very cool! Looking forward to seeing where this goes.

Thanks! We are working on getting a second version out; hopefully soon.

Glad you like it! I’ve got a few other variations on turn-based stealth, if you want to try them. The latest is Lurk, Leap, Loot, made in collaboration with Damien Moore for the 2023 7DRL. It’s experimenting with fixed (albeit procedurally-generated) patrol routes and four-way movement, and Damien added great graphics and sound. The earliest is ThiefRL, with features like lock-picking, notes and signs, friendly and neutral NPCs, but with a fixed map. It’s a Windows executable. In between is Disguiser, an experiment in disguises. All three are written in different languages (TypeScript, C++, and Rust), not that that matters.

If you have trouble with the Itch.io interface for the web-playable games you can try the versions over at my development server but note that they are not always the same as the Itch.io versions. Disguiser, for instance, has a different meaning for disguises over there. They may change without notice.

Happy sneaking!

Thanks! Glad you enjoyed it.

It’s so great to play another game from you! I played this one twice through on my own before resorting to the hints to see everything on a third play.

Your games are so playable. They’ve got imaginative settings; concise, evocative writing; systematic gameplay; generous hinting; and beta testing.

Like Introscopia says: very interesting navigation system.

Is there a way to kill the enemies? So far it seems like they latch on to me and I have to dodge their swords every turn?

DROD! Very fun.

(1 edit)

Thanks! Your SkyRogue was a big inspiration for me this year.

The barks were coded and put in by Damien Moore (my collaborator this year), and recorded by his son Evan.

I’ve been trying out a stamina-meter thing for leaping but I am not sure it’s fun. Will keep noodling a bit. Trying to go to four-way movement this year was hard! I noticed you went from four-way movement in SkyRogue, to eight-way movement in your 7DRL entry this year.

The levels are created from a mishmash of stuff; a lot of graph-algorithm things. I think this is code I started working on in 2009 or so; here’s a blog post: http://playtechs.blogspot.com/2008/09/villa-creation-first-steps.html. It’s been used to generate starship levels as well (with a more free-form set of rooms but keeping a symmetry axis).

The core of it is a grid of rooms. The number of rooms in each dimension is chosen by adding up coin flips (with the number of coins increasing with later levels), so there’s a fair amount of variation. In this version of the game there are ten mansions. It generates the number of rooms for all the mansions up front and then distributes 100 loot across the ten mansions in proportion to the number of rooms they have.

For a given mansion, I then offset all the walls randomly a bit, then go through every corner between four rooms and force either the horizontal or the vertical walls to line up. The inspiration for these are siheyuan, the Chinese courtyard houses, although the overall structure doesn’t end up very close to them. Still, it has the symmetry axis, the southeast entrance, and the private rooms at the back of the house. Courtyard rooms are randomly chosen; the private rooms are just the back half of the house or so, as measured by distance from room to room starting at the southernmost rooms. Room decoration is designed to get a bit less friendly for cover as you go toward the back of the house. Windows are just part of the room-decoration system, which has some templates for different sizes of rooms. Loot placement first distributes loot to dead-end rooms (it’s a law of games), then to private rooms (farther from the entrance), then wherever.

Guard patrol routes are built so every room gets visited by one guard. It shuffles all the room adjacencies, then assembles them into chains (which can become loops). Then it clips long chains into shorter pieces if necessary to try to hit the target guard density for the level, and finally inserts side-trips into any rooms that didn’t make it onto the chains. For any end room in a route it tries to pick an interesting place for the guard to go: a window to look out of, if there is one; a chair to sit on; or some loot to stand next to. If none of those are available it tries to walk a couple steps into the room. On later levels a couple of extra guards are added to patrol around the outside of the house.

The code’s on GitHub if you want to look at it: https://github.com/mcneja/7drl-2023/blob/main/src/create-map.ts It’s not the most elegant code, and has been hastily ported from Rust (which in turn was ported from C++). The guard patrol routes were the major new bit this time around.

Just finally completed my first mission. This is gorgeous and fun and seems very detailed! I loved Skyrogue and used it as a reference point for my 7drl this year, so I am really interested in playing more of what you've done here.

Thanks! I thought the zoom keys were the square brackets [ and ]? Slash (/) brings up the help, but Esc will also work if your keyboard has that. I just tried all three keys in Firefox on my machine and they seem to work? Maybe I'm misunderstanding what you are describing?

Thanks! Glad you enjoyed it. Damien pushed to have patrols. It does let you observe, form a plan, and then try to execute the plan.

The other big design challenge I set myself this time around was to go from eight-way movement to four-way movement. When I've tested games on people, quite a few are not familiar with eight-way movement and it's also hard to do on some keyboards. The dash is kind of the opposite of the corner-cutting that my eight-way-movement versions have had: dash gives you an advantage in open space, while corner-cutting gives you an advantage in tight spaces. I'm not sure I've really come to grips with all the implications yet. I liked how it cut down on the overall keystroke count for completing a level; it feels like you want to do it all the time. I did try out a stamina model but I tend to think of stamina meters as "fun meters" that make you stop having fun periodically. I will probably keep experimenting with that though to see if I can find a good balance.

Thanks! Yes it is much more playable with a good mouse. Also adjust the sensitivity to match your mouse using the comma and period keys (< and >). The mouse I developed it on feels good at zero which is why that’s the default, but my work mouse needs to be dialed up to around 8 to feel the same.

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.

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 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.

Thanks! I am also a huge fan of the Thief games (and the mod scene for them).

You've got some good ideas. I've thought about doing multiple levels; mainly unsure about how separate the levels should be. If they are totally separate (enemies can't go back and forth) then there isn't much point, other than giving the player some extra routes. If they're just layers of a level (upstairs, downstairs, basement) with free movement between then it is a bit more difficult to present clearly. (Let's say an enemy is spotting you from an upper balcony; how would that be represented?) It might be worth it to have layers though. I've also done sketching on isometric tilesets; still not sure about that. It does make things less clear.

More types of levels is definitely a good area to explore. Getting more varied texture to levels, too; it's just a collection of connected rooms right now.

We'll see! I'm a professional game developer in addition to a hobby game developer. I don't always have a lot of free time. Once a year I take a week to work on things like this though.

Thanks for the kind words! I got the Ctrl/Shift scheme from Dose Response. I haven’t played it enough for it to be second nature, and my wife’s notebook’s left Ctrl key is busted so it’s no help there.