Thursday, 4 August 2016

imbroglio notes 7 - black sword black sword

My relationship to game violence is pretty weird, I dunno, I'll say I want us to do better and represent other parts of life but then when I turn around and actually make a game it's just like kill 1000 things. Like I'm not getting excited about super detailed gore but even at the level of symbolic representation, it's weird to spend all this time on murder simulation. I think there's a good argument to make that it serves some positive role in terms of venting violent impulses but it's not clear that it doesn't actually nurture violent impulses instead? Like probably intense physical exercise is probably a better way to vent really. Also I don't feel like I have a whole lot of repressed violence that I need to get out, maybe that's only because I already healthily release it through simulation or exercise but it's not really feasible to stop those and see if something bad builds up. But yeah I tend to think of myself as pretty pacifistic. Although on the other hand if you threaten someone close to me it turns out I will instinctively use force to stop you, I think that's pretty normal? Anyway I think it comes up in games pretty naturally, you have some kind of challenge, it's simplest to frame that as a conflict, it's simplest to frame that as violence. Pieces are being eliminated? Call them dead. Really hard to break out of this pattern when trying to do elegant design.

Anyway yeah I actually really enjoy some pretty generic fantasy settings and for a while I've meant to get around to making an RPG-type game with more like that kind of context, I actually started making lots of games with orcs and swords and it feels like mostly coincidence that those weren't the ones I ended up finishing. Imbroglio really seemed to make sense for that kind of setting, it simplifies some of the rule explanations. But it's a setting where the violence is more explicit, you can't hide behind debugging weird computer glitches or whatever. So I felt a bit unsure about that. Also the RPG mechanic of leveling up by killing things is basically messed up, it directly encourages optimising the number of things you kill, even going out of your way to kill things that you otherwise wouldn't. Even if I'm okay with violence for a nice reason, this doesn't correspond to anything you could have a hope of justifying. Something I was pretty pleased with in Zaga-33 is how the rules strongly discourage getting into fights; you have to kill some aliens because they're obstacles to your progress, but every fight costs you limited resources so the optimal way to play is to minimise the number of kills even if that means going quite far out of your way; just with the game rules it makes a clear statement that violence is sometimes necessary but is best avoided where possible (which really confused some players who just went through blindly clearing every level and then wondering why they couldn't survive past the third). But Imbroglio forces you to kill everything that comes your way, and to think about maximising the value you get out of each kill, wtf.

So I thought okay this game is pretty dark, the hero is not only put in a context where their survival is dependent on ending hundreds of other lives, they're explicitly using those deaths as a resource. Maybe I can play up that darkness, make it clear in the game's context? Make it feel really awful that you're forced to kill or be killed, frame rpg leveling/grinding as a dark compulsion. Thought about Michael Moorcock's Elric stories as a reference, with his demon sword that drinks the souls of anyone it cuts. Vampiric weapons that grow more powerful as they're bathed in innocent blood. A tragic, haunted hero driven by a curse he cannot control, trying to do good but ultimately dooming all he loves. A power that demands a price, helping defeat your enemies but betraying you at the last moment to take the life of your dearest friend.

Those are the ideas I had going into it, but then I made it and it's not exactly what came out! I think there's an edge there of that darkness but overall it's a lot lighter than I'd envisaged, which is probably for the best since I've had to live with it. I could have probably done more with words to make it hurt but I find it dangerous to use many words in a game, people will skim past them and miss essential rules; Imbroglio already had a lot of rule words.

This ties into the graphical style. The main constraint there was functionality. I went for a high resolution style because there needed to be a bunch of text you could read, and identifiable tiles that display information about experience, damage, abilities and are still visible enough when there's something standing on top of them. Thinking about inspirations from 70s and 80s pulp fantasy novels and RPG settings I was trying to get towards the styles of illustrations in those, people like Erol Otus, background the colour of the pages of an old second-hand book (not representative of their original vision but of my relationship to it). But with all the layers of game it didn't work to fit everything into this style, ended up doing the characters more solid and bright to stand out on top of the book-sketch background tiles; functional, contributes to it feeling less dark.

So yeah idk games are weird.

Wednesday, 3 August 2016


Whenever I release a game on ios immediately people start demanding it on android. Some of them are polite and friendly but some of them are real dicks about it, like they feel it's their right to have me do work for them, it's really weird. The numbers I've heard from other game developers suggest releasing on android pays quite a bit less than ios, like 5-15% as much; shouting at me "ra ra ra why haven't you done this yet" doesn't really incline me to do what would essentially be charity work. Please don't do that.

Anyway a few years ago I did try porting Glitch Tank to android and gave up for a bunch of reasons. It did turn out to be really a lot of extra technical work, required some major hacks to get it to run at all, and when it did there were problems with the framerate, too much input lag for a quick action game, I completely failed to figure out what the problem was. Seriously I'm here to design games and make art not to do all this technical crap, I'd pay someone else to do it for me if I had money.

I mean it's not like ios has been great either, they've thrown away some of their advantages. When I started on this there were two devices to support - telephone and tablet - with predictable hardware, sensible resolutions / aspect ratio; now they keep changing that so there's no effort saved there. Every major ios version has broken one of my games and it's sometimes quite a lot of work to figure out how. But I'm kind of making enough money to live on now so hey it's still better than a lot of people's work.

Anyway yesterday I tried running Glitch Tank on an android again and it seemed to run fine?? Same device. Maybe an os update fixed the input lag thing somehow? Waiting until the problem goes away is my absolute favourite way to fix things. So I released it. Haven't tested on a bunch of different devices because indie so maybe there'll still be framerate problems or whatever for some people? But someone got it and said it ran fine for them so there you go.

This is not a commitment to android anything else. But of course I will pay attention to numbers when I am working out what to do.

Glitch Tank on android thing
Glitch tank on ios

Tuesday, 2 August 2016

imbroglio notes 6 - meditation

In these roguelikes I've been making the trend has been to move away from epic sprawl towards smaller games. Partly this is practical for making them but it's also about valuing "interesting decisions" in games; increasing the decision density by cutting out bits where you're not making decisions or the decisions are easy ("pick the weapon with the highest number"). I've found some effective methods towards this and I think 868-HACK expressed it well. Shrinking the grid minimises time spent navigating from place to place and forces game elements closer together so they interact more often. Directly linking abilities and resources to tile positions adds extra dimension to tactical positioning. Reducing the length of games means each decision carries more weight towards the outcome.

Imbroglio continues some of these trends. Grid is even smaller. Abilities are even more tightly linked to position. But as it started to take shape it became clear that it wanted to be a longer game. This caused me some concern, since one of the principles I'd been working with was basically "shorter is better". I value games being short, it makes them easier to fit into life, they get to the point sooner, it's possible to play them more times, trying out different possibilities, there's a clearer connection between decisions and outcome.

How did it end up being longer? I hadn't imposed an explicit boundary on it (like 868-HACK's 8 sectors), instead leaving it as an open-ended scoring game. This was a deliberate move to create a different structure, to get away from just remaking a previous game. And the system of leveling up weapon tiles required a certain amount of time to separate the levels, tuning those numbers to what felt right was pushing up the overall length.

I value interface simplicity, complicated control schemes with all different modes and menus are clumsy and also I don't like programming them (good justification). You should be able to fit everything on one screen, usually if it doesn't it means people have just shoved in any idea they thought of rather than doing the work of selecting which ones actually fit harmoniously; lazy design. So I really like the classic roguelike system of attacks being triggered by moving towards an enemy, accessing movement and combat with just one set of arrow keys, lovely simplification. And I really don't like the classic roguelike thing of using every key on the keyboard for something different and also having twenty different menus for items and spells and skills and levels and. Zaga-33 and 868-HACK each had movement arrows and just one flat menu of extra abilities; excited about Imbroglio going even simpler by having only weapon effects: you attack with the weapon you're standing on so the movement controls suffice to select a weapon as well as to activate it. Giving these weapons different automatic and passive effects and leveling them up when used packs really a lot into minimal controls. Ended up with one extra button to activate hero abilities, for some heroes at least - Masina/Bob/Johnny's abilities are triggered with the movement controls too and I would have loved to do this with every hero but decided it was too limiting.

But this limited control set ends up working against decision density. Each turn you're only selecting from 1-5 possible inputs, this can still be interesting since they can give quite different outcomes in terms of what options you have available in future turns, but that requires there to be enough of those future turns to make a difference; length. In 868-HACK for comparison, each turn you could run a sequence of progs (up to ten different ones, and you can use the same one repeatedly) without ending the turn, before you move/attack/siphon/wait - potentially hundreds of different combinations; breadth. So there's a direct conflict of values; decision complexity depends on number of decisions made and number of options in each of them; interface simplicity reduces the number of options and so to maintain complexity the number of decisions must increase, increasing game length.

These kinds of values or principles are useful to guide a design towards something new; you do things for a reason rather than just because it's what you've seen done before. Principles don't have to be "right" to be useful, whatever that would even mean. But there are lots of different things we want out of our designs and it's complicated, only a very simple value system is likely to be consistent. Each design is a compromise, as idealised values meet the reality of bringing something into the world. Until two values are tested against each other one doesn't necessarily know which one is valued more; each new design creates fresh opportunities for conflict.

Another value I'm thinking about is holism, feeling like all the parts work together as a coherent entity. This sometimes aligns with simplicity as it is harder to make many different pieces fit together as one, but it is certainly possible to have many parts without any being extraneous, and sometimes carrying through an idea as far as it goes does require adding more, incompleteness is inelegant. When I talk about Imbroglio "taking shape" I am gesturing at this concept; I look at the piece I have made so far and try to envisage the whole it is part of. Not a fully rational process, letting things make themselves through me and justify it afterwards. However much I plan things and make declarations about what I intend to do really I just make a thing and find out what it is along the way.

Thinking about the opening of Imbroglio. I definitely liked that in 868-HACK you could optionally face a serious challenge right from the start, depending what you siphon, here you can't really - or, you kind of can by kiting around while more enemies spawn but it doesn't gain you much. Some suggestions for making it shorter, what if I cut off the opening, like what if some weapons start already leveled up, maybe you choose that as part of your build? But leveling 16x0 to 16x4 is a complete arc, hopping off the start to 12x0+4x1 or whatever feels clearly incomplete. And you are doing stuff and making choices in those early turns even if there is not much risk, it is very fuzzy to try define which is the first turn that matters, if I could say for certain that the first ten turns have no effect on the outcome (or like 0.00001%) but the eleventh turn has 2% then that might be a good argument for starting the game there, but maybe every turn matters because of the subtle effects on where you are and what you can do in subsequent turns, maybe nothing matters at all because it's just a game and we're all going to die. Also it depends which hero, some of the disadvantages are harder to deal with at the start so there are more risks early on, and I was trying to tune the balance for all of them at once; giving the harder ones enough space to survive meant leaving the easier ones unchallenged at first; I could have had different enemy waves for each hero but it felt more coherent to have everything the same apart from the two explicit rules for each hero, no hidden extra rules differentiating them. I eventually concluded that I'm okay with there being a ritual opening to the game before you're really at risk if it keeps it holistic. Different games, different conflicts, different compromises. Like maybe from the perspective of 868-HACK's values it's a worse game but it should be what it is in its own terms.

Also there's the question of board construction, there's a basic challenge in all pre-constructed-deck-type games: the choice of deck has to matter and there's only a limited amount of matter to go around so the decisions made after that matter less. But it doesn't matter! These games can still be really good, it's just something to be aware of that the turn-by-turn decisions are going to carry a bit less weight. Here also there's kind of a third layer with leveling up weapons; it also interacts closely with the turn-by-turn tactics but draws some attention away. I'm pretty satisfied with the balance of these, they do all end up being relevant. Was very excited the first time I found a board where playing it the way that (at the time) seemed obvious performed worse than leveling things up in a different order; makes the choice to share boards along with highscores interesting because the board alone isn't complete information, you can't necessarily replicate someone's score just from their board if you don't also know their strategy and tactics.

All the talk about decisions comes down to valuing play as intellectual challenge, I also value play as meditation. A game can be the object of my apparent attention while my mind processes other thoughts and feelings, regenerates itself. And this kind of requires the game to not be all the most difficult decisions all the time, it needs to leave some space, actions that occupy enough attention to maintain some kind of focus while leaving enough free to wander. So again there's an apparent conflict of values, but on consideration many of the games I meditate best with I've first appreciated as intellectual challenges, then learnt some patterns and heuristics to guide less intellectual play. I think part of what makes this work for me is shifting attention demands, games that sometimes occupy all of my thoughts but then fade back into semi-autopilot until the next critical juncture, guiding the meditation between external and internal focus. And this kind of play I think Imbroglio achieves fairly well; you can zone out for a while - but not disengage completely, a couple of bad spawns can always kill you pretty quickly so you still have to maintain awareness of possibilities - and then you zone back in, ebb and flow of attention. (And this is important for making the game work as constructed deck game! When there is a gap in attention you can think about how to adjust the board for next time using the new information you have from playing it out.) Whereas 868-HACK you couldn't (/shouldn't), it really is full-on all the time, which is great but kind of stressful.

Optimising decision density is sometimes expressed in terms like "don't waste the player's time", but this is very narrow in how it defines certain kinds of activity as being a valuable use of time. Valuing the player's time doesn't necessarily mean making them do the maximum number of things with it, trying to pack in as much game as possible into every moment with no room to breathe. Guiding a meditation isn't a waste of time. Thinking about board games, even when the decisions you make every turn are beyond the computational limits of the human brain, usually there's some downtime between turns, maybe this is important? I had thought they were an intrusion, a problem happily avoided by single-player games because you don't have to wait for anyone else and you can just get back to work straight away, but maybe they could be a valuable part of the game's rhythm. And it is a kind of labour, playing these games, enjoyable though it can be. I've sometimes approached for-money-work the same way, trying optimise my time to do as many things as possible, pressure to succeed, rush rush rush the money's running out. Easy to fall into in our society where you have to work more than you can afford to just so you can afford to sometimes not work, and then we'd better use our free time as efficiently as possible too because it's a limited resource. You burn out that way, have to learn to take things slow.

Anyway all this rambling maybe seems a bit silly because what I ended up with is still fairly short as games go, has hard decisions, doesn't really waste time. But along the way I felt conflict!

Tuesday, 12 July 2016


just recently moved to portugal, Tara has a job here for ten months (longer would be nicer but welcome to academia).  living somewhere again is weird after more than a year, getting some old possessions out of storage.  the Proteus artifact edition just arrived (it's lovely) and it's surprising that hey i can just keep this here, have it around to look at when i want to and not worry about it the rest of the time, not having to aggressively minimise the weight of everything i carry.

portugal seems pretty good.  i don't have the language yet so that's a bit of a barrier but i can hopefully fit in a course sometime.  (i really regret not having gotten more german out of the year i spent there but at the time i was stressing out burning myself to make a game nobody wanted anyway, bad times, i'm left with a complete vocabulary of german food but nothing else.).  speaking of food, it's really good here.  fresh vegetables from the supermarket, very cheap and very good quality.  especially the fruit, like wow it is just so reliably amazing, in the uk i was just hardly ever buying fruit because it's often poor and sometimes terrible, here every fruit is delicious and also cheap.  and like i just bought some locally grown cumin and it's so aromatic you wouldn't believe, it would be worth living here just to cook with ingredients like this.  also there's cool music and stuff here, Owen recommended checking out Tribal Baroque who are amazing street musicians but just walking through the city centre there'll be something cool any time.  also we saw Radiohead last week.

portuguese team won at sports a couple of days ago, it's not something i pay much attention to but it was kind of nice hearing all the expressions of joy around, nice sense of living in a community even though i don't really know anyone here yet and language barrier.

don't have a home internet connection yet so that's slowing me down some.  it's hard to find something that's not demanding a 24 month contract, maybe ok for people who get to live somewhe long-term but extra annoying when you already have the inconvenience of being temporary.  typing this on my ipad at a cafe, my pc wouldn't connect here for some reason.

blues dance scene here is tiny and infrequent so we were thinking of getting into another style?  went to a balfolk weekend which was cool but then their regular local thing felt way less welcoming and also had volumes set to physically painful levels.  went to one kizomba class but it was gendered as heck, really offputting.  and again, painful.  (seriously i like loud music and i'm often listening to it at volumes that will probably cause long-term damage but there's a difference from that to being immediately unpleasant.). there's a queer tango group so we'll try that, it could go either way, just want somewhere /safe/.  blues isn't immune to theses problems but it seems like they're way way bigger in other partnered dances, wtf people

started working on an expansion for imbroglio.  turns out to be even more work than i'd expected, i had a lot of unused effects partially implemented and i thought i could just throw those in but actually constructing a reasonable set of things that work well together is a big deal and the complexity ramps up a lot when there's more to choose from.  so yeah this won't be that soon (which is fine because people are still figuring out the game itself).  i had some more design posts to write too, i'll get to those once i have more internet.

thinking about starting a new project too.  feels like way more of a commitment than it used to when i was making something new every week or two; spending months or years of my life to work on something plus unknown amounts of support work afterwards when platform controllers break everything.  definitely want to make something /new/, i have more dense roguelikes i can make and i will eventually but not straight away especially with work still going on the last one.  i've learnt and grown a lot since i last started making a game, maybe i want to reflect that somehow but maybe i shouldn't try, just see what comes out.  kind of want to remind people that i don't just make one kind of thing, kind of want that to be true again.  but also intensely aware of financials, now i'm known-ish for roguelikes i can kind of sell roguelikes, that doesn't translate to selling anything else, i'll make something new and amazing and everyone be sad it's not rogue again (hello helix), but hey that's still better than when i started and got no response at all.  eh probably i'll agonise for weeks what to make, finally calculate the right answer, then accidentally make something else instead.

some good progress on shoulders, they're still a bit confused what to do if they're not hunched all the time but they're getting somewhere.  some knee pain though, think i injured them a bit dancing on a concrete floor a few weeks ago and then my jandals slip a bit on the stones on lisbon footpaths so i end up holding tension in my legs all the time walking around here.  the paths are actually fantastic for bare feet, lovely uneven surface, but people here sometimes get very upset and once a mall guard even threatened physical violence so i was trying to be careful.

ok this all for now

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.