Tuesday, 30 August 2016

imbroglio notes 8 - score-o

When using a lot of random generation in a game, making things variable enough that you can play over and over again, it's easy to start thinking in terms of making something that you can play forever. Such bold dream, the eternity-game. But nobody's actually going to do it because they die, or even if they dodge that and achieve immortality somehow they can probably find something better to do tbh. The ideal is nevertheless a useful simplification because strategies for it also turn out to be pretty good ideas even if someone's just playing for a while. Aiming for an impossible ideal means trying to make something pretty good. But since it's impossible you do need to forget about it sometimes.

Testing Imbroglio and trying different possibilities there was always a question of whether you could go infinite; maybe some clever combination of weapons would exist that allows you to kill enemies faster than they spawn and heal up faster than they can hurt you. Even if not, you could definitely go quite long. How long did I want the game to potentially be? Of course the game has a finite state space; you can't go on encountering different situations forever; so something less than that seems good? (It is still pretty huge because that's just what happens if you multiply a bunch of times.) So I started thinking about putting in an ending to prevent it ever reaching a boring eternal loop. Simplest ending is just a score target, I'll do the simplest thing unless there's a good reason not to. This stops it looking like a magical "play forever" game because once you get to the maximum score there's no room to improve after that (though you can play it again anyway, same as anything). It is okay to not be for forever.

But then question is where to set this score target. If all I want to do is cut off infinite loops I could set it sufficiently high that nothing else can reach it. But then if that's something you can do, eventually enough people will probably do it and the score tables fill up with infinite loop boards, nothing else is good enough to show up. Plus they'll be pretty boring to play out for so long, maybe spend hours on one board, fully leveled up, just to demonstrate that it can keep going on. Testing endurance more than anything else. Might be more exciting to cut the tail off a bit sooner so more variety is possible. Fast builds that try to grab all the gems before the spawn rate gets too high. Builds that depend on diminishing resources, tenuously trying to stretch them just far enough to reach the target.

I wrote that it's useful to have guiding principles for a design even if they're not necessarily "right". In fact it doesn't even matter if they make sense at all, they can be wild irrational obsessions and still serve the function of pulling things together into a coherent form. So I decided to obsess over the number 4. I had a 4x4 square grid, 4 enemy types corresponding to 4 corners, how far can I take this numerology? Any time I had a question with an unknown numeric value I assumed it was probably 4. How many hit points do you have? How many copies of the same weapon are you allowed? What's the minimum number of steps to the next gem? How many kills does a weapon take to level up? How many characters? How many frames in an animation? I was prepared to use other numbers where necessary, but assuming 4 gave something to start with and see if I could make work. If something was bigger then maybe a multiple of 4 - so I ended up with 4 starting characters and 4 to unlock, 4x4 red weapons and 4x4 blue.

And like obviously this principle is nonsense! By any sensible idea of game balance or whatever, there's no way the right answer for all of these is simultaneously 4, that would be a massive coincidence. I'm not aiming to make the most balanced game, that would be a different guiding principle, instead I'm trying to make the game with the most 4s in it, and with that as my goal all the answers are coincidentally 4.

But the weird thing is that it's ended up no longer being nonsense because now it's a principle that others can use to understand the design, it makes the game readily comprehensible to players because they learn to expect 4s and then never have trouble remembering numeric rules. (Although, I saw one review claiming enemies spawn every 4 turns, which would have been nice but really they need to increase in frequency as you level up. However - the enemy waves are encoded in a 64(=4x4x4)x4 table of 4x4-digit strings so there you go.)

So I took weapons to have 4 levels, each requiring 4 kills. These numbers seemed reasonable playing it out; levels were accessible but not trivial, getting all the way to level four felt like a solid milestone. I tried other numbers, even a super fast-paced version where a single kill was enough to level up (felt inconsequential, they may as well just start at full strength), but these seemed to work well enough so I locked them in and started adjusting the rest of the game around them. So with 4x4 kills per weapon and 4x4 weapons that's 4^4 kills to fully level a board. Each gem heals two hits and each enemy might hit you once, so if we assume two enemies per gem you'll be fully leveled at 4^4/2 = 128 points. (In practice it's usually a bit later but this will do for an estimate.) It seems reasonable to let that be the midpoint, so the maximum score is 4^4=256. I tried to tune the enemy waves around these numbers; making it possible but fairly challenging to level everything / score 128, and tending towards impossibility at the point where you might be approaching 256.

Enemy waves are the least transparent part of the game. A bunch of people suggested showing more information about them, like a timer until the next enemy or whatever. But it seemed important for them to be fairly unpredictable since they're the source of chaos opposing your nice ordered board construction. A lone enemy is usually trivial to deal with so they have to sometimes come close enough together that you're dealing with groups, but if they keep coming that fast you'll quickly be overwhelmed, so they need to spawn at an irregular pace. Also sometimes they'll be an even number of spaces away and get the first hit, it's bad if this happens too often, so the irregular spawn delays need to be sometimes odd and sometimes even. So there can't be a simple display like that imagined "every 4 turns" clock, displaying a spawn forecast would be way too much extra information on the already-packed screen, simpler to keep it hidden. Very common suggestion has been to show the turn count, because regardless of specific details of wave patterns the general principle is that it's getting worse over time so you want to know how much time is passing. I tried it and it was deeply unpleasant. Extra piece of information taking up screen-space and changing every time you act so you're constantly noticing it, creates a sense of pressure, takes up space in your mind when really you don't need to know it, all you need to know is that spending extra turns is bad. Also it just becomes a very large number, I try to avoid large numbers to keep small ones feeling meaningful. Scoring 100 feels like less of a milestone when there's a number in the thousands nearby.

I think a nice thing about having a maximum score is it gives a clear goal to aim for. High score tables can be pretty discouraging for a lot of players, people see that someone got 50000 and think "I'll never get that, might as well not play". This doesn't make sense; nobody thinks they shouldn't go swimming just because they'll never compete in the Olympics; but somehow it is a reaction we are seeing with videogames. Or alternatively if someone's not looking at the top scores they might set a fairly low target for themselves based on what seems plausible within their current understanding of the possibilities, rather than challenging themselves to go deeper. Here I think the 256 goal is low enough not to be discouraging while still being high enough to demand a solid understanding of the game.

I wrote last year some thoughts about putting unlocks in the game; that's mostly still valid. I was having trouble managing the expectation that a game will never give you access to more than you can take in at once. I think as the game started to feel finished people became more willing to accept how it was as being how it was meant to be. There's a line you cross making a thing when it starts to feel self-consistent, then there's a lot more freedom to break conventions because what's there is strong enough there to establish new ones. Good place to be. I think maybe because of the rule complexity or the graphical style Imbroglio took longer to get there than I'm used to, I think the specific point where it really got there was when I put in the animations for damage/restoration/collection. Other games it's different things, never really know in advance what it's going to be just working at it and then one day the thing you're working on happens to be the critical piece and then suddenly it's alive.

I ended up setting 32/64/96/128 as goals to unlock 4 characters each with 4 weapons. This avoided the problem I was having with other unlock systems where people were feeling pressure at having new things before they'd fully understood the old things, because the focus is on the character and that is just one new thing. The new cards are very much de-emphasised, there's not even an announcement screen saying "well done have these new cards", they just quietly show up.

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

android

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

portugal

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

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