Tuesday, 7 June 2016

imbroglio notes 5 - imbroglio friends

It was pretty clear that weapons couldn't improve at every level. I had a few effects that scaled with level, e.g. the Lantern's stun on kill, but there weren't enough of these for every weapon to get one. And with the low numbers of hit points it definitely wasn't reasonable to always increase damage. Just no room in the design for any very small effects that make something like 5% better, it's twice as good or nothing. I could only really make small effects by adding extra words to limit them down (extra damage only to serpents when your score is even and it's sunny), but then it feels weird to have so many words for such a small effect - and a weapon with one of these tiny effects for each level would get pretty clunky. So there were going to be a lot of times that weapons leveled up without improving and that felt kind of bad. It made sense for the design, I could make an early-game weapon like the Club that gets 2 damage already at first level but doesn't improve after that, or a late-game weapon like the Cleaver that doesn't get anything at first level but goes all the way up to 3 damage, but when you played with them and got the empty levels it felt bad.

I decided to add another resource to the game: every level-up would earn a "rune", whether the weapon improved or not. This made there be always some value to leveling weapons up, and also gave some extra incentive to focus on leveling something early rather than just letting kills fall wherever. In the end I did try to ensure everything got at least a small bonus at level 4 even though with runes it's not strictly necessary, it still felt better that way, but at least it didn't have to be something at every level.

So next there needed to be a way to actually use these runes. I could make some weapons that spend them but that leaves the possibility of a board that doesn't feature any of those weapons - in these cases they'd have no value so we're back to having empty level-ups; there needed to be a way of spending them always available. Simultaneously I was thinking about other design problems; the concern that people would find one "best" board and have no reason to play different setups, also the question of whether there needed to be more ways to deal with bad/unfair situations in the game - a panic "bomb" for when too many enemies surround you, or even whether to include a "wait" button to deal with zugzwang (possibly a limited-use effect like 868-HACK's .wait prog). I thought about encouraging board exploration with challenges where you had to design a board under restrictions, then I realised this could hold the solution to the other problems too: the challenges could be different /characters/ each with also a special ability button (bomb, wait, etc.) costing runes. Solving 3 problems at once while giving the game more character, good going.

I'd written up a list of board restrictions (no range, no blues, no duplicates); character disadvantages were a more general concept so I added more some ideas along the lines of 868-HACK's "bonus powerups" (less hit points, one enemy is worse, enemies spawn faster). Paired it with a list of ability effects and just tried to match them together. Started drawing a bunch of people and trying to get a sense of which abilities they would have. Some pairings came easily from the mechanics, some mechanics were inspired by who I thought the people were, some fairly arbitrary. In general it felt natural to match character concepts with abilities, but the disadvantages felt more arbitrary and ended up moving around a lot. It helped when I realised they didn't have to all share the same scoreboard, so they didn't need to be "balanced" to compete with each other, they just needed to each be playable on their own. This is quite a shift from how multiplayer games work - rather than the top players gravitating to the strongest characters to win more, you'd expect they'll be interested to play the weaker ones for the challenge.

Some notes on individual characters:

Count Harry I was a spooky vampire, the really nasty sort, villainous and everything. Someone managed to trap him in the worst kind of maze, the "8 steps to gem" kind. But he wasn't much fun to play, "8 steps" is pretty extreme and even his efficient (1 rune) regeneration wasn't enough to deal. His great-grandson isn't so bad. I needed a basic introduction hero and healing seemed the simplest ability so I paired that with the simplest disadvantage. The main advantage of range is to avoid some forced hits from stepping next to enemies so I made his heal/wait expensive to exacerbate the lack, I think it helps get across that it's okay that you have to take a hit sometimes. Ideally you can use the power to deal with 2 hits at once (one avoided, one healed), and then paying 2 feels just.

Susannah was going to be the first character for a while, I thought it was simpler to introduce the game without having to think about different weapon colours, but I realised they're so important I should really introduce them immediately. She didn't really change from the initial idea. It's an obvious board restriction and she gets a blue damage power to deal with its weakness / her vows forbid using magic weapons but she can call on divine assistance in times of need. Rune damage is shaped for tactical positioning, cross shape matches paladin concept. Only question was whether to make it 1 rune for 1 damage or 2 for 2; 2 makes it more a desperate prayer than a casual everyday thing, also makes it fast enough for a double-smite to be viable against red enemies when you really need it.

Vesuvius Bob was also a candidate for first character, back when he had "no ranged weapons" and was an absolute powerhouse, back before his tragic injury.
In the analogy to a card game with the weapons as your deck, wall generation is the shuffle. Having no duplicates increases shuffle variance, you're less likely to be able to reach the weapon you need. Breaking walls is deck manipulation to deal with unlucky shuffles / get somewhere you need to. Gem shortcuts are an added bonus.

Masina's rune power came after I had the two effects triggered by swiping into inner and outer walls (Bob and Johnny) and I tried to think of more of these kinds of automatic trigger (as opposed to pushing an extra button). An effect on hits was possible, extra damage is as simple as it gets, a red/blue switch gives a way to control it on any reasonable board, attaching it to red fits because it's the colour associated with more damage, there you go. Played it out, really liked the tactics of it - strong but difficult to use well, requiring discipline to avoid burning through your runes too quickly. So I just tried to draw someone very strong, who overcomes opposition through great discipline. With the tactical challenges of not being able to wait in place and trying to conserve runes, her disadvantage doesn't need to be very bad, and ideally it shouldn't affect the board design much because her power already gives plenty of direction there. So I tried everything I could think of for simple disadvantages that just make things vaguely worse, "enemies spawn faster", "6 steps to gem" (8 having been too many for old Harry), "1 less mana", all of these turned out too hard. The level generation used to sometimes block off tiles and it was not a big deal but kind of annoying (one friend was convinced it always deliberately picked the weapon he'd leveled up the most); that seemed reasonable as a disadvantage.

Obviously there had to be a cursing hero. Jeska originally had "no duplicates" (imagining a witch's eclectic hoard) but cursing makes you want to build combos so that conflicts. Gave her "weapons don't get damage increases" to really shift the focus to combos; good idea in theory but everyone got confused that the curse hero couldn't effectively use the big obvious curse weapon. So I just came up with something minor that represents her being a bit old and physically frail, wanting to avoid getting hurt and instead use magic.
Now that she was the first character to be solved I wonder if I really should have stuck with the damage reduction. Still, it's not surprising that a cursing character would break something since having a reliable way to curse removes half the balance limitations on curses.

Dominic! Several of 868-HACK's bonus powerups exaggerated the strengths of one enemy type so that was an obvious thing to try here. There isn't the same complexity in enemy abilities so I went with the simplest: the hardest enemy to kill gets extra hit points to make it even harder. It's still more vulnerable to one damage type, and it still deals its separate damage type so the extra danger doesn't stack too badly with other enemy types. The stun power helps you survive the big enemies without making them any quicker to kill, so it's alleviating the disadvantage without directly opposing it.

Tried several different disadvantages with Johnny. Similar thoughts to Masina - his rune effect shapes boards a lot so the disadvantage can be fairly generic. Difference is that his power is really really strong. "Enemies spawn faster" seemed a good fit for a while but made late-game survival impossible. "Five kills to level" seemed fair but was pretty boring. "Weapons don't get damage increases" was an appropriate level of challenge but cut out a lot of the point of mobility for being able to access high-damage weapons. Ended up with "8 steps" because nobody else could handle it and his flying naturally counteracts it.

Monday, 6 June 2016

imbroglio notes 4 - when this

Most of the ideas I had for weapon effects could be phrased "when X, do Y". When this hits an enemy, stun them. When this kills an enemy, charge the player. Made a basic description language with this format; level / trigger / conditions / effect / conditions. Exceptions are passive effects like "you have an extra hit point", "this weapon is ranged", these can squeeze in as special cases. So weapon data file looks like this:

Vampiric Spear
red 11112
L1 kill restore_red
L2 kill cursed restore_red

Wicked Thorns
blue 11111
L1 hit cursed damage_blue
L1 move_onto percentage_level 10 20 30 50 curse

character 6
passive ranged
red 11111
L1 hit boss damage_blue num_level

Started with a basic set of triggers: hit, kill, level up, start of turn, move onto; and basic effects: hit, kill, damage (red or blue), heal (red or blue), stun, teleport, feed; also modifiers to specify whether the target of the effect is the enemy being attacked, a random enemy, all enemies, or enemies of a specific type. Already just combining these generic triggers and effects creates a lot of possibilities, and having a simple text format for them makes it easy to try out different possibilities. The in-game rule text is automatically generated from this code so I'm not constantly having to update two copies whenever I change anything.

So far with these effects there aren't many interactions between weapons, just some basic tactics. Deck-building is all about combos, different pieces than can combine together to make a bigger effect, I wanted exciting ways you can put some weapons together and they explode. Simplest interaction would be for one weapon to just modify another, so we get something like the Whetstone. Trying out these kinds of effect, they tend to be very strong and fairly complex, but also not very interactive because the modification happens once and then you just play with the new version. (Ongoing modifications are hard to pull off in such a small space, like with maximum damage 4 an effect like "increase damage of another weapon when this kills an enemy" doesn't have much room to work in.) So I didn't put many of these.

I needed some kind of economy, one weapon creates a resource and another weapon spends it. Something cyclic, an engine that takes constant interaction to produce and consume, rather than a static bonus. Started with the concept of "charge", a simple resource you can only carry one of - when weapon A gets a kill you become charged, then with weapon B you can discharge for extra damage. Went through all the combinations of this with the primordial effects - charge on hit, charge on kill, charge on level-up, discharge to damage, discharge to kill, discharge to heal, discharge to stun.

As well as granting a status effect to the player it made sense to grant one to enemies too, so I put in the concept of cursing. Thinking a bit of Netrunner's tags here. Again, go through all the combinations - curse on hit, curse another on kill, extra damage to cursed enemies, discharge to curse, charge when you kill a cursed enemy. Playing this version of the game, some things kind of worked but overall it had gotten very complicated, too much to keep track of. There were too many ways of doing the same thing, maybe I needed to prune it down so that charges and curses each had separate types of effects they produced. I'd also added the possibility for weapons to spend hit points for an extra effect and I realised charges weren't doing much different to this - "spend charge to stun" and "spend #b to stun" felt very similar, both spending a resource that was attached to the player.

As status effects, curses were more interesting than charges because they created more possible situations - different subsets of the enemies on screen could be cursed to create different setups, but the player being charged is always only one thing. And as a resource to spend, hit points were more interesting than charges because they also interacted with enemy damage. So I dropped charges, kept curses, and ended up limiting hit point spend to just blue. Through most of development curses had no innate effect which had some elegance ("but what do curses do?" "exactly what your cards say they do") but they needed a little extra and I got convinced to give them an effect of their own, again nice because it makes curse weapons contribute something even if you don't go for a combo.

Wednesday, 1 June 2016

imbroglio notes 3 - monsters

I expected each enemy to have a simple rule variation like in 868-HACK - this one moves faster, this one has a ranged attack. Maybe elemental resistances to distinguish their interactions with weapons - this one is immune to fire, this one takes double acid damage. Playing with weapon positioning, maybe some rules could be positional - this one has a shield on one side, this one patrols back and forth along a row. Spent a while trying out with different designs but once I hit on the 2d hp system it turned out just giving them different amounts of blood and mana was exactly enough.

868-HACK's enemies also have subtle movement preferences distinguishing them but it turned out that doesn't make much sense on such a small grid; there are so few different paths that it rarely mattered and the paths are short enough that you didn't see any one enemy moving far enough to get a feeling for it.

Obsessed with the number 4, I thought each enemy would have 4 hit points divided between the two colours, 1/3, 3/1, 2/2, uh maybe a 4/4 boss or like another 2/2 with a different ability or something, until I wised up and noticed 5 total points nicely gives 4 unique enemies and so that stuck.

Enemies are also distinguished by the damage type they do. The obvious choice is to have half of them red and half blue, so I didn't do that. If there's equal numbers dealing each damage type, each hit point bar is equally much under threat, so you'd always choose to lose the one you have most of. But if one of them is more threatened the tipping point is hard to calculate. With 3 red enemies and 1 blue you'll usually prefer to take the blue hit; at some point that's low enough that you'd take red instead but how do you know where that point is? Well with only a maximum of 4 there can't be many different options but hopefully enough other factors come into play to vary it situationally.

The 4/1 and 1/4 enemies have the most variance. Hit them with the right colour and they always die in one hit, but if you get stuck hitting them with the wrong colour that's 4 hits, pretty bad. 3/2 and 2/3 are more regular, there's a preferred colour but if you get it wrong it only takes one more hit - but they always need at least two so in the best case they're harder. I distinguished the weapon colours by making red weapons generally do more damage and blue ones generally have more effects, meaning the 2/3 enemy ends up being easier to kill than 3/2 (though this depends somewhat on your board), so to compensate I made the 3/2 enemy deal the less common type of damage: it's hardest to kill but its damage is the least threatening.

For board construction, I wanted different reasons why you would put choose to put weapons in different places. Think of everything that could affect positioning. Damage types are a good start, you want those sort of evenly distributed so you can usually reach the preferred colour for each enemy. Maybe two weapons work in sequence (this one curses, this one kills if cursed) so they're good near each other. Possible interactions based on position - Blacksmith Tongs affecting adjacent tiles, Whetstone affecting the row. Ranged weapons - putting these in a corner lets them potentially hit 4 additional spaces, on an edge 3 and a central tile only 2 - but paths more often go through the central tiles so they might get to attack those extra spaces more often. In general corner/edge/center tiles turned out to have very different value. Effects when an enemy moves into a tile. These aren't enough.

I came up with the idea enemies entering through the screen edges (rather than spawning anywhere on the map). Makes more sense with such a confined board anyway, and adds more differentiaton to the positional values of corner/edge/center tiles. Then later I realised - the board has four sides, there are four enemy types, what if each side just generated one type? Felt very counterintuitive to me at the time; enemy spawns are the main source of chaos, restricting them to always come in the same places would just be putting you in the same situation over and over again rather than a lovely roguelike engine of endless variation. But I really liked the way it broke the symmetry of board-construction, putting a weapon on the left now meant something different from putting it on the right because it will be near where different enemies come from, eight times the number of practically different boards because reflections/rotations aren't equivalent. Tried it out and I guess it was totally fine. There's plenty of variety from different wall placements and the timings and orderings of enemy spawns, it doesn't feel like it's repeating situations except when the same enemy type appears a few times in a row - and then each repetition is usually worse than the previous because you've taken a hit.

In fact getting the same enemy several times in a row is sometimes downright nasty when they obstruct you from getting the gem to heal and shuffle, especially because they'll all be hitting the same colour. These situations were responsible for a lot of deaths and often felt unfair. So I thought, what if I just eliminate them? Have a rule that the same enemy can't spawn twice in succession. This felt pretty great. Smoothed out all the difficult situations, the game flowed a lot more pleasantly, you could much more reliably survive and level everything up and get a good score and everything is nice and friendly. So I decided not to keep it. All those knots of difficulty aren't nice but they're an interesting challenge to deal with and that is much more the point. I went with a watered down version: it looks at the last five enemies spawned, if three of those are the same then it makes sure the next spawn isn't a fourth. So you can still have three in a row, which is bad, but then you get a break. Four in a row would be unfair because you can't guarantee not taking a hit from each, and four hits of the same kills you.

A method for inventing card ideas: look at the alternate-universe versions of the game rejected during design and push it into one of those. If you were thinking of giving something away for free but it has value then maybe consider charging for it. So we get the Forbidden Scroll to block double spawns, but it takes spaces on the board (one for each gate you want to filter) and has to be leveled up to work.

At first I didn't communicate the enemy spawn locations and it was pretty interesting how players could develop an intuition for it without explicitly noticing it. Nobody ever saw the pattern, they'd see the same enemies appearing in the same places over and over again but still think it was random. Even when I drew the gates shaped like the enemies to make it clearer hardly anyone noticed. But if I then removed that rule it just felt very unsettling, because the pattern had very much been unconsciously recognised. I thought this was quite lovely and I wanted to keep it as a slow realisation even though it meant people would play for ages without knowing about one of the main constraints driving board construction, I only really decided to put it in the manual because the gaps next to the enemies looked weird without text in them and there wasn't much else to say. Maybe I shouldn't have, oh it was so bizarre how nobody noticed, amazing. Until I wrote the manual the enemies didn't have names either, except serpents for Dominic and minotaurs for the slingshot, I kind of liked the idea that you can only infer these names from clues elsewhere, but again the 80s arcade bestiary made demands on me.

Okay I was thinking of this as kind of an "arcade game" in structure, you're fighting off waves of enemies while trying to get high score, like a shmup where the enemies come in fixed patterns, a preset sequence of obstacles to get through. If the enemy difficulty is tied to something the player does then it's possible to manipulate it and that can get really complicated, I saw the game being quite complicated already so I wanted to avoid that. Classical roguelikes increase enemy difficulty with dungeon depth, allowing the possibility of sometimes staying on a lower level to get kills (meaning experience levels and items) before heading to riskier areas - but they generally have a hunger timer or similar so grinding an easy dungeon for hours to level up isn't an effective strategy. This could have been a risk in Imbroglio. In some ways less of one because the most readily accessible source of healing is to collect gems (= advancing the dungeon level) but on the other hand the choice of "do I want to heal to reduce my danger of dying now but also increase the danger of everything else ever" sounds pretty unpleasant. Healing is already a risk because the new level layout might impede you, but that would be even worse. Alt-healing items would probably become pretty dominant. So yeah all in all it seemed appropriate to have a fixed enemy progression.

I started with the enemy spawns divided into fairly explicit "waves", like maybe four would come at once then a break, then two at a time with shorter breaks between, then one boss, that kind of thing. Very shmup. But playing it out, multiple spawns were very dangerous because you can get flanked (at least until you have weapons that can deal with that, but simplicity dictated that those should be higher level effects) and breaks were very boring because there's nothing to do except trudge over to the next gem. So I kept adjusting the patterns little by little, increasing the gaps when a pattern seemed unfair, reducing them when one seemed too easy, ended up with this huge complicated table of spawn times that I don't really understand because it just evolved out of small changes over hundreds of plays. It starts with gaps of 6-9 turns between enemy spawns and gradually drops, with some wrinkles along the way. There are still some bits with the sense of a "wave" followed by a reprieve but they're squishier.

For consistency and simplicity I chose to keep the same wave pattern for all characters. This made tuning it difficult because the different characters have different power levels at different stages of the game, what is a pleasant challenge for one might be trivial for another and an unavoidable death for a third. Probably nobody would have minded if there was a different pattern for each character but it just went against my aesthetics, I wanted to be able to write the complete rules for each of them in a few words, not like "no red weapons (but the enemies come slower at first then speed up more in the middle but taper off again at the end so don't worry)". I didn't like rudely killing people with no way out so I decided to err on the side of it maybe sometimes feeling slow/unchallenging at the start for some characters. I went back and forth on this a lot, solely end-game focused boards were proving very effective so I kept pushing the early spawns a bit faster so there'd be some pressure to include items that peak earlier, and then pulling them back a little because I started getting too many unfair deaths.

I was worried about players thinking the early game was boring if they kept killing enemies with the nearest strong weapon and not using the space they had to level things in a deliberate way. This would be a problem if when they then died due to a lack of leveled-up weapons they didn't see the connection between that and the time they could have spent to focus kills better. But I think I managed to get the numbers to somewhere that there is enough risk early on to make it interesting, and where there's enough motivation to level things up that you'll take some risks for it.

Was worried about the late game not being challenging enough so I went back to the idea of those 4/4 bosses, put them in as minotaurs. They were red for a while but turned blue so as not to stack with the most common other sources of damage. The curse on death was a very late addition, I just thought it would be nice to give curse triggers a small effect in any board.

Saturday, 28 May 2016

imbroglio notes 2 - blood and mana

Building a board of different weapons, there needed to be reasons why the weapons would be useful in different situations and you'd not just always take whichever does the most damage. Maybe some do less damage but build up resources so you use those against weaker enemies to prepare for stronger ones. Maybe some do more damage against specific enemy types, maybe like a system of elemental resistances and vulnerabilities? This is a FIRE weapon it does 25% more damage to ICE enemies but 25% less to STEEL enemies blah blah blah.

I'd been playing Magic with the recent-ish set that used Poison/Infect and finding a lot of joy in the moments of choosing how to block when some attackers are poisonous and others do regular damage and you can't stop them all. Just quite nice to be choosing between different kinds of damage, having to estimate which one will come closest to killing me, much more pleasant than the standard of "the biggest number is worst". They're good moments, maybe I can steal the system of damage types and put it in a new context. Life and Poison function differently - Life is lost / Poison is gained - but that's unnecessary, losing is just winning backwards.
(tools: just keep stealing from Magic it has more stuff than it needs anyway.)

Also talking with Jonathan Brodsky about Nightmare Cooperative and trying to articulate what makes roguelikes work, that thing of being presented with random situations and having to choose which resource to spend to deal with them. Just having random situations isn't enough on its own, you need an option to bypass some of your choice. And you want that choice to be unclear else it's a pure optimisation puzzle, acting under uncertainty being part of the pleasure of strategy games (in principle you could work out all the probabilities and pick the one with the highest survival chance but in practice you can make it sufficiently complex that some estimation is required). Usually the choice is broadly between using the basic combat mechanics (spending some number of hit points) or invoking a limited-use secondary system like items or spells.

Having different damage types would put more of that resource decision into the basic combat mechanics. Flanked by two enemies, the choice isn't just "use an item or take damage", it's which one you want to deal with first while taking damage from the other. Conventionally this is a simple calculation, one value to optimise, kill whichever one would do the most damage. But with two hit point values, you can't locally optimise, you have to estimate how much of each you'll be taking afterwards too.

I think this is a really weird and technical idea! It's already complex in Magic but I've extended it to enemies that move about on a grid, and to everyone having the two hit point meters (not just the player) because half the point is that your weapons can deal two kinds of damage too to give reasons to use different ones against different enemies. Wow so complicated, double the numbers everywhere. Then I start to implement it and realise it's just the same old red and blue life bars from every single CRPG ever. Oh !

Yeah so actually it is nothing special! I thought I was being clever in how I took pieces from different games and recontextualised them to make something new, instead I just made something old. Basically every game ever has blood and mana as separate resources. Usually the second one you are spending yourself rather than getting hit in but sometimes there are energy draining undead monsters hitting it so all I'm really proposing is to have more of those. So conventional game. (Also I may as well just make some weapons that spend mana too because it'll be plenty intuitive, everyone expects it.)

Anyway! To make it an interesting choice which kind damage to take I want to make the things that threaten them be actually different. Not just red and blue flavours of the same enemy. Enemy design is probably a separate post but here it suffices to say that giving them different strengths and weaknesses will probably complicate that enough, make it non-trivial to estimate which ones your board is best able to handle in the immediate future. Spending mana for positive effects also adds a nice twist; if you lose it in damage you can't afford the bonuses.

I've noticed that players very quickly grasp the idea that enemies are weaker in one colour so it is advantageous to hit with weapons of that colour, but then often they internalise that as a strict rule ("you always have to hit those ones with a blue weapon") and will go out of their way to use the preferred colour even when it's very unsafe to do so / costs a lot more turns. There's definitely situations where it's better to use the "wrong" colour.

Also, different amounts of damage of each colour, whole matrix of possibilities. I had a weapon that did one of each but dropped it, important for everything to have weaknesses. I really like the way having weapons do different amounts of damage can create "combos" already before any extra rules come into play: an enemy has 3 hit points, you can hit it once for 2 damage and then finish it off with a 1-damage weapon, combo! Much more elegant than the labelled combos of "apply a status effect to an enemy" / "trigger off enemies with that status effect" though it's nice to have those too.

Friday, 27 May 2016

imbroglio notes 1 - inventory management

Ok I'm going to write a series of posts about Imbroglio design, actually a bunch of this I wrote already but I didn't post because I didn't want to explain the game too much before release. Probably going to be a lot of words but you don't have to read them it's okay.

Initial idea came from looking at inventory management in RPGs. Lots of differently shaped items but it doesn't tend to matter all that much because there's so much space. You're not really forced to make exclusive choices ("this platemail takes up so much space in my pack that I can't fit many potions"). Maybe some games do this but mostly in what I've played the constraints are loose enough they don't matter.

(Really weird thing Neverwinter Nights as shown in the screenshot above: as well as the space restriction which is intuitive and doesn't matter, there's also a weight restriction which is much less clear but does matter. )

So I thought, what if we put this on a smaller grid, then it would start to matter. Maybe the platemail takes up half your pack so it really limits what else you can carry. Force some difficult decisions about what to take.

Usually what's in your pack doesn't do anything, as well there's like ten different active slots to equip things, armour and cloak and bracelets and shoes and rings on every finger. On this side you are making exclusive choices; you can only wear one armour, you can only wield one weapon; but these choices are all between things of the same kind, you can't tank up by trading a weapon for double armour. But if we're making pack space management matter, we may as well drop the active slots and just have one small grid of active equipment. Maybe some unrealistic abstraction there but these games are full of that already. And now weapon size and shape actually matters, daggers don't need complicated extra rules to balance them against broadswords, they just take up less room.

Make the grid small enough relative to the items and you can get some really interesting exclusions. Warrior sword takes up the full horizontal width of the inventory grid, wizard staff takes up the full vertical: suddenly really obvious that you can't have both. This was the central idea I started with and thought was really cool, fitting awkwardly shaped items into a grid and their shapes really mattering. Played around a lot with fun shapes that exclude each other. Grid sizes I tried were around 5x5 to 7x7, it depends on average item area - 49 1x1 potions is too many, but 4 3x4 suits of armour is very manageable.

One idea I'd thought about was: what if some of the items affect the playing area based on their position? The level would be some sensible size like 20x20, much bigger than the constrained inventory screen, but if they're the same shape it could scale up to cover it (or maybe tile I don't know), and then some items could give you a bonus just when you're in the matching area. A bit weird but if I'm generating lots of items it could be a plausible mechanic for a few of them.
So I just had this design idea floating around for ages until with 868-HACK my conception of what constituted a plausible playing area dropped to within the same range I'd been considering for the inventory and suddenly "items affect corresponding play area" became a lot more natural because they could just be the same space. I started prototyping a 5x5 version where each item had one global effect (e.g. extra hit points) and one action you could do in that spot. Some of the actions needed resources and others were more like simple "wait" commands. There were different item shapes but my implementation of those was pretty broken, not important yet because I was just trying to get a feel for how the game was going to work. I had this lovely super-low-res style but it had huge problems with communication, trying to fit into a few pixels all the information about global and local effects and also enemies and their hit points and so on, urgh, it became pretty clear that the game wouldn't work at all at that resolution, maybe not even at a medium resolution like 868-HACK.

I put it on hold for a while making other things, when I came back to it I still didn't want to fix the item shapes so to avoid that I came up with the very convenient idea of just building it with single-tile items "for now". Of course I was going to get to it eventually because the whole point was it's cool how you can't have both a staff and a sword because they're tall and long. (Which really is a cute idea maybe I will come back to it?)

I wrote a big list of all the ideas I had for items - armour for hit points, amulet to save you once if you die in that spot, bow giving a ranged attack in that spot. Most of the active effects I had felt too much like just repackaging 868-HACK so I backed off on that, a lot of the cooler ideas were positional attack modifiers so - what if every item is a weapon? Plenty of possible hit effects, plus I could still use global passive effects on weapons with just a basic hit. Rewrote my list to all be weapons, seemed good.

One weapon was DRAGON SWORD, with the unique effect that it gets stronger if you use it to kill a dragon (or insert enemy type once I have them). Playing out the game in my head (without a digital prototype of new stuff yet) this seemed the most interesting item because you're trying to lure enemies to fight at a specific place rather than just using whatever is most efficient nearby, and because it created a progression not just a cycle where you use one weapon to gain a resource and then another to spend it. So - what if everything levels up like this? This turned out pretty important to give the game some shape, starting with everything already equipped would makes a really complicated opening and then not much variation. I had been assuming a typical structure where you're collecting better items and slotting them into your inventory as you go but this worked without that.

- steal ideas from another game and try to fix them
- always make the grid smaller
- save up weird ideas until they naturally fit somewhere
- write down all different ideas and then fit them all into a consistent structure
- simplify the design to avoid work you don't want to do
- abandon your original idea, it was just scaffolding

Wednesday, 18 May 2016


Imbroglio on iOS appstore

Yet another roguelike. It shares some recognisable elements with Zaga-33 and 868-HACK but I don't think it's very useful to think of it as a sequel, it has a pretty different philosophy.

It's on a 4x4 grid, as I continue to get steadily smaller (from Zaga's 9x9 and 868's 6x6). I first prototyped it at 5x5 but that was way too big. (See also Diego Cathilifaud's Amber Halls for 5x5, and I see now he's gone as low as 3x3 but I haven't checked that out yet.)

Compared to 868-HACK, individual plays are longer; it amused me to fit an epic-scale RPG leveling system into a tiny grid. But each play is self-contained, there's nothing like the streak scoring system tying multiple plays together. And there's less randomness in each game because you construct your build at the start of a game rather than assembling it from random pickups along the way. I've described this as "deck-building"; that might be slightly misleading but I think it's a useful analogy; the wall generation provides the "shuffle".

You can see I've used a different graphical style to some of my other games. Don't worry I haven't abandoned rainbow glitch pixel chaos for good, just the amount of stuff that needed to be communicated in terms of the card effects called for a higher resolution display. I'd been thinking for a while about using this kind of hand-sketched style for something and it fit here. Had fun drawing a bunch of wibbely monsters and stabby swords.

As usual, chances are a bunch of new bugs will show up now that it's released. Let me know and I'll get to work fixing them.

I hope you like it! It is always a bit anxious to release something new especially when it is hard to explain. I know for some people it will be too different and for some it will be not different enough, but it is its own thing and there you go.

Sunday, 27 March 2016

Still working on Imbroglio! This is maybe the most technically complex game I've made? Not sure, Vertex Dispenser's somewhat-broken online multiplayer was a whole lot of mess, but here all the complications are just in the central game itself. There's a whole bunch of cards that can interact in different ways, triggering each other and modifying each other's effects. Just on the programming side it's been heaps of work making all the effects actually work but then on top of that is the design complexity; figuring how all the combinations ought to work, keeping in mind all the different interactions that might conflict with each other. I'll be out somewhere and suddenly realise "hey you can get infinite hit points" and then have to work out whether that's okay.

Its big weakness is still what I was talking about before, a lack of clarity in the risk/reward structure. It doesn't do a great job of generating counterfactuals, letting you reflect back on your failure and see "if I'd done Y instead of X then Z would have happened instead..". Adam calls this "unpacking" in this talk and cites 868-HACK as a positive example. Maybe my problem is trying to not make the exact same thing again so deliberately not reusing the things that worked well before? 868-HACK had super clear risk/reward, directly tying enemy generation to acquisition, if you lost it's probably because you took a deliberate risk. Imbroglio loss-reasons are not obvious at all, enemies just keep coming on their own schedule so maybe it's because you spent some turns inefficiently and now your power level hasn't kept up with the opposition, maybe you made the wrong choice what to level up fifty turns ago, things like that.

But also it has deck construction so even though it can be hard to figure out tactical errors you can also just think about trying a different deck. And honestly this is kind of a problem Magic has too? It's easy to change your deck (maybe buy some more rare cards lol) but it's pretty hard to tell when you lost through subtly inefficient resource management over several turns. So maybe i'm not doing too badly if my game's biggest weakness is also present in the most successful game of its genre?

Anyway yeah I don't think this is a fatal weakness? I will just make the game and let it be what it is, I shouldn't be worrying about whether it's a less good game than something else I made or whatever.

Been making good progress this week. Took me a long time to figure out what to do for sound effects but I've got the right idea now and that's coming together well. Turns out being in a bit of a daze while recovering from having a wisdom tooth out is a good state for just sitting down and churning out lots of samples. Fingers crossed they still sound good when I'm back to normal. Also I keep getting sidetracked trying out weird new card ideas, I'm supposed to be working on essential stuff so I can release the game not making it bigger. I tell myself it is to some extent useful to plan out the ways I might want to expand it later so I can architect things to allow for them. Anyway it has room to grow.