Monday 22 April 2013

v0.15 Released

I've released version 0.15 of my game.

The Hero decision making logic has been completely rewritten to take in to account differing personalities, and as a result the game balance is completely different in terms of how the heroes behave.

There should be a reasonable connection now between sales activity and hero movements in town, and they are in general much less likely to go in and beat the living crap out of the dungeons for no reason.

Fighters, barbarians, thieves etc. still spend plenty of time in the dungeons, with the less combat-oriented heroes spending more time messing about in town.

I'd love to hear any feedback on the end result, I'm pretty happy with it - but whether it is any more fun will clearly be a subjective thing.

Get it at the Bay12 Forums thread:

*Hero AI rewrite, each guild gets different personalities based on Loot, Wealth, Leadership, Balance, Contracts, Glory, Social and Knowledge

*Sales metrics introduced to better inform hero sales decisions, personality based; generally:
-> Balance: Heroes seek out unpopular shops
-> Wealth: Heroes seek out popular shops, lots of sales
-> Loot: Heroes seek out shops, lots of purchases
-> Social: Heroes seek out popular shops, attendance

*Heroes come to town more often if the contract list is well populated (i.e. lots of work available)
*Dungeon crawling logic rewritten based on contracts and personalities
*Phases of operation for heroes should clear up behaviour a little;
*Better transparency for hero decision making in general
*Basis laid for Mayoress, noticeboard, and contracts, implemented in part.
*Some rumours started, but no effects on behaviour yet.
*Contracts moved to a new class, data storage and methods etc.
*Monsters moved to new contract / decision flow system.
*Dungeons expanded slightly, with floor by floor features that can de discovered, with different effects for each feature.
*First pass on game balance for new systems.
*Numpad works where numbers are viable input.

Thursday 11 April 2013


After much strife and worry, the hero behaviour has been further refined - or at least the method of controlling things has been framed out, and now I just need to slop the wet paper on to the chickenwire and wait for it to dry. It will take a little bit of time (thinking and doing), but I reckon I know what it should look like, and it seems reasonable in concept.

They now have a bunch of driving forces, which are effectively weightings towards acting a certain way. A merchant will be entirely interested in the creation or dispersal of wealth, a swashbuckler will have an insatiable lust for idle chat, and possibly doing things that make him/her look good (a trait they share with the Barbarian - for different reasons). Fighters go for leadership, mages seek knowledge, Druids are hand in hand with balance, thieves and loot, assassins looking for paid work etc. All of course mixed about, and with context specific missions for each driving motive.

The hero is now looking entirely within the bounds of the town for something to do - that is - they do not necessarily have any real knowledge of what is going on in 'The Ruins of Pyromania' or whatever the latest dungeon to be created has been called. This is abstracted away, so that they must check the town noticeboard (which is generally maintained by the Mayoress, and can be inputted in to by the shops or the player) for a compatible contract.

If there aren't any contracts available, they will revert to a default action type for that motive.

Social motives, for instance, would likely generate - as a default - a mission that makes them wander about town looking for other heroes to chat with. On the other hand, a fighter may issue a 'Call to Arms', which might prove to be a more interesting (and lucrative) role for the socially active hero to pursue.

Wealth and Loot motives would generate, as a default, consumerist actions such as buying a replacement sword, or selling a redundant sack shirt. Alternatively, a thief may enjoy the prospect of going on an 'item hunt' for a shop keeper. By generating context specific sets of goals, the system should allow for a hero to know that they are after an item for a shopkeeper, the shopkeeper should know that the hero ACTUALLY WANTS to find an item, so would be happier about shelling out a few coins to the thieves guild en masse to populate their shop with ill-gotten gains. An enterprising thief would probably even think about going on his own item hunt, if things were looking quiet in town (activated in conjunction with the 'Loot' motive).

A player creating a contract to go and kick the living crap out of that monster that has just been sprung from the dungeon would appeal to an assassin (looking for paid work), a Barbarian (looking for glory) and possibly a Druid (seeking balance). I'm toying with a different method of determining contracts, as an experiment, whereby the highest price contracts will be the preferred ones to be accepted by heroes. They then decide whether or not a contract is appropriate by the danger level. Presently it is a bit of a hack-job where they only accept contracts if they are at a certain threshold (ungainly and opaque to the player). If I end up with a system whereby cheaper contracts get ignored because there are more lucrative things to do - not just because some arbitrary thing has been met - I will be happy.

Not all contracts will be visible to the player, as some of them will be decidedly 'meta' - to generate interesting movements of heroes rather than be an actual binding contract between the Town, the Player, the hero etc. but the hope is that the contract board will look rather interesting, as townfolk start complaining about the influx of monsters ruining their lumber / crop operations and generating small bounties appropriately. This approach should also throttle the utter destruction of the dungeons a little - once they are small enough, they should cease being a real issue, but it will allow them to grow again back to the point where they are an issue.

The player could however facilitate the destruction of a dungeon by paying lots of small bounties for people to delve repeatedly. This makes me think I should make them spend less time in the dungeon based on the reward, which should be relatively trivial, and a hard lower limit might even be necessary. It's a bit artificial but probably required to stop lots of $1 contracts skewing things unnecessarily.

The main reason for all this work is just that my previous abomination of code was not only opaque to the player in some ways, it was beginning to be very opaque to me, and I had no idea why the heroes were doing some of the things they were doing (or not). Hopefully this will streamline their decision making, allowing for more varied, interesting, and robust behaviours and allow the code to grow far easier.

It certainly seems to be getting there, anyway:

Friday 5 April 2013

The Mayoress

The Mayoress is going to be an entity that stores some information about the town as a whole. She needs to understand how much cash the town has access to, where the threats are likely to come from, and the current state of the town so that she can respond appropriately.

If the Mayoress is wealthy (or feels a little underdefended), she may consider it appropriate to hire a couple of the town peasants to shift up to guard duty, at a cost to equipment and an ongoing wage. So she needs to understand at what level of threat the town is at, how much cash she holds, what else she might need that cash for in the near future, and how much income she is enjoying. At the start of the game, there are plenty of shops in town (13), and they all pay about $25 per month. So the Mayoress will probably receive in the region of $325 on the 1st February. This gives a baseline to balance stuff around, which will hopefully start to drop off pretty rapidly if things start getting too chaotic.

Hopefully she can be pretty proactive about things, although sometimes that might not be enough. If (for instance) a monster is sprung from one of the dungeons, she will need to take a quick view on how safe the town is. She could:

a) Hire some guards and hope they can stop the menace. Or perhaps raise a militia from the townfolk.
b) Set up a contract for one of the Heroes to stop the menace.
c) Do nothing, hoping that it will take care of itself. Maybe she has been blessed with some foresight, and already has the town set up sufficiently.

She will want to stop the monster, as it is in her interest to keep order so that she can charge more taxes per month. If she gets particularly clever - she may recognise that the order of the town is on a downwards trend, perhaps due to a particularly successful dungeon, and she may make a concerted effort to purge that dungeon of demonic inhabitants (by raising contracts for heroes to pick up).

In the future she will also need to understand what material resources the town currently holds (say these are primary goods such as iron ore, cattle and wood, with secondary goods like leather, paper, charcoal and iron) and either react to low supplies or stockpile goods as necessary. She might need to build a charcoal burners hut, a tanners, a paper makers (?) and a smelter, if she doesn't already have one. Monsters also need to recognise that these things are valuable targets, and the town industry should protect them and lament their loss (as it represents their route to producing cheap items for sale). This should be pretty straightforward, as I imagine the town will operate on a fairly communist manifesto (outside the specific shops), so any workers would just gather stuff up and dump it at the feet of the Mayoress.

She will maintain a noticeboard, from where she will pin a few jobs for the heroes to examine. She will use this to generate here own contracts if she needs to sub-contract the protection of the town. She may even feel the need to take a more active stance in telling the heroes of the town various things. So the noticeboard should function as something that the heroes can look at, and also something that can be put in front of the heroes noses.

This goes hand in hand with the heroes getting new brains and desires, and hopefully it should be quite a neat but coherent solution to collecting the needs of the town and communicating that to the heroes - and the player - whilst allowing for some interesting expansion of the various mechanics in the future (town industry, for one thing).

But whatever she does, she needs to look after the town.

And perhaps most interestingly, that should include the desire to destroy the player, if that is what is required.


Friday 29 March 2013

Starvation, Murder and Overwhelming Peace

My dad is lying on the ground, next to a bushy-green spruce splashed with his blood - shuffling gently in the cool spring breeze.
There is a definite smell in the air and the rasp of a large animal breathing heavily somewhere. I can't see it. I stand still.
The mulch underfoot rustles and the footfall of this beast is heavy and increasing in speed. A few seconds and I realise the animal is leaving us to our little spot in the forest, moving away. My heart is racing.
I creep over to my father and hold his head in my hands.
One eyelid has been taken off by a claw, the other closed over and his chest is still and covered with bloody, thick saliva. His fur shirt is torn from the shoulder down to his stomach and bright red muscle glistens in the morning light. He looks straight through me with with his one staring eye.
He is dead, taken for the care of the Gods, and I am alone.
And so describes a typical starting point in UnReal World, an old and wise Roguelike crafted lovingly over the course of several decades by Sami Maaranen.
A cry, a yelp - the recognisable mew of a fox. The little bastard can smell my small stockpile of fish pulled out of the lake this morning, and has been systematically picking clean the various small morsels I have been using to try and lure him to a deadfall-induced brain haemorrhage over the last week or so. But the little git is too clever for my rudimentary traps - maybe he can smell me on the wood - or more likely he is just plain a better engineer than me.
At least I can fish, so I won't starve, but I could do without this. I'll take a few of my dried lavaret and go a couple of days south to clear my head.
It's a game that demands to be roleplayed and taken very seriously. If you don't, you will die. But if you do, you will get entirely sucked in and probably cry when this little slice of iron-age Finland inevitably crushes you.

I've fallen in love with Unreal World again and it has recently gone free-to-play donationware in lieu of the previous purchasing method, with a view to giving the developer less of an admin overhead and thereby giving him more time to develop the game.

I hope it is a success, and we get another few decades of progress.

Friday 1 February 2013

Unblocking the Drain

I'm not sure what to do.

I mean, I know I still have to find the time to play and review LambdaRogue, but in terms of my own project.

It's probably a bit like completing a story, or concluding a screenplay, but the 'easy' thing about those is that you can be enigmatic with the ending and be satisfied that you have wrapped things up okay. I actually LIKE stories that leave you hurtling down a path and catapult you off the end, leaving the reader to decide what happens after the conclusion. Perhaps those Raptor eggs are infertile because Richard Attenborough had the foresight to genetically engineer it to be the case, and we don't subsequently need to worry about them getting out in to the wild five years from now. More likely, we fear the worst, and the little tikes have actually started breeding in order to put tourists in mild peril before eating them.

Whatever, we don't need to be explicit, we just need to set up the prior part of the story so that the consumer of the piece is left sufficiently interested to care in the slightest about what happens after the end.

But in a game with an open sort of narrative typical of many roguelikes, every decision needs to lead to interesting, meaningful moments within the context of the game mechanics. A decision the player makes can't lead meaninglessly to a point outside the narrative of the game, it should be interactive - and it should feed back.

100 Heroes is a bunch of dice rolls at the minute, with limited interlinked mechanics that gives the impression that certain things are happening because the Heroes want them to. They take up contracts because they have a sense of adventure, they buy a scroll because they have a lust for arcane knowledge. None of this is true, they just happen to do things because I designed a little system that comes up with random occurrences of similar events at the sorts of frequencies which nearly look convincing, at a sort of balance that approximately works to produce a mildly fun game.

But this isn't the game I set out to make, and it isn't where I want to leave it. So I have to make things a little bit more complicated to give the Heroes a set of needs, wants, traits and personalities that lead to real motivations. And the player needs to be able to witness these things happening and intervene with their retail know-how to sate those needs. Outside this the player needs to build reputations, both individually and throughout the game world, so that a first-time-visiting Hero who knows nothing about the shops in the town (apart from their own Guild-house) should be able to make value judgements on each establishment to decide what they should do, once they evaluate their position in the world.

They SHOULD lust for arcane knowledge, and some of them should have a wild streak that means they take contracts without knowing whether they are capable of meeting the terms of a contract. A conniving summoner who takes money down on a contract and leaves town, after stealing the scrolls from the player's shop amongst the commotion of reading out loud a 'Summon Imp' scroll that he has just bought from the same shop.

And of course the player should be able to recoup their losses by taking out a contract on that Hero, at a significant cost to the relationship with all Summoners, one presumes. Lawful, chaotic, good and evil. And all meaning something in the behaviour that they engage the player with.

I can't easily rationalise how to integrate all this in to working game mechanics. I know it is achievable within (or just outside) the bounds of my current knowledge of the Libtcod library and Python, and if not, I am sure that I can find the gaps in my knowledge via various reputable search engines.

I just don't have the confidence to start doing it.

I just don't know whether the paths I choose to go down will be ones that lead to any greater sense of implied narrative, complexity or realism beyond the silly little dice-roll functions that are already there.

So my hope is, by furtling around under the grate - nudging a few loose bits of information this way and that, perhaps bringing to order some of those grandiose, stringy thoughts that have got intertwined together at the trap disallowing the bilge to exit the sink, we can finally get this drain unblocked and move on with this thing.

Sunday 20 January 2013

NetHack? In SPACE???

And now for something completely different. PRIME.

PRIME, as suggested previously, is kinda sorta NetHack in space (based on Zap'm as noted). For all I can tell it has the same procedural level generator but it really is no longer NetHack, at all, as you will find out should you do the right thing and play this.

It reminds me of being 10 years old with my brother and playing the Space Crusade boardgame on a Sunday morning. Finding the original game somewhat lacking, we would recruit any action figures we could lay our hands on (including the pony out of the Hobbit), extend the board with hand-drawn bits of map and just make the rules up as we went along.

But this is better - because PRIME is actually fun.

And my brother isn't taking a hissy fit as soon as things start to go against him.

But that's further on.

At the start, as most people do with such things, I begin the game. I'm standing in a blue-walled, procedurally generated space ship (not a dungeon) and inspect my inventory. I am a Space Marine (a forgiving starting class, apparently) wearing a +1 debugged flak jacket, wielding a pulse rifle (set to burst) and am ready to go. I can't figure out if I can put my rifle on single-shot fire, but I crack on regardless. The keybindings screen is comfortingly shorter than the three-page incomprehensible mess of NetHack.

I pop a few bullets through some bore worms - wander about the place - and it's immediately evident that this game is laced with a nice dose of humour. I like it.

Thinking ahead to how these things often play out - I decide to try and conserve my dwindling ammunition - proceeding to smash things with the butt of my rifle. It's actually an effective tactic as giant cockroaches, grid bugs and warp fungi alike all fall to my violence. But then, in this blue, dire space ship (not dungeon) I see some space goblins (not normal goblins) and am warned that one of them is wielding 2 grenades. I just happened to pick up some grenades myself, coincidentally, and decide that it might be a good opportunity to use them.

The flashbang explodes on the floor, and the four goblins start wandering about aimlessly as I walk up to them and smash their faces in with my rifle. It's about now (shortly after beating up blind space goblins) that I decide to try and 'read' the 'scrolls' that I have picked up - rebranded in PRIME as 'executing' 'floppy disks' (well what else would you use to store information in the far future?). I'm pleasantly surprised that I fail - I actually need a computer to use these things, and - not having one - I wonder if all those disks I have picked up will be a bit useless.

I shoot a few fuel barrels (nearly killing myself in the process) and wake up a sludge monster from a sludge vat (although realising the likelihood that this is PRIME's kitchen sink, I steer clear from thereon in). I find a ray gun, and zap it off harmlessly at nothing, without understanding what it did. I find a 'mega-computer' lying about on the floor, and kill a few phaser-toting redshirts and space orcs.

And best of all, I decide to play a bit of dress-up, putting on a plaid jumpsuit, a pink ornate armour, and a pink pointy helmet. It's like I'm going to G.A.Y. on New Year's Eve, and I feel fabulous.

I start running some programs with my new computer, and manage to detect some lifeforms, teleport across the level, identify some of my equipment, and infect my 'optimized +3 megacomputer' with something or other. Not really sure what the infection was, to be honest, as it didn't really seem to affect things. Perhaps it was adware that the game thought fit to abstract away - after all who wants to be reminded every time you run a floppy disk that a 'pop-up appears on the screen asking you if you want to enlarge your penis y/n?'.

Unfortunately, this bout of software operation and identification has given my outfit much more serious names, and I realise that I am wearing 'chaos power armour' and an 'elven helmet'. If truth be told, I do feel a little more combat capable if a little less camp. I'm still wearing the plaid jumpsuit though, which is small consolation.

And I am very combat capable, as I achieve level 5, enhance some of my skills, and veritably charge through everything the game has thrown at me so far (including an Orc pyromaniac with a flamethrower, and a 'high-ping-bastard').

But then I run out of places to go. Presumably there is a secret door somewhere to take me to a room containing the next stairs down, or I might be missing something else. I don't know, but I start to worry that my boss will come and look over my shoulder and I 'save and quit' the game.

It's another day, and the itch takes me again. I restart as a Reticulan Abductor (leaving Zack the Space Marine in stasis), and all newcomers of this particular class are charmingly dubbed 'Crop Artists'. Checking out my inventory, I seem to be wearing a Reticulan Jumpsuit, a powered shield, wielding a Reticulan Zap Gun, and have various items ready to presumably help me on my way. Like a +1 Anal Probe.

The Reticulan is certainly not as hardy as the Space Marine, as an instant death to an exploding fuel barrel and a single, fatal chomp from a man-eating plant readily confirm.

I'm really glad I've actually spent a little time with this game, as it is amusing, fun and feature-packed. One thing that struck me is that this game really seems to take some interesting steps away from it's NetHack grandparent, in gameplay principles as well as the obvious alterations to the detail.

It feels far more of a 'romp', perhaps fairer to new players, not so much spoiler dependent (at least as far as I have taken it) and my favourite part - there is no 'hunger'. Maybe it's just me, though, charmed by the content - and happy to die in ignorance (as I may have felt when I first picked up NetHack ten-odd years ago).

The painstaking attention to detail of NetHack is there. Each item has a complete, entertaining and informative description and some of the crafty identification sub-games of Grandpa are present and correct (apparently, for instance, you can empty canisters in to the sludge vats and observe the reaction to give you clues as to its nature). If I was to say I haven't explored the range of gameplay options present in this game that would be an understatement.

It's full of references and nods to other sci-fi culture, with Warhammer 40k and Star Trek being the most obvious ones to me - with loads more which I'll leave you to pick up on. The character classes are also very broad (there are about a dozen to choose from), and I can take a trip back in to PRIME in the near future as a Space Orc janitor, a Yautjr Hunter (the Predator!), or perhaps I should go back in and figure out how the Anal Probe can aid an enterprising Abductor. Or maybe I'll just try all of them.

PRIME is being constantly updated, with a new version just being released (version 2.1; 20th January). I can't help but feel I'm selling the game short by constantly comparing it to NetHack - and whilst the influence of that game is pretty pervasive - PRIME really is a game standing on it's own two feet - and to this particular player - it's standing in a position that is a lot more fun.

Give it a chance, go on. You might even enjoy it. - The Website