Thursday, 24 May 2018

imbroglio notes 13 - phlogiston

I discussed the genesis of "charging" in episode 4 - it was originally a status attached to the player which some weapons would spend for an extra effect. But it was more interesting to attach a status to enemies to create more variety of possible situations, so it went away. (Plus it overlapped a lot with the concept of spending hit points for an extra effect.) Working on expansion, I came back to the original thought and hit on the idea of attaching the status to weapons instead - also creating more possible situations than the binary player charge. And the basic charge effect can be extra damage, which is always good so we're not dependent on a whole suite of weapons saying "if charged, do this". But it still takes up a lot of space so I dropped it from the first expansion so there was more room to build on the elements already in the game.

Bennett felt that extra damage was a boring effect and suggested bouncing to hit multiple enemies instead. I don't agree that it's boring - it's the difference between needing 1 action or 2 which is massive, not like RPG where it's 20 or 21 - but I did need more ways to hit multiple enemies to deal with end-game situations and this gave a nice general solution which could fit on lots of different weapons. I kept both effects because the multi-hit is very rare through most of the game but the extra damage is always relevant. Went through a few different versions: at first it just hit all connected enemies with extra damage but this was too strong and also meant the weapon's base damage didn't matter very much. So I went instead for a hitting a path through enemies losing 1 damage each time, adds some unpredictability when there's multiple possible paths (incidentally giving Molly something extra to control). This felt slightly too weak so the final version hits the first for +1 damage then all the rest at base damage.

I had a whole mess of different charge weapons with different effects, thought about separating out the different kinds of effect to organise them a bit more. Maybe the first expansion only has self-charging weapons, then a second one can charge other weapons, a third one has combo effects. Ended up dialing back combo effects because charging any weapon already allows a huge number of interactions, and any extra side-effects stacked onto charges end up insignificant because mainly you're damaging them to kill them anyway. Only self-charging weapons felt a little limited, and realistically "wow you thought weapons could only charge themselves but now -" is too obvious to be a surprise. So I went with red weapons self-charging (because red weapons do more direct damage; charging themselves is a way of doing that) and blue weapons charging others (combos). Self-charging still felt a bit plain so I brought back some of the charge combo effects as one-off effects for these weapons - rather than "all charge attacks arc diagonally", "all weapons can hold an additional charge" we get individual red weapons that interact differently with charges.

Thunderbolt Jade
Obviously I wanted a charging hero so the first power needed little consideration.
The disadvantage comes from a separate design branch. I'd been trying to think of more central systems (like "cursing", "charging", "spending") that could power a whole group of weapons, I had this idea of event cards that maybe change every gem or so and give an ongoing effect - like weather, seasons, environmental conditions, astrological phases. Maybe that's too much like hero effects, maybe we just roll a die for a symbol that modifies some weapon effects. Simplest version - only two states, maybe day and night, alternating. So for a while I had several weapons with distinct "night" effects, they can have bigger effects than usual because they only apply half the time, but ultimately they felt too arbitrary because you need to be standing on the right tile with the right configuration of enemies and have the right parity of score. But the "night hero" effect was worth keeping because you have to constantly take it into consideration. I really like the different tactics it brings out with trying to race for the gem in the "night" phase and preferably deal with the enemies during "day". It shifts the equation of when to collect the gem - usually you prefer to take a hit first to get the most out of healing, but taking a double hit just to heal one is no better than skipping the heal and only taking a single hit.
It wasn't obvious that these effects went together because I was thinking of them as separate systems - the "night hero" and the "charge hero". But since both give extra damage (to hero / to enemies) it ended up making sense.

Oko the Gnome
In early design I thought each enemy would have a special ability like 868-HACK, and one idea was a ranged attack with mana cost. And one idea for hero disadvantages was to boost specific enemy types, like Dominic's serpents, so I came back to this: one enemy gets range. But it didn't come up often enough because it relies on specific positioning (unlike Dominic's which almost always matters), so I extended it to all enemies. It works differently for each type anyway because they have different amounts of mana to spend. (And then the "one enemy type gets range" ended up back in 868-HACK for the PLAN.B expansion!) This one also makes some really interesting shifts to the tactics.
The "delay spawns" power doesn't have much thematic connection, they're just two weird effects I wanted to include that didn't fit on anyone else so I mashed them together. I think it ends up okay, he's the weird guy with weird rules? In principle it can deal with any enemy situation - you just need the foresight to use it before the situation actually occurs so there's a nice skill challenge there. At first I didn't have it blocking enemies that have already spawned but not entered and it was even more challenging to use well but I think this is better - if maybe a little too strong now.
One bug that came up: enemies spending mana would trigger Ixxthl's Ring, which would then heal the player. One side-effect that came up that I decided wasn't a bug: enemies spending mana can charge Cosmic Battery.

Storm Hammer, Quicksilver, etc.
All of these charging weapons went through a lot of different versions, I'm not going to record everything here. Mostly a matter of trying to figure out which charge triggers were strongest and shuffling them around with damage and side-effects so that each weapon has its own merits.

Cosmic Battery
See Repercussion Drum: that was a red weapon that spends blue mana to enable Ring combos with less pressure on the blue weapons. Now here's a red weapon that's activated by spending blue mana next to it; same principle.
I considered storing unlimited charges but it turned the combos with Eye and Alembic from something cute and interesting to something boringly strong.

Sacrificial Altar
Had the concept of an altar taking a blood sacrifice when moved onto for a while. Initially it gave a rune, this seemed a nice trade-off, lots of extra risk from the lost hit points but runes giving a lot more ways to get out of bad situations. Ended up way too strong with some heroes, so many runes. What about scoring gems - obviously "spend #r to gain #g" is too much because the gem heals you right back but maybe fractional gems? Attracting them like the Dream Wheel (i.e. giving 1/N of a gem when the gem is N steps away) feels too much like just a copy of the Wheel. Giving them on level-up (so each experience notch is a 1/4 gem) could work, you'd have to loop it so it doesn't just give up after 4; but ends up feeling a lot like a Wheel again because kills advance it too. I didn't want to add a whole new tile property just for this one effect. What about using charge as a way of counting half-gems? If uncharged: spend hp to charge, if charged: spend hp to discharge and get gem. This scores too fast so I just dropped the second part and had a self-charging weapon that was interesting on its own. It's a bit like a red Claws except you pay in advance. It stays charged until used so it wasn't murdering you all the time just for walking around like earlier versions did - probably a good thing.

Esoteric Prism
Basic charge combo, paralleling Witchpact Blade's curse-counting. Also after Altar stopped gaining runes I wanted some other alternative source.

Polymorph is one of my favourite of the classic Roguelike effects; it's a huge part of Nethack, it became a significant ability in 868-HACK, and it's now a significant effect in Cinco Paus too. So of course I tried it in Imbroglio, one of the early weapons was a polymorph wand that transforms what it hits. But often it would transform into something that couldn't survive the damage it had already taken, so rather than an interesting polymorph effect it felt more like a random kill effect. I tried a version with 0 damage but that was an awful trap. It made more sense as a hero ability; this ended up (in simpler form) being Ixxthl's power. But making an alchemy-themed expansion I came back to the idea of a "proper" transmutation effect and realised it would work better applied to other enemies than the one you're attacking. It fit well with other concepts in this set too: charges arcing around make distant enemies more likely to be damaged and thus vulnerable to being killed by the transformation; plus I named it after an electrical component (though Leon really doesn't like that I've used an electrical name for something that doesn't directly mention charges).
It's a highly random effect so like Blink Dagger I level it up by giving some control over the outcome. It felt weird when there was only one other enemy because it would always automatically select that one so I gave the option to select none. Also felt weird when it killed multiple enemies in one turn (e.g. if it was charged) because it would transform everything, pause to let you select something to transform, and then invalidate that by transforming everything again, so I made the first effect "once per turn".

Extension Cord
Leon's suggestion (note the electrical theming matched with a charge effect). It's a fairly minor effect but I thought it was cute and I gave it early damage to compensate. Might buff this later.

Golem Gauntlet
Unapologetically the charge version of Blight Broadsword. Originally it only leveled up when you charge it but I thought the text "only devours charges" was ambiguous and people might interpret it as eating charged hits too - and maybe that's better anyway because it gives it more flexibility. It's nice that Susannah can use this version without needing a blue weapon to charge it.
The IV effect was "every turn, charge this" but because in general it's faster to level than the Broadsword I reduced it so "when you collect #g" so it's not at 4 damage all the time (plus that was too much of a combo with Alembic).

Lightning Rod
When I classify red weapons as self-charging and blue as other-charging, what should happen to this that does both? I didn't want to get rid of it because I'd really enjoyed playing with it, setting up an engine where something gets charged then I step-by-step position my battles to bring the charge down where I want it. I could have skipped the middle step: discharge above to charge below; but that wasn't as fun (and also didn't give separate tiers of effect as it levels up). Eventually decided it was acceptable for blue because the intention is clear that it only charges itself in order to charge something else.

Spark Plug
Simple charge effect.

Agony Fuse
Hit on this idea by thinking through a list of electrical components to see if any of them inspired effects. A fuse made sense, stopping a circuit if the current exceeds a reasonable limit = stunning enemies if too many are attacking at once. Losing levels to save your hero makes it a bit like a mini-Amulet, but it's a sufficiently different implementation that I think it's okay. Added the second effect to appease Leon.

Ectoplasm Capacitor
Wanted something to tie charge combos into curse/ghost combos. Originally the first effect cursed but it was very minor; killing is better.

Someone suggested a hero that benefits from overhealing, so they wouldn't feel like the gem heal is wasted when they collect it at full health. That doesn't really fit into the model the heroes follow, as it's neither a disadvantage nor a rune effect, but it works as a weapon. Made the trigger blue because it's most likely to overheal with the common enemies being red.
I wanted more different ways to charge weapons so I went through each weapon thinking "is there a way a charge can fit into this concept" and came up with an effect that mirrors the healing - too much blue hp overflows into red hp too much red charge overflows into blue charge. Nicely broadens the red weapon charge effects that only charge themselves, also works with other blue charging effects if they're aimed at red weapons.

Alchemist's Eye
I go through every effect I can put in the game to see if it makes sense to have a version that spends mana. Spending to charge was an obvious effect, I tried several versions - charging self, charging random, charging target. Charging the target works well with range because it gives more possible targets. This proved too strong a way to charge things, especially in the early-game because it didn't need to be leveled up (I don't like to put mana spends after leveling up because then you have to keep track of whether a weapon has acquired a disadvantage).
I also tried a weapon that spends mana to level up other weapons - like a blue Blacksmith's Tongs. This also works well with range. One problem with it was that after those weapons have leveled up it stops doing anything interesting. So I combined the two! Putting the charging at level 4 stops it being overpowered early on without having the weapon acquire a disadvantage later on - you start spending on charges when you stop spending on levels.

In an early prototype I was looking for ways to make different combos, I thought of some weapons generating an enemy type that acts as a resource and other weapons using that resource in different ways, so right away I put in Cauldron as the simplest way to generate those enemies and Mask as the obvious way to make them useful. This combo dominated early versions, several playtesters became obsessed with it - I think because it was easy to spot and obviously strong, it was quite fun but also frustrating to get started. I wanted it in there but I didn't want the frustration to be people's first experience of the game so maybe I move it to unlocks.
It's nicer if a component can be used in multiple different combos, and that wasn't true of Cauldron. Most of the other ways of creating ghosts were useful on their own - converting an enemy into one that's easier to kill. And the Mask is useful with any ghost source. But the Cauldron on its own is mostly a disadvantage - you kill the ghosts to feed weapons or for on-kill effects, but these interactions weren't good enough to be worthwhile alone. I tried giving it extra effects to make it worth the risk of dying to ghosts, but that just made it even more overpowered when the Mask inverts that penalty. In the end I kicked both items out of the game in the hope of maybe solving their problems later. Making Mask only affect one ghost at a time made things a lot better so I put that in the first expansion. I decided to split them up so people would explore one without getting fixated on the particular combo. Cauldron first could be intriguing, it poses a question - why make ghosts? - and then you answer it later. But the first expansion really needed good possibilities to build different boards with, not bad cards that might get made viable later.

Philosopher's Stone
For expansions I wanted to enable more weird combo builds, and alternate win conditions are a classic way of creating those, so I thought about different methods of scoring points. The initial game focused on the one method of moving around to collect gems, with cards that might help with survival (so you have more turns to collect gems in) or speed (so you get more gems per turn), and one special scoring effect with the Wheel.
In early design before I'd pinned down the main scoring system, I had the concept of weapons being worth points as they level up. Like Dominion where victory cards take up space in your deck, maybe Imbroglio would require trading strength against scoring in board construction. So I tried a bit of this again, maybe a basic red damage weapon with points on top, this was functional but ultimately not very exciting - it's easy enough to level that it couldn't be too major a component of scoring, and for weird alchemical combos I was really looking for a Magnum Opus that would have a significant effect.
Looking for more mana-spend effects, I tried cards that trade hit points for real points. This doesn't really work because scoring a gem heals back what you spent on it straight away, but maybe it could cost 2 mana? Or what's worse than spending mana - how about spending it permanently?
The maximum score is 256, so with 4 copies of a card that's 64 each, or 16 per level. I really enjoyed making the card text display ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦; it feels proper big. Of course you're not going to level 4 of them, even leveling one of them all the way kills you (but it stills count as a win if that gets you to 256; dramatic!).
I think this version is slightly too strong, but the other versions I had were slightly too weak and in general I've come to feel like it's better to err on the side of the player. If I release something overpowered then people have fun breaking the game but don't mind if it gets nerfed later, if I release something underpowered people complain that it's useless and then complain again when I buff it later - I don't understand why. I particularly think of Festerfang Venom which I spent a long time testing different version of that were all too complicated or ridiculously strong until I found a simple version that's on the edge of being useful but doesn't play itself and automatically kill everything - and nobody likes it, probably I should have just released one of the stronger versions and let it be a bit broken, why not?

Wednesday, 4 April 2018

Phlogiston preview

Imbroglio: Phlogiston, the second expansion for Imbroglio, will be released next week! It is an alchemical laboratory filled with strange experimental equipment and dangerously mutated creatures.

The main "shiny new thing" to be introduced is the concept of charged weapons: a weapon tile can become electrified to empower its next attack with bonus damage and chaotic energies that arc through adjacent enemies as well. This is like a new resource to gain and spend, but instead of a number that goes up and down it's stored on the tiles on the board. It creates a whole new range of possible board constructions. With the extra damage it's kind of an alternative to Whetstone; hitting multiple enemies it's kind of an alternative to important board-clearing weapons like Echo Harp and Witchpact Blade; and with a variety of effects triggering off it it's kind of an alternative to curses for building combo boards.

What kind of combos? Time for some EXCLUSIVE PREVIEW CONTENT oh no!

The Lightning Rod basically moves a charge from something above it on the board to something below. (You might as well put it in one of the middle rows.) What goes on top? Something has to create a charge in the first place; this is strictly a combo weapon. What goes underneath? Pick any weapon, maybe there's something you think will benefit especially well from becoming charged. And in the middle - it charges itself along the way so that's a bit of extra damage too.

And of course we have also a new alchemist hero who can manipulate charges, empowering her weapons for extra damage:

"At night" is just a fanciful way of saying "every second screen". Remember how the walls are darker sometimes? That's night-time. At one point I thought this was going to be a whole big thing, I was designing all these cards that had special night-time effects, but honestly "this doesn't work half the time" isn't a very exciting hook so forget it. But for an enemy bonus it's solid, it creates a rhythm alternating between business-as-usual and fleeing-in-terror, it totally changes the tactics around when you want to score a gem. And with both the hero and the enemies boosting damage the stakes are high; this is a challenge for skilled players.

Most of the new stuff revolves around charges, but there's a few other weird little toys to play with too. Alternative ways to score gems, to level up your weapons, to play it safe or to gamble everything.

Wednesday, 17 January 2018

Cinco Paus has been incredibly well received; a lot of people are saying it's my best game yet, reviews are consistently highly positive (nobody on the appstore has rated it less than 5 stars), everything I'm hearing from players is great. This has not translated into many sales; it doesn't seem to have spread much past the circle of people who are already following my work. Weirdly there have been quite a few new people buying 868-HACK - it might be that people are hearing good things about the new game and then buying the old one instead because it's somehow seen as an "entry point" to my work? I guess I can't complain about this but they are very different games and I suspect for a lot of people Cinco Paus would serve as a more accessible entry point - it's more immediately fun, with less technical resource management, also it might be a better game. For similar reasons I'm a little surprised by the lack of recognition from the IGF - 866-HACK and Imbroglio were both design finalists and I'd hoped that with this one having a bit more immediate accessibility it might be the one to have a chance at actually winning - but I don't really know what's going on there now that Design, Nuovo and Grand Prize have all merged into the same category. Anyway, not to worry, I'm very happy with the response from people playing it and it's okay if sales are a slow burn.

I discussed my thoughts around expanding/porting Imbroglio. I've had an expansion just about ready to release for months but kept delaying it because I felt like it should wait until after the PC release. But I've realised part of what's been getting in the way of me porting it is that updating it with expansions becomes a bigger task the more platforms it's on, and I want to keep being able to do that in the background while working on new projects. So I think the answer is to keep it just on iOS for now, expand it there, and then eventually do a full PC release with all of that content included once I'm done meddling with it. Sorry I know that's not an ideal solution for everyone but it's one that works for me.

Started messing with a prototype that might turn into yet another tiny roguelike, not sure yet if the concept works, it's a slightly awkward one that needs quite a bit of stuff built up first before I can really test it. This might just be a bad sign; I usually get the best results from ideas that I can prototype super-quickly, but I don't want that to be a limitation on what types of things I can ever make so I'll sometimes try the tricky ideas anyway. I'll hopefully be able to reuse some things even if the main idea doesn't work out.

From thinking about what's seen as an "entry point" to my games, I'm wondering if I really ought to prioritise making something that might establish a new entry point, and I think the way to do that is to make something that is perceived as somehow "bigger". It's really nice that 868-HACK continues to sell and reach new people but it won't be enough to keep sustaining me. I'd very happily continue making games on the same kind of scale that I have been, but I know part of why they're hard to get attention for is that they're "small". Imbroglio was really quite a large project but a lot of the work was paring the design down to essentials and making it work in a tiny space, work that is unappreciated in an industry obsessed with BIGGER and MORE. So the challenge for me now is to find how to make something that will fit that perception of being "bigger" to get that attention on it, without completely throwing away the design principles that make my games good by making them small. Let's see what I can do.

Wednesday, 27 December 2017

Cinco Paus - dev notes

Cinco Paus (iOS appstore)

The idea came out of a conversation with Zach Gage about item identification in roguelikes. Got me thinking about partially-identified items: how can you use a tool without finding out all of it's effects? Situational effects that don't happen every time, you have to try them in different conditions to discover them. Randomly generated so it's just not a matter of spoilers.

I have this approach to design of taking a few elements from a genre and giving them enough detail to carry a whole game, maybe eventually I'll have built a game about every element of Rogue. I've done single-use scrolls/potions (Zaga-33), reusable spells that cost resources (868-HACK), weapons/leveling (Imbroglio), what else? I want items that you can use more than once (with increasing degrees of identification), but probably a limited number of times so you can't spam them and learn everything; in Rogue these are magic wands, they shoot rays affecting every enemy in a straight line path. This fits well with the idea of multiple situational effects because different conditions could apply to different points on the path, let's use it.

Decided to work in Portuguese because everyone else in my Portuguese course was working here so they get more day-to-day practice than I was sitting at home working on English-language games. More of an immersive learning environment if it's my working language too; obviously I'm not at a level yet where I can use it for everything (I'm still blogging in English!) but I'll do what I can. And it worked, for expanding my vocabulary at least - I started by using words I know (the basic enemy is a shrimp because I've eaten them here so I know how to call them) but then later I was having to look up more and more words, and now often I run into words outside that I recognise because I looked them up for the game.

I've been interested for a while in making a game in an invented language but just using an existing one that's not English still invokes the kind of textural quality I was aiming for.. less so for people who speak it (the sixth biggest language in the world) but for them perhaps there will be the "all your base" kind of badly-translated flavour? (Because, yes, I'm just a beginner in the language so not everything is correct!) Also a lot of people who play my games are in the USA where Spanish is the second language so I expect they'll get some clues from the similarities there, and a lot of people speak some other Romance language and so will pick up something at least. There's a sense of relinquishing control here; in English I know exactly what I'm doing when I misuse the language, exactly what effect it has, here I have to accept more uncertainty (and at the same time realise that this diversity of understanding is there when I work in English too even though my own command of the language is strong).

Knowing that the majority of my audience won't be able to read everything made an interesting design constraint, gave me extra inspiration about how to make everything deducible through reason and experimentation - not a bad goal anyway (as every game designer learns - players do not read the instructions)! From a few reactions I've gotten it seems like for some people it is much more upsetting to encounter a genuine foreign language than gibberish symbols or no text at all; I don't quite understand this but I find it a valuable experience to spend time in an environment where things aren't made for people like me, and if I can share some of this to challenge others then I'm happy.

I had to pick some default numbers for the first prototype. How many charges should a wand have? At least 4; use them a couple of times experimentally to learn about them and still be able to use them in earnest a couple of times. No more than about 7 to keep it a challenging constraint to balance learning about them and using them. How many effects should they have? Maybe a couple that are easy to discover and a couple that are more obscure. How large should the grid be? There needs to be space for a ray to carry and meet a few different configurations; Imbroglio's 4x4 would be too small. So to go full numerology again I just set everything to 5 to see how it went. The name came straight away here too, "Cinco Paus", it felt like it had a good sound to it, I had this already before I committed anything to paper. A few months later I found the Tarot card I'd been using as a bookmark some time before this, I was spooked for a moment before I remembered that this was the direction that makes logical sense for time to work in - I'd been using this card, I didn't consciously remember it but then the words felt like they went. And I had known that the Tarot suits were where I'd gotten the idea to use the word "pau" (literally "stick") for the wands.

So we have 5 wands with 5 effects and 5 charges, 5x5 grid, 5 hit points, 5 enemy types, 5 zones with 5 enemies on each. The grid size matching the wand array lends itself to connections, but this started echoing Imbroglio too closely so it's only on a couple of minor things. There's a progression as you gain wands / information so it makes sense to face stronger enemies later, so we need a progression of enemy strengths instead of like 868-HACK where the enemy types are differently equal. As with Imbroglio I expected they'd have more abilities - jumping frogs - but hit points turned out to be sufficient to differentiate them. 1,2,3,4.. 5 hit points is too many because then you can't take it barehanded, so the fifth enemy needed to do something different; I went for another 1-hp enemy with an ambiguous ability (not strictly advantage or disadvantage). Effects to kill a specific type were obvious, but I didn't want effects that were strictly inferior to each other and killing a 1-hp enemy is worse than simply doing 1 damage to any type, so the kill effects for those needed an extra rider.

Starting with the full set of wands instead of collecting them as you go made for a powerful simplification, put the focus on acquiring information, neat feeling to have full capabilities from the start and be able to trigger powerful effects but not be able to use them wisely yet. But then having 5 charges from the start meant you had to think about how to ration them through the game, you'd never lose on the first levels because you could blow through all your charges but then have nothing left, or if you didn't have trouble on the first levels you'd save up all your charges for the end, either way it felt a bit off. So I tied charges to progress through the zones, the extra constraint makes each discrete zone a richer puzzle and losing the possible long-term resource management didn't hurt much.

Took some time filling out different ideas for wand effects, a lot of these were very natural, some standard Rogue wands (sleep, polymorph, teleport away). At first I had more negative effects but they weren't so important, all the negative-ish ones I've kept have some occasional positive value too. Thought about whether the same effects can apply both to the player and to enemies; Nethack goes into a lot of detail with this, you can zap enemies with polymorph to hopefully turn them into something easier to kill, or yourself to maybe become a dragon or something, or your items to have a chance at getting better stuff. It's neat but it really puts a lot of constraints on the whole design that everything has to work like this. For most simple effects there's little ambiguity who you want to use it on; heal me hurt them, and with each wand having several effects I wanted to keep the effects themselves very direct. So there's no self-zapping, that will have to be a different game.

For the levels I went with an idea I've used a few times before: getting the most out of a small space by making you cross it more than once from different directions. Started with a simple version from an early Imbroglio prototype: the exit door is locked, there's a key somewhere on the level, you have to get through to the key and then back through to the door. To add score variance there's also another treasure and maybe you cross the level an extra time to collect that too. But requiring the key to exit the level put a restriction on how wild the wand effects could be; no disintegration rays that destroy everything including treasure, no polymorph rays that would turn the key into another kind of treasure, no fun. Tried just opening the door when you destroy the key; boring. At one point I had a complicated set of rules to make sure you could get another key after you'd destroyed one - the next treasure created is a key so any treasure-creation wands will get you out, otherwise the next enemy spawned is a rooster so that will drop a key if you can kill it. It got really messy so in the end I simplified it: the exit is always open and you can just go through without any treasure, it's easier to survive and the system is more resilient to silly wand effects, it's better. I still liked the way the key forces extra traversal so I locked up the other treasure in a vault, maybe you have to backtrack for it.

Other treasures, of course there are 5 kinds (including keys); at first I made them each give 1 point and 1 of something else.
* Potions (healing) felt pretty weak, I was finding I usually had enough life unless I got into a really bad situation where one hit wouldn't make the difference, then I thought of removing the rule of "heal 1 when you reach a new zone" and suddenly they became super relevant, also made it a lot riskier to grab extra treasure, more of a tension between scoring and surviving rather than just being able to solve every level. I'd started using that rule in Zaga-33 as a simplification of Rogue's healing over time to account for the lack of bad timers in that game, it became more important in 868-HACK with fewer total hit points, then fundamental in Imbroglio where there's no way to avoid some damage so the whole game is about balancing damage taken with progress/healing. So I'd just included it out of habit, I had a blind spot about it for a while but once I properly examined it I realised it had no reason to be here.
* Tomes (identification) seemed basically fine all along, helpful but not essential.
* Gems (charge) were a bit much; recharging a wand that creates or duplicates treasure maybe lets you create another gem and recharge it again (similarly I had to ban wands that recharge + generate treasure). But other times you'd get a recharge after you'd cleared a level and it was now of no use to you. So I switched to them being saved up; 5 gems gives a recharge at a time of your choice, this seemed basically okay. Later I introduced artifacts (see this post) and instead 5 gems gives a lamp that can recharge a wand once per game - or something else of similar value; now gems feel like definitely the most important treasure but I think it's okay.
* Chests (point) felt unimpressive because points have no actual value in the game, everything else tangibly helps you survive and progress. So I just tried making them worth more points (5) and it felt like it solved the problem even though it's still just a number going up that doesn't do anything? Games.

(spoilers maybe?) For the artifacts, collecting many of them or having more than one copy of the same made them feel mundane, so I put a maximum of 5 and no duplicates. It felt appropriate to give some choice about artifact progression to help deal with all the random stuff that also happens. A choice means at least 2 options, so to choose 5 artifacts there must be a total of at least 10. Could be more but I think it's good to get a chance to pick up any given artifact; you might think that a particular one is essential and a streak is worthless if you don't get it, I don't know. You can't guarantee getting any two because they might be offered as a pair to choose between.

Sunday, 24 December 2017

Thinking about what to prioritise working on next:

I've been saying i'll release Imbroglio on PC for a while. This hasn't been a high priority for me; 868-HACK has sold 11% as many copies on Steam as on iOS and Imbroglio has only sold half as many copies as 868-HACK in the first place; basically I don't know if it's worth spending much time on. Does anyone actually care? I could just skip this and save myself some time and an ongoing support burden. (p.s. don't talk to me about android; ratios there are even worse.)

I have more ideas for expanding Imbroglio, there's quite a bit of stuff that I started trying out during development but I didn't fully pursue because I needed to get some kind of finished version out. But the numbers are saying it's a lot more worth my time to make a new game than to add more content to an existing one; the Ossuary expansion for Imbroglio has sold 1600 copies and PLAN.B for 868-HACK has sold 900. So unless these take off a bit more somehow, expanding Imbroglio further is just selling to a diminishing fraction of really earnest players; I guess the question is whether I can charge a bit more to make this worth working on? This is something I actually really do want to do, I feel like the game isn't quite complete yet, there aren't enough options to make a really varied possibility space, and I know what to do to get there, again it's a question of whether anyone else cares.

Aside from these, I'm definitely starting on a new game soon and, well maybe there's not too much sense trying to plan that because I'll go ahead and make whatever I end up making regardless, but still I'm curious what people would want to see from me next? I know everyone thinks of me as tiny roguelike man now and hey I have sketches for a few more of those I could definitely try to build, but I'll make anything. Imbroglio selling less than 868-HACK makes me wonder if I shouldn't keep going in that direction right now, but I don't want to read too much into it and I'll have more information on that trend soon anyway. I think I'm going to try for at least a couple more smallish games next before getting stuck into a big project, we'll see. But yeah I'm interested in (non-trollish) thoughts on the matter!

Thursday, 21 September 2017

streak scoring redux

Hard at work on new game! Sorry if I'm behind on other things but making new is good. It was meant to be a really quick project, under 3 months, but it grows. Now it looks like it'll take about 6 all up, that's not too bad, I'm quite determined to not let it sprawl out past that.

This is another entry in my roguelike series (YABR), I'm feeling better now about doing that and not pressuring myself to have to do something flashy and different every time (ref). But still when I encounter similar problems I try to take enough of a different path that I will be discovering different things along the way.

It's a very short and random game (what a surprise), it's quite successful at generating an entertaining variety of situations, but the luck element makes some scenarios easier than others. I already know how to solve this: give the option of increasing the difficulty by taking more risks in exchange for some kind of reward. 868-HACK's score walls that generate N enemies for N points are a very direct version of this, here it's a bit messier but the outcome is similar: getting to the exit is usually not too hard, figuring out how much treasure you can pick up along the way without dying is hard.

One problem solved, but it creates another one: how to meaningfully compare scores between games? Maybe I got 30 points because I correctly estimated that I could safely cast Duplicar on some treasure chests and still get to the exit, and you got 5 points because you correctly estimated that it wasn't safe to pick up the treasure and instead cast Teleporte to get straight to the exit - we might have both found the best solution to the scenario we faced but the first one gets a bigger number. One option would be to calculate the value of every path the player could have chosen and normalise their score appropriately - what percentage of possible points did they purloin? This is takes a lot of computation and I feel it is unintuitive, and still it's not necessarily "fair" because the distribution of difficulty can also differ - in one scenario it might be trivial to get 90% and very hard to get the last 10%, etc. My preferred solution is to take scores across multiple games and combine them into some kind of average.

I wrote at length here about how I arrived at the "streak scoring" mechanism for 868-HACK, striking a balance between the over-cautious play demanded by streaks and the over-risky play demanded by high scores. In a way it is less "perfect" than taking a simple average - it allows you to play throw-away games where you take silly risks and have them not be counted. But in exchange it creates some space for play in tuning the balance between average score and streak length to optimise the product; in HACK there have been substantial swings in opinion over time about where this balance lies. Also to me it feels more intuitive and fun; average score feels like a very technical statistic, "keep exploring caves and accumulating loot but try not to die!" fits naturally into game world. So my thought was that maybe I could simply slot this same mechanism into a new game? Basic survival is a bit more difficult than in HACK so maybe it could work without needing difficulty escalation (which HACK had with "bonus powerups" becoming more numerous across a streak), it could be a minimal proof-of-concept to explore how it worked to just tack this system on to any game without extra supporting infrastructure.

But once it was structured as a connected series of games, the natural thing to do was to use that connection. I had given up on a spell effect that affected the next level because it was undefined on the final level but now it could simply apply to the first level of the next game. There was one treasure effect that had turned out to be much too powerful, now I could balance it by making it require accumulating several before you can use it - possibly across multiple games. This became a resource you could save up to use in an emergency to save your streak, it made some bad luck feel more fair. This was a neat possibility for streaks that I hadn't really explored with HACK (there is just .SAVE in the PLAN.B expansion). But even with these small connections I realised it didn't feel right; even though each individual game could be very different to the last, each streak was a similar soup blended from the same random ingredients. Something changes in the first level of the next game but then you move on, you save something up but then you spend it all and you're back where you started, there's no sense of getting anywhere. It'd be better if each streak could somehow have its own distinctive flavour at a macro level, some sense of permanence or progress to your actions.

Thought about somehow leveling up the hero character. The resource that you accumulate across multiple games: instead of being spent for a one-off effect, maybe it's spent towards permanent upgrades. But it's not so interesting if you just get stronger and then the game is easier and it just snowballs - hence HACK's "bonus powerups" powering up the enemies and obstacles rather than the player, so in the end I've found myself going down much more of a similar path than I'd hoped to. I can still veer off in a different direction! The enemy powerups stay for the whole streak instead of changing each game (thanks Droqen for helpful discussion); one streak the lizards will level up and now all the time you're fighting LIZARD WIZARDS, another streak it might be QUICKENED CHICKENS instead, and then you'd make different choices in how you level up your character to deal with them.

So now I have two separate progression systems that span multiple plays of the game and I'm wondering how my simple quick project managed to increase in scope.

Monday, 24 July 2017

plan.b notes

nerdy detail / spoilers.

Since making 868-HACK I've kept a list of ability ideas that might fit if I was ever working on it again. (Some might fit in other games in the family too - I think I used some for Imbroglio.) At one point I started planning a parallel-universe version with alternate interpretations of all the progs - could rotate some of the enemy counters, .C_BOM instead of .D_BOM, .ANTI-G instead of .ANTI-V - but a lot of the other ones there weren't interesting alternatives for so it felt weak.

In April I had to update the game which got me thinking about it again, I also happened to revisit the village where I'd lived while making it which got me thinking about my process again. A few days later I woke from a dream in which I'd been playing a new version of the game which featured a prog called .PLAN.B and an upgrade tree where across a streak you can improve progs of your choice (e.g. .WAIT gets a shield to block attacks while you're waiting, .WARP damages adjacent enemies as well as killing the one you teleported onto). The prog idea at least seemed good so I started coding it up straight away, one thing led to another and I guess I made a whole expansion pack.

A central principle of 868-HACK's design was to fit in as many different interactions between abilities as I could. An idea I didn't get working was a prog that directly referenced your other progs - maybe double the effect of the next one you use, maybe trigger another one at random, I tried several ideas along these lines but none of them worked very well. What dream-PLAN.B did was trigger a random prog from the sector you're on, and on waking up I was shocked that I'd not thought of it four years ago - it's way more interesting to play an ability that's not even in your hand than to play something in your hand cheaply but unreliably. The dream version had a fixed price but this made for some horrible interactions; at 4 or less you're getting the big effects like .ATK+ and .SIPH+ far too cheaply and at 3 or more you're paying too much for the small effects like .WAIT and .PUSH. Simpler just to use the cost of the prog itself - you're still getting a discount on it by not having to fight its enemy spawns. Aside from that it was perfect. The limited pool on each sector is manageable but always varied, and restricting it from selecting something that has no effect right now gives you a lot of control (also using .CRASH to remove unwanted options is a very niche interaction but cute). Plus it gives a use for the prog-walls on later sectors which usually you're never going to siphon.

The idea of upgrading progs wasn't practical since it required designing and balancing new specific effects for every prog; I would have had to make them with this in mind in the first place. But I got to thinking more generally about building something across a streak. I tried simply having your credits and energy carry over to the next game, but that just made all of the openings less challenging. So I went to a prog effect: .SAVE transfers a siphon to the next game (less of a direct advantage than resources because you still need to use it). Cue everyone suggesting more such progs to save different types of resource, but this doesn't add anything distinct and they start to get in the way of the immediately useful abilities you need to survive the current game. It's a problem that .SAVE isn't very situational - you want to use it at the last possible moment, when you know how many resources you'll have left. I tried some different limitations to avoid this, mainly using the same trick as .SCORE to get more out of it the earlier you use it, but that created the exact same dynamic as .SCORE so it wasn't worth the complexity, eventually I just went with the simple version. Even though you want to actually use it at the end it still influences your earlier choices about what to hold onto, and there are a handful of situations where you might have to use it earlier because you'll lose access to it.

Implementing .SAVE meant allowing progs to have siphons in their cost, so then I started thinking about what else could use that. I could just make a big attack that's extra expensive but it seems more natural to try to do something actually related to the usual siphon effect. I tried .3X3, spending a siphon to access all 9 tiles around you instead of the usual 5 - this sometimes made for an interesting choice whether to spawn more enemies to get more stuff, but also often just allowed you to pick up silly amounts of resources. Making it expensive to obtain wasn't enough to balance this. I could give it a resource cost as well but then it becomes kind of bad in the situations where you'd be spawning extra enemies, and more balanced but not any more interesting when you're getting extra resources - you just look if you're getting more than you're spending, nbd. So I ended up with .X, conceptually an ordinary siphon rotated 45°. It's cheap to obtain because it's not giving you any extra tiles, but it can let you get more out of your siphons depending on the board setup. Somehow I'm really bad at counting how many resources it'll get me, I'm so used to automatically reading good spots for the regular siphon and I don't notice when .X would get me more.

.QUIT is a suggestion Leon made ages ago that didn't make it into the original game, but with trying to put a bit more focus on streaks here I tried it out and was happy with it. It got a siphon in its cost too for symmetry with .SAVE (they're different effects but they're both operating outside of the usual game boundaries), this worked nicely for making it kind of "hard" to quit, you have to hold onto a resource that you'd prefer to use to keep that option open. I know for some risk-averse players the "obvious" choice will be to always siphon .QUIT if you can and always keep the ability to use it, but usually you can get a higher score if you go against that.

At the top of my list of parallel-universe progs was a mirror to .EXCH, converting energy to credits, this was in the game for a while (back then .EXCH spent 4 credits for 3 energy and .CASH spent 3 energy for 2 credits) and I took it out to make room for more interesting things, there's only space for so many effects that aren't directly dealing with threats, but maybe an expansion could bring it back? It was hard to find a version that wasn't sometimes ridiculously strong, usually almost useless, or both, I tried tacking on various side-effects, but in the end gave up on it feeling like a boring-but-strong resource exchange didn't fit in a set of exciting weird new abilities.

The hacker's basic attack does one point of damage and stuns the enemy for one turn; this stun is really important for being able to deal with large numbers of enemies tactically. I tried a .STUN+ prog which increases the length of stuns (like a mirror of .ATK+), it was okay but not good enough. But then I was trying to find the right price for .TRAP, which marked a tile to kill or maybe hit the next enemy to move there - I wasn't sure whether to make it cheap so you could lay down a wall of them or a bit more expensive - some of the tactical uses seemed good enough to pay 3+ for. I also needed a more computer-y name for it and when I hit on "firewall" the idea came all in one piece to also rename .STUN to .ICE (from classic William Gibson cyberpunk), price them both at 1, and have .FIRE just do damage without a stun so they each have one element of the basic attack.

Tried a whole bunch of different ideas for medium-sized attack progs, ended up with .MOSH .CULL .SORT, I liked making new ways that different situations could matter - whether enemies are next to each other, whether enemies are already damaged, whether you have a variety of enemy types, and I was glad to fill some of the gaps in costs (now there's a prog for every combination of 5 resources). I changed .CALM's cost to be symmetric with .SORT at 6 resources even though their effects aren't related. I had wanted .CULL cheaper so that .ANTI-V/.CULL would cost less than just using .ANTI-V twice but that made it way too strong with other combinations, these three all have to quite expensive because they can affect all enemy types, but that means they don't need as many other progs to go with them so you can focus more on collecting resources - at least that's my theory.

The main "secret" in 868-HACK is the bonus powerups that show up in streaks, these end up being really important to keep the difficulty high enough to be interesting for expert players so I thought for the expansion it would make sense to include them from the start, loses the secret but most of the people playing will know about it already (and for those who don't I guess it means the expansion adds even more content). I thought about putting in more of a metagame, maybe a map of the network giving some choice about which powerups you'll be facing, coming back to those ideas about accumulating a currency between games - something you could spend to avoid a particular effect you dislike. But in the end I felt like .QUIT accomplished most of this - some portion of the time it allows you to quickly skip an unfavourable combination. Choosing a class at the start of each game helps too with smoothing out bad luck, and the end-of-streak stat screen with records of "most used prog" etc. ties things together conceptually. The idea of choosing your powerups still made it in in the form of "USER-SELECTED POWERUP!", a metapowerup which accesses other powerups the same way that .PLAN.B is a metaprog which accesses other progs. I wasn't planning on adding many new powerups but having them every game makes them feel more repetitious (somehow worse than repeatedly having no powerup) and I ended up with 8.

An effect I tried for viruses was for their attacks to damage your resources, but across a game you don't get hit many times anyway and only a quarter of those will be from any specific enemy type (or even less, since usually being hit means you've been flanked by two enemies and then you can pick which one to attack while the other hits you), so I'd have to make the damage really high for it to be relevant and then on the occasions it does happen it ruins your game. So I switched it to a general effect where any hit also drains resources; this still didn't feel important because you can often spend resources to not get hit. So I thought about what else it could cost you, came up with MEMORY LEAK! losing you a prog when hit. This was really exciting, made it really worthwhile to spend resources to avoid hits, and sometimes to siphon extra progs just so you could afford to lose some. But it was super difficult, especially when combined with some of the other powerups that make it hard to avoid damage; you'd get into a downward spiral where once you've lost a prog that was helping you avoid damage then you're bound to take some more hits; over a quarter of my total losses in this version came from this one powerup, it was terrifying. So I made it only trigger the first time you get hit on each sector, it's very much domesticated but it's still a bit challenging in combination with other powerups.

I did want something that affected your resources though. Back in the day I'd tried some kind of "resource scarcity" powerup but it was pretty terrible, removing your ability to do interesting things. Also finding the right effect for Cryptogs was very difficult, because CRYPTOG TELEPORTS! is already so terrible that anything else combining with it is just really really bad. For a while I was just going to not have new powerup for each enemy type (because why should I?) but people kept asking about the mising ones so then I thought about cheating by having a "Cryptog" effect that conceals something else instead - what about your resources? So CRYPTOGCURRENCY! was born. Eventually I dropped the G, it was silly, I wasn't going to get away with pretending this had anything to do with the enemy type, but it got me to the idea. Just credits because hiding both removes agency - picking between certainty and uncertainty is a real choice, but picking with no information is arbitrary. I wanted .SHOW to interact with it but it was too much to just give everything away at once so I made it local - you have to spend turns (risking enemy spawns) to reveal all the credit values on floor tiles. It's a bit of bookkeeping to keep track of your range of possible credit values but it felt way too friendly to have the UI handle that for you, I want hostile alien perils not a cosy spreadsheet.

Tried making Cryptogs immune to progs but it was too much of a grind. Thought about how their real strength is their movement avoiding lining up with the player to be attacked at a distance; the invisibility is just icing; so I tried strengthening them with AI improvements - making extra efforts to avoid being attacked, a "shy" version that avoids the player unless enough enemies are on-screen to flank them. These were challenging but they were kind of too smart so there's no solution where you can avoid damage, also with the invisibility you don't get to admire their clever tactics, you just don't see them for a while and then they show up in an annoying corner; the game is about being smarter than your enemies, it doesn't work if they're both clever and numerous. So eventually I thought about making the invisibility itself stronger and got the TRUE CRYPTOG! Tara claims she thought of the idea first but didn't tell me because I'd probably actually use it and she didn't want me to, well I got there anyway. They're super annoying.

A major part of the game is executing several progs in one turn to pull off a big combo, instantly clear the screen, so I thought about having a powerup that made this more difficult. Maybe you have a limited number of points ("CPU cycles"?) to spend on progs and then it takes several turns to build them back up. Tried a bunch of different numbers but eventually settled on the simplest: one and one. So the SINGLE-THREADING CPU! can only execute one prog per turn, this is much harsher than my first idea (where you could use a combo but then have to wait) but it seemed like the most interesting twist.

The other big secret is the secret level (now titled "root sector" in the stat screen), originally this was a bit of a throwaway thing that I didn't expect to matter much, mostly I had a graphical glitch I wanted to use somewhere. It did take quite a bit of thought to find a way that made sense to access a secret within such a tight game - there wasn't room to be like "oh there's a door behind that rubble" or something, but I found a way of embedding it in the mechanics that made sense. I thought people might find it a fun challenge to visit it, I put some points there but in my testing it was too expensive to reach to make much difference to scores. I was fairly wrong! Once people discovered it, and some extra hacks to reach it more cheaply, some really high scores were achieved, they're playing at a level I'd never anticipated when making the game. To me this is pretty interesting, it's added an extra layer of complexity over top of the game I intentionally designed, but still in a way that makes sense within it. I've been making little changes along the way to try to balance it - I'd like it to remain a risk/reward decision whether to try for it in any given run, not be something that can reliably and profitably be done every time. Some of the changes to progs making them not repeatedly trigger in the same turn to make them play nicer with .PLAN.B also make them harder to use in secret level trickery, this is a bonus. Also I dropped the maximum number of progs in hand to 8 which makes it a bit tougher too (it was only 10 in the first place because number keys, but that limited the number I could encode in 64 bits on the ios high score tables, dropping it to 8 was necessary to add the new progs in the expansion - arbitrary technical limitations are great).