Thursday, 3 September 2015

following on from previous post

deckbuilding requires a fairly large pool of cards to select from. variety of different options to try, different ideas to build around. but having such a large space to explore is overwhelming. typically you'll limit access to cards (/things) so players aren't presented with the full problem immediately. so i have been thinking about exactly how to do this. various methods exist. standard videogame method is to unlock stuff as you play, opening up new things as objectives are completed or earning currency to spend unlocking things. boardgames typically sell expansions for conventional currency (in videogame language, "microtransactions").

in 868-HACK i used a simple approach: each time you complete a game an ability is unlocked. but there it made less difference because having more abilities unlocked doesn't increase the number you're choosing among at any given time, just more possibilities overall. (also there's a different concept of "completion"; i'm not certain yet whether the new game has an end but if so it is very difficult to reach, it is more about measuring how long you can survive.)

Hoplite has a list of 20 achievements, 6 of which are interesting; each unlocks an ability. i really like the way some of them reveal different games hidden inside the main one. i wish there weren't all the arbitrary "kill ten footmen" quests too but i understand they had a certain number of abilities to unlock and there just weren't that many interesting possibilities. Dream Quest goes way further down this path with 109 achievements almost all of which are numeric variations (kill 20 undead, walk 12000 steps, deal 20000 damage). i've considered doing this, unlock the mask by killing a ghost, unlock the totem by killing two enemies in one turn, but i don't have any that are actually good variations in the way some of Hoplite's are.

Deck de Dungeon has rare approach. earn currency as you play, making strategic choices that trade off currency against points. spend currency to include cards in your starting deck. critically, this isn't a one-off spend to unlock cards, it's paid every time you start a game. so you might play for money for a while to save up and then spend big to play for score. i'm not considering this but i haven't seen it anywhere else so i wanted to mention.

selling expansions is quite an appealing approach. as well as addressing the problem of dividing things up into manageable chunks, it probably makes more money. a lower base price might allow more people to play it overall (though this is unclear, a higher price can signal value) & a higher total price can be paid by people who might be unwilling to risk that much on a new game. (this is pushed to extremes by CCGs and many "free to play" games which turn the act of buying the game into another mode of play; profitable, exploitative, broken.) i might sell expansions but it doesn't seem like a complete solution - deckbuilding is a key part of the game and i'd want the initial purchase to have enough cards to support it even if i save some of the more complex possibilities for later. and "enough cards to support it" still seems like a lot.

i've tried a few different unlock schemes. get a new card each time you play; felt bad because it encourages losing quickly to get stuff. so require scoring, unlock a card every 4 points; felt bad because score distribution is non-linear, you'd make a discrete improvement and score twice as many points and suddenly your card pool doubles too. maybe exponential score targets? but there's not enough of those for all the cards. getting a currency as you play that you spend to unlock things - the problem with giving a choice what to unlock is that if i tell you enough to make an informed choice, we've already crossed the complexity barrier and you may as well just have those cards to play with.

Zach suggested unlocking cards by leveling them up (so each card would have to be present in a preset deck). it is a good idea! i don't think it quite works for me, it means you play a bunch of games with presets for no other reason. it is not particularly challenging to level up a card if you decide to focus on that to the exclusion of all else. (maybe that is itself a lesson worth communicating, but not sixty times.) also it has the same problem with making informed choices - you've still had to learn what the cards do to play with them in the presets.

in testing these schemes i kept getting bifurcated responses. some people found that unlocks were too slow for them, they valued playing with a custom deck and wanted to do so as soon as possible with the full range of possibilities. others complained that the unlocks came too fast, before they'd fully processed what was already there. they were very happy to play with presets for a long time, and found it intrusive to be told they'd unlocked new things while doing so. how can i accommodate two groups of people with directly conflicting preferences? usually i will just shrug because i'm not trying to please everyone, but critically these were all people enjoying the game just with different preferences about how much to engage with the deckbuilding side of it. why was unlocking was getting a negative response from the second group? it was being taken as communicating "you should have mastered all that by now", which wasn't the intention at all. and if even a small version of the problem is intimidating, having it growing faster than you feel you're 'solving' it is even more so.

so i've come back to where i started. thinking about boardgames, a lot of boxes come with expansions and alternate options already included and people are happy to ignore them, but obviously if someone's bought an expansion they want to play it. if it's the act of expanding that creates pressure, maybe it makes sense not to. just let everything be available from the start and it should be clear that you're not expected to know everything instantly, and there's nothing to stop you exploring at your own pace. in theory the first group of players will be happy because their exploration isn't being interrupted by someone else's idea of what that pace ought to be, and the second group will be happy because the unexplored region isn't growing and nobody's telling them to go there. feels pretty elegant to solve everyone's problems simultaneously and require less systems to do it.
i hesitate to actually commit to this.
the unlock is so much expected. when i show this version to people they say "ok but in the final version i'll have to unlock these right?". and i'm like "NO see i am trusting you to do it at your own pace" and they look at me like i'm some kind of motley unkempt hermit. if everyone expects a thing then maybe i should just do the thing and not confuse them.

i have backed off a little bit. as well as cards there are characters, these function like Netrunner's identities, giving different deckbuilding constraints and abilities to build around. currently you must achieve a certain score with each character's preset deck to unlock the option to build your own, and you unlock more characters by achieving higher scores. but once deckbuilding is unlocked for a character you have access to the full card set. is this right, i don't know. maybe if i'm not doing the slow grind then i shouldn't have any unlocking at all for clarity.


Monday, 31 August 2015

last post i hinted that the game i'm working on has deck construction, the type of play pioneered by Magic the Gathering where a player selects a set of cards before the game officially starts and then plays them out with some randomisation. part of why this works so well in Magic and its direct descendants is that it adds a singleplayer mode to a multiplayer game, so you can play the game without an opponent, but the singleplayer does not substitute for an opponent in the way a videogame AI might - instead it creates pressure towards finding an opponent as you build decks and want to try them out. the common problem we have making games for more than one player is that people "don't have anyone to play with" i.e. they're insufficiently motivated to ask their friends to play. (there is still stigma associated with the "nerdy" or "childish" activity of playing a game and for some people it is hard to overcome this.) but i am not making multiplayer games again yet, i've been interested in trying this mechanic in a roguelike game. this means it will lack the "metagame" of building your deck with reference to what your opponents decks might be, but it still seems compelling to optimise decks to play against random dungeons. (and it can still be massively multiplayer through the distributed discussion of deck construction, hopefully this doesn't mean it gets solved quickly and then everyone just plays the optimal netdeck or goes away.)

there's a lot in common between card games and roguelikes, in how you're constantly responding to random events, it seems natural to try to combine them. when i started thinking about this years back i hadn't seen anyone else really try it, but i doubt i was the first to think about it. now there seem to be quite a few examples around. i've played several unreleased ones people are working on. and then there's lots of games with names like "Card Dungeon" "Card Crawl" "Card Hunter" that i haven't gotten around to playing. (game developer curse: you end up playing way more unfinished games than finished ones.) also Dream Quest, though its dungeon grid is completely vestigial. (Deck De Dungeon has a similar battle mode while eschewing the grid entirely, which is to my mind more honest.)

i'd originally been thinking of using Dominion-style deckbuilding, where you start each game with a default deck and grow it throughout the game. this is a closer match for how roguelikes usually function, start with a weak character and gain abilities, it would just be adding a random element to when you can use those abilities. it is a nice system but i was finding it takes up a lot of space. the choices of cards to acquire and then the choices of cards to play, having interesting reasons for why you'd pick different alternatives in each case demands a lot of complexity, trying to fit that on top of roguelike tactical movement grid was too much. there's a reason why Dominion makes the entire game state be in the decks of cards. so i've settled on "constructed" play, build a combo then play it out in separate modes, get a score then maybe go back and tweak your deck again.

also thinking about Dota 2's ability draft mode. (ability dota is best dota.) you're building combos by selecting abilities that hopefully work together, but then there's still a lot of choices to make in how to play them out. you've drafted a character but then there are many possible builds for that character depending on the order you level your abilities, the items you buy, the role you play within your team. (hmm my game doesn't have a draft mode but maybe i should try that for multiplayer - take turns picking cards and then play it out and compare scores.)

i've written a lot of words and not even gotten to describing the actual problem i'm thinking about but i need lunch so i think i'll finish this here and write another post later.

Friday, 21 August 2015

new game is a roguelike rpg thing, kill monsters to level up! the focus is choices about how to level up. there are a lot of different tracks and essentially you can allow them to advance in a random order or you can take risks to control the order. standard risk/reward decision - controlling the order is generally better because it can be more focused, build up combos sooner, become more powerful more quickly. but the risk is too much so you cannot afford to always be in control, sometimes you will have to accept a random element and then that will affect your subsequent decisions.

this all works and it is deep complex elegant subtle. but "subtle" is not necessarily a virtue. once someone has played a few times and seen how different choices play out the game becomes interesting, but it is not clear at first. until you are motivated to choose the level-up order you are happy to accept the random order, and that means that you are not taking risks so the game is initially easier. for there to be space to take risks, there must be a somewhat safe environment to start with. in principle this seems quite good: beginners face a challenge they can handle, where experts make things harder for themselves to get an advantage and ultimately progress further. but how it's currently working out is that where there's a tough expert challenge the beginner sees a triviality.

so i'm trying to figure out how to communicate: this game may seem easy, but if you try harder you'll find it harder.
definitely feels an odd thing to say.

maybe i can tune it to feel more challenging at first but that is taking away space to take risks in & therefore reducing the possible things an expert player can try to get an advantage. so i think it's definitely more about better communicating that the space is there to take if you are feeling confident.

maybe i can ignore the problem because it goes away once someone's played a couple of times. not trying to be maximum accessible retention monster.

still so many other things to work out too. got this deck-construction kind of thing happening, lots of cards to choose from and you set up a board and then play it out. so hard to even vaguely balance sixty different cards where players are choosing whatever combinations. ("balance" not meaning "make the same" but rather "make able to co-exist interestingly". this word is used a lot by strategy game designers and has a specific meaning in that context but often people outside of that take it to mean sanding off all the bumps in the landscape and making everything boring so there's no reason to choose any one option over any other. this is almost the opposite of the intended meaning; we want a landscape with bumps in many shapes and sizes just none so sheer as to render all else flat by contrast.)

so much to do. constantly tweaking things and making progress but with travelling and stuff it goes slower than usual and it's a bigger project than i've been used to recently anyway, so it gets a bit daunting.

Tuesday, 30 June 2015

making another roguelike game (yay/boo)

my last couple of games have been pretty trad and i thought that after those i'd make something weird again. i'm interested in all different things, made a pretty wide range of stuff, but recently not so varied. so i had some ideas, big concept theme express, it was going to pile some really bizarre stuff on top of a basic dungeon scaffold but then i started making it and put some systems in place and it just crystallised out into this very trad "collect magic gem for high score" videogame videogame and all the amorphous chaos i was trying to put in didn't fit anymore. scaffold becomes game.

and like, i'm okay with that. it is good for things to take on their own life. and it is a Good Game. it's very much following on in the same vein as zaga-33 and 868-hack, call it a sequel if you want, but it is still doing its own thing and it is still new difficult interesting work to design it. and the ideas that didn't fit into it, maybe i will use them somewhere else.

i guess i'm kind of worried about being judged for making such easily categorisable games. i am disappointment for not doing "outsider art", if you recognise me for that then maybe it is quite dull that what i am making now is so much game product for sell on market.

or, i judge myself. i don't know how much i'm being influenced by thought of money. i know by now that it is pointless to have any expectation of how a game will sell, but it is impossible to not be affected by the huge difference in response to 868-hack from everything else i've made. this is how sequels happen. it's not even necessarily a money thing, just like a feeling of external validation (though obviously i do need the money once hack credits run out). i don't make multiplayer games anymore because nobody wants to play them, but a roguelike on a telephone! yeah interesting how roguelikes are big now, just a few years ago they were weirdo niche but now seems like every third big budget release has roguelike mechanics honest. or at least all the crowdfunding campaigns. "ugh another roguelike" is the new "ugh another puzzle platformer". so i guess i'm the establishment now, k.

but also like, vesper.5 and become a great artist in just 10 seconds both got quite a bit of external validation too. i haven't even tried to put something like that (whatever we're calling them now, not-games art-games alt-games game-fusion digital-tapestries, idk) as product for commerce, i guess i assume that it wouldn't succeed, don't know how valid is that bias.

i guess it is self-discovery. adventure to find out what i will make. i thought i would make all things wildly different, turns out i actually make a sequence of very closely related things; update self-image. can i justify this.

i think i justify it by saying that i am interested in game structure, and it makes sense to experiment with structure by making different shapes out of the same basic materials. making multiple small-ish games with same mechanics gives space for structural expression, because any major features only need to be internally consistent. if you try to fit every possible variation on a theme into a single game that drastically constrains its overall shape (mostly there is one specific shape). the way corrypt devours itself would not be nearly so bold if it was isolated mechanic in one subset of puzzle levels.

so 868-hack was drafting from random setups, iterating over very short game to build streak metagame. new thing has same pieces, opposite configuration. small differences resonate through entire design.

Friday, 19 June 2015

haven't been writing much here lately.

a few times i've started writing general "game design theory" posts and given up. they either seemed quite obvious or. well. we're all pretty sick of people making claims about what games really are or ought to be which are really just thin attempts to justify their personal preferences. i wanted to avoid doing that. just really tired of any time someone's writing about one kind of play they have to point out why other kinds of play are stupid and bad. so i would try to only say things i was absolutely certain i could fully justify, trying to always be precise about the category of things i was talking about and to acknowledge the outside of that category as also worthwhile, to make it clear that i know perfectly well that any design principle can be fruitfully broken. it's a lot of work to write like that. it takes a lot of words. and the more words there are the more likely it is someone will just skim over and pick one thing out of context to argue about in bad faith. can't be bothered with that right now.

it's easier when i'm releasing games because then i can just write about those and the context is completely clear. maybe i'll start writing about my new roguelike. i've become wary of drawing attention to things i'm making if i'm uncertain when they'll be released - i felt like i hurt helix a bit by showing it at a bunch of events and then putting it on hold to do 868-hack; it got attention too early and then when it came to release i'd already used that up and had a hard time selling it. but i think it would be good for me to write what i'm thinking about it. just don't take it as "NEW GAME ANNOUNCED COMING SOON". i've already been pretty bad at estimating how long things would take me and now i'm travelling i just have no idea. it'll be done when it's done nbd.

also been thinking a lot about dancing.
it is something i have no natural inclination towards. more than that; it is completely alien to me. i had no appreciation for it, no intuition, no understanding of why people would do it. when i ended up in situations where dancing occurred i would just be baffled why otherwise rational people were doing this pointless activity. when i saw a dance performance i would appreciate that things like fast complex steps or throwing someone in the air were technically impressive but i felt no emotional response.
but i am interested in alien things. one doesn't have to go to another planet to study something so incomprehensible as to seem utterly meaningless. so over the last couple of years i have been learning to dance. defying my nature. abomination.
and along the way i have also found that since it is a kind of play there is a lot in common with games for me to think about, especially about non-competitive goalless social play. i tried to write about this a couple of times but it seemed probably all so obvious for normal people. perhaps there is something my outsider perspective is useful for but i am not sure yet.
the one thing i do however really want to communicate regarding this is:
if there is a thing that other people care about that you think is pointless and stupid
stop thinking that and instead think "that might take me a year of hard work to acquire the most basic appreciation for"

no actually go back and read those two lines again because there probably is a thing and you're still dismissing it

ok so here's a blog post. done.

Monday, 2 March 2015


With the help of a couple of people on twitter (thanks Jim & Ciro) I've found a bug in Zaga-33. On OSX/IOS threads are all POSIX-y and "pthread_mutex_trylock" returns zero on success, or a number indicating the type of error on failure. The equivalent Windows function call TryEnterCriticalSection returns zero on failure. I'd missed this distinction in the docs and treated them as both having the same return value. Because threads are fun and unpredictable this was fine for a while until the IOS update changed something and made it not. But it's fixed now and hopefully that's the only problem and I can finally move on. (It'll be a week or so before the update's live because hey appstore.) I'd used the same code in a few other things. 868-HACK had it, chances are that's what was crashing it intermittently on OSX for some people so I've updated that now. Could be the same thing is in Vertex Dispenser because someone reported a crash there, I'll try to get that compiling again sometime and see.

Something else I've done in 868-HACK is add a new scoreboard, only showing active *STILL RUNNING* streaks. Lose a game, lose your place on the board. I'd meant to do something like this all along but Gamecentre on IOS doesn't support score removal and I really couldn't be bothered rolling my own. Steam does allow it so that's neat. I'd considered making it the main scoreboard but I didn't want to discourage people from playing when they were in a risky position. And then I ran out of time to get it in for release but it's there now. Something that happened with the Steam scoreboards is they stabilised really quickly because a lot of people who'd played on IOS came over with their year of practise and knowledge of all the tricks - which maybe discourages newcomers from competing. So hopefully this will be a more dynamic scoreboard, I don't know. At least it'll be interesting to see what people are doing. Access it by going to steam streak scores and select CURRENT instead of HISTORIC. Note that it'll take a while to populate, anyone who's not played since the update won't be listed yet.

Something that suprised me is that Steam sales, after the initial burst, very quickly dropped down to less than IOS. (~4-10 a day vs. ~10-20 a day.) I mean, this is more a matter of the IOS sales being surprisingly strong than PC being bad but I think it's odd? I would have expected the platform it's been out on for a while would be tapped out and the new one would continue steadily for a while. Not the biggest deal since I am funding my existence, but probably I could have better spent the time making a new game instead of getting hung up on ports. (Yeah just shut up about androids or whatever.)

Anyway just trying to get all this kind of stuff sorted before I start living out of a backpack and don't have my old hard drives handy. SMESPORT will be on hold because I won't have controllers to test with, I've barely worked on it for months anyway. The new thing is coming along well and hopefully I'll be able to keep making progress on that.

Monday, 26 January 2015

4:57am on a borrowed netbook.
hacking 'til dawn on a friend's couch, tangled in cables.
compile error in <tuple>.
6:23am and it's error 0xc000007b.
birds singing, traffic starting.
what does this even mean.
7:02am reading documentation.
oh wait steam just solves this problem for me automatically.
click "release".

868-hack now on steam.
also available on ios.

massive thanks to yann seznec for making the trailer with me.

let me know about any bugs; there's bound to be something that can go wrong in some circumstance and hopefully i can fix it. maybe not straight away. i need to rest.