Friday, 26 April 2013

ggoDbye

Raph Koster recently sparked off a discussion about the role of formalism in game design and criticism by responding to critic and games writer Leigh Alexander in a letter. I recommend you read his response to Leigh's questions:

"when people say games need objectives in order to be ‘games’, i wonder why ‘better understanding another human’ isn’t a valid ‘objective’
games need ‘challenges’ and ‘rules’, isn’t ‘empathy’ a challenge, aren’t preconceptions of normativity a ‘rule’" -  Leigh Alexander writing on Twitter

Raph poses a number of questions himself in reply, but frames the overall mode of a game as being a conversation between designer and player; and argues that the types of art games which Leigh is defending the conversation is a monologue because the designer of these games takes away player choice. He draws such a strong response from the community he criticises because he's defending the conventional position against a more radical interpretation, but he also picks the wrong point to make and the wrong analogy to make it with. Andrew Vanden Bossche has already written about the fallacy of choice in games: in short, games are interesting because they do not give the player unlimited choice, but a selection of choices from a restricted palette. Raph's analogy of games as conversation fails for the most part because it is so rare to see a game redesigned after the wide release - although this may hold somewhat true for games with long public development cycles (Minecraft) or in limited alpha and beta releases.

I've been meaning to write about one of the more remarkable achievements in game playing I've seen for some time but haven't had the opportunity until now to do so. ggoDeye, a regular participant (and 8 time winner) in the Brogue weekend contest, and organiser until recently of the mid-week contests, recently achieved what could be described as the pinnacle of achievement of Brogue 1.7.2: a 'mastery' victory in a competition. A mastery victory is where you leave the dungeon at level 40 with all 25 lumenstones it is possible to get in the game. Short of conducts, there is no other way of beating the game more conclusively in the current version (in earlier versions it was theoretically possible to get to level 100 although no one had).

In the tradition of Brogue a maximum lumenstone victory usually means that the game has been broken in some important way, and a game balance fix will almost always be forthcoming in a future version of the game. Indeed, ggoDeye writes in the victory post of the jelly master build he used requiring almost superhuman levels of concentration to get this victory:
By D19 I had 30+ jellies and the ability to isolate and destroy dar parties. [...] I was so exhausted and frustrated that I took all of Sunday off from playing so that I wouldn’t do something stupid and blow my first real shot at a max lumenstone run in a contest. [...] Throughout this run I gained valuable insights into what I think of as jelly “herd physics.”
- Low HP allies can essentially teleport to the other side of the herd by shifting the herd’s inertia through shifting its center of mass (you). I once noticed a dar priestess move 20+ squares in a single turn as the direction of the herd reversed and higher HP jellies continued to displace her. I used this phenomenon to keep crucial allies alive when they were low on HP.
-High HP, fast moving allies can stick to the center of mass (@) better than anything else.

[...] While I have always enjoyed jelly master builds, I had not come anywhere close to fully grasping their true power and utility before last week. 1.7 has introduced bloodworts and superior ally AI and has really opened the doors on making this a reliable and predictable build option for securing max lumenstones. I’m fairly confident that I can turn just about any seed with a wand of domination and either a staff of tunneling or a charm of shattering (all before D17?) into a max lumen run now. However, I am certain that I will never be willing to do it again with a staff of tunneling. This run took me over 16 hours to pull off and I would not recommend it to anyone who wants to continue enjoying this game for the foreseeable future. This ended up being the most mind-numbing and eye-straining gaming experience of my entire life.
A quick couple of notes on the above commentary. A jelly is a monster in Brogue which doesn't inflict much damage but splits when you hit it into two jellies each with half the hit points. These new jellies do not regenerate naturally, but can recover with a source of healing such as the gas released by a pod from a bloodwort plant, or if they learn the healing spell from a dar (dark elf) priestess by consuming the corpse after gaining sufficient experience to do so. The wand of domination allows you to take control of a jelly and its children, and a jelly master build is a character who relies on having a swarm of jellies (up to 100 on a level) fighting on their behalf, and staffs of tunnelling and charms of shattering allow you to open up the dungeon by destroying walls so your allies can surround enemy monsters.

ggoDeye specifically uses the term herd physics because in Brogue there is no mechanism with which you can directly control your allies: they move simply based on the direction you move in in combination with the game AI, and knowledge of the surrounding terrain and enemy positions. Several items give you more granular control by allowing you for instance to build walls to block movement, or entrance a monster to have it move in the direction opposite to yourself, but none of these have the scalability necessary to benefit a jelly master. So in effect you are controlling tens of monsters at a time with a single 8 way movement each turn.

(Intriguingly, the 'teleportation' mechanic ggoDeye describes is known as enexto() in Nethack after the function that displaces monsters into adjacent grids as they push past each other, and is used in tool assisted speedruns of that game.)

The process ggoDeye goes through in this game is nothing like a conversation: it is more like mountain climbing, or an ultra marathon. We can appreciate ggoDeye's performance because it is on one level a pinnacle of achievement which is unlikely to be duplicated in the same way we can appreciate athletic success. But trying to find a sport analogy to fit games to is ultimately circular because sports are often games, and games can be enjoyed like sports - which means any comparison we make between the two will be clouded.

There is another performance comparison that is more appropriate than a sporting one - that of playing a piece of music. People have compared music and games before: both have groups of 'indies' and in some ways this comparison is more appropriate than games as films, but I'm suggesting here that game players rather than game designers are the actual performers in this analogy.

If we extend this idea of player as performer, what role does the game designer have? Song writer is the most obvious - but I'm going to suggest that Raph's formalist argument is about game designer as the maker of a ludic instrument; and while art (and many AAA) games take the position that a game designer is a song writer, they are in fact constructing instruments that only support one song.

(Or more facetiously, I tweeted this as "A game designer is an instrument maker who thinks they're a song writer and everyone else mistakes for a musician.")

The counter argument of course, is that the instrument may only play one song, but it is a song worth learning to sing.

And while this is mostly a metaphor, you can watch Chris Novello literally play Mario in a way that you have never seen before.

As for ggoDeye, he's chosen to play an instrument that many agree is a finely tuned work of art, and he's bent it it ways its creator only mostly intended. But as hinted in the title of this post, this piece was also a swansong, and he's moved on from playing Brogue to starting a business with his wife, leaving behind a recording of his melody and the notes he's made while playing. I wish him all the best.

Tuesday, 26 March 2013

86856527

Assuming you count 7DRLs as roguelikes, I've just beaten my second roguelike ever: Michael Brough's 86856527. I suspect this is the game that Keith Burgun is trying to make with Auro - you should go play it (and ideally beat it) before reading any further as what I'm about to say involves spoilers. For the record, I got 21 points, using three programs.

I'm going to commit the cardinal sin of back seat redesigning a 7DRL - or at least part of it. The programs in the game are generally 'top tier' in the sense they are equally useful for their cost, although there are some programs which are clearly great in combination. I'm going to focus on the few programs which are 'second tier' in the sense they are missing one of either overall utility or interesting synergy: the four I feel fall into this category are ANTI_V, KILL_D, DCRPT and to a lesser extent BOMB - I'm still undecided about POLY although the suggestions below indirectly buff it.

The first three second tier abilities are all enemy specific, and are still useful in the sense that every enemy is a distinct challenge, but they don't have much synergy with anything else, and are still not powerful enough to be necessarily a win-button against their specific nemesis. The challenge of course is figuring out how to improve them while keeping close to the terse descriptions in the current game. My suggestions are ANTI_V should change to 'Damage all virus for $', KILL_D should change to 'Destroy nearest Daemon[s] for [two energy symbol squiggles]' and DCRPT should remain unchanged but end up with a buffed implementation.

Rather that using ANTI_V and KILL_D to directly credit the player, the floor grid under these affected enemies should get an additional credit or energy when the ability is used provided it hasn't already been siphoned. This allows the player to take advantage of the level entry spawns to increase the overall floor grid values, and gives POLY a purpose beyond helping destroy enemies.

DCRPT should be buffed so that while you have it active, you are given additional information about the play area. My initial thoughts were along the lines of having one block with ???? for the program/score and ? for the alert level on each level which DCRPT would reveal, until I realised that there is one other fact which is hidden which would be useful to know: the identify of spawning enemies. DCRPT should reveal what each enemy spawning is instead of the Transmission icon, giving you an extra turn to plan how to handle incoming enemy(s).

BOMB is incredibly useful given that it doesn't take time to use: but it has the downside of destroying adjacent walls which would otherwise channel enemies towards you. I'd like to see the floor exposed by bombing walls to get either energy or credits like other floor sections, to compensate for this and add a further level of strategy to bombs.

As for further program ideas - I'm sure there are plenty, but I like the sparsity of the current design. I am going to suggest one, borrowing an ability in Auro, because it seems to me that the movement abilities .WARP and .PUSH are the most useful and interesting part of the game, and to those, I'd like to add .FORK.

.FORK costs two (or three?) credits, and allows you to 'Make one move freely'. Since using a program takes no time, .FORK allows you to move without your enemies responding - but also make illegal moves such as moving towards an enemy (when you'd normally attack), move onto an enemy or wall, and move off the edge of the play area, warping from north to south or east to west edge or vice versa. Fork allows you to .DEBUG suicide in the finest Nethack tradition and it costs credits to fulfil the old adage that time is money and to try to prevent .EXCH/.SIPH+ abuse.

Wednesday, 20 March 2013

John R

As the author of a widely lauded alternate history short story featuring John Riccitiello as the protagonist, I feel like I should comment on recent events. But it turns out Stephen Totilo has done the hard work for me, writing a thoughtful piece about the man, if not the company he lead.

John to me sounds like several company owners I have had the pleasure of working with - people with integrity, but also intelligence who have inspired those around them. A CEO is responsible for two things: communicating the vision of the company, and holding ultimate responsibility for its execution. You may criticise the decisions he has made, but it sounds like he has made those decisions with consistency and in view of the long term plan for EA.

It is often the case that people forget it is what someone hasn't done which is just as important as what they have done. EA has not gone bankrupt, or become worthless, the CEO has not left under a cloud or in ambiguous circumstances, the company has not become completely risk averse. People may hate EA, and by extension its CEO, because of the SimCity launch fiasco, but it is exciting to see so many people care about a game in the obscure city builder genre, as opposed to just another FPS.

For the record, I completely disagree with always on DRM and to a large extent with the software as a service model (Fuck you Google), but I can see why EA has made those choices - if not why they have failed to communicate them clearly.

Monday, 18 March 2013

Early coverage

86856527, Bump (Free Indie Gam.es, Metafilter), Sunk Coast, 24 Killers

More to come. And feel free to follow the results at 7drl.org and hit up Adam Smith on twitter if you want RPS to check out your 7DRL contribution.

Sunday, 17 March 2013

UnBrogue 1.1.3 released

This version is intended to primarily be a bug fix release. I'm distributing through Dropbox as the Berlios backend required to upload releases is down at the moment - Windows, OS/X.


Known issues
- Monsters will not flee through water.

Changes for 1.1.3
- Rename 'stagger' to 'hit' in bolt damage description text (Requested by tinyrodent).
- Add combat message when a fire bolt is blocked by a shield.
- Armor of burden increases armor class by one for every two strength requirement increased.
- Armor of immolation increases immolation chance at +2 or higher enchantment.
- Add more toads to wand/staff of Toads.
- Added wands/staffs of Detonation.
- Adjust power curve of spiders created by Talisman of Spiders (Requested by ggoDeye).
- Add brief note about noise level of armor in description (Suggested by Creaphis).
- Allow charms to start with up to +3 enchantment.
- Cursed weapons, armor, shields, rings no longer generated in reward rooms (From 1.7.2).
- Staffs, rings, wands identified when you enter a reward room rather than when you pick the item up (From 1.7.2).
- Ensure bolts of slowing last at least two turns (so that the status effect applies and is visible for at least a turn).
- Add missing charm descriptions.
- Items affected by a talisman of rune mastery now display their full effects.
- Your allies cannot learn healing from Dar Priestesses.
- Fix to prevent fire bolts double hitting the last target they penetrate to (Reported by tinyrodent). 
- Fix crash when impaling a blinking monster (Reported by tinyrodent).
- Fix non-runic items appearing in runic reward rooms (Reported by tinyrodent).
- Fix force, cursed weapon descriptions.
- Fix cursed armor names.
- Fix bug where stolen items altar would detect everything on level (Reported by thaumato).
- Fix bug where shattering would always shatter reflective monsters.
- Fix bug where canceling using a staff when it had no charges would destroy it.
- Fix bug where canceling using a staff would use a charge and a turn.
- Fix bug where wearing another talisman when you couldn't remove a talisman due to your inventory load out would delete it.
- Fix bug where you could equip a talisman of [spoiler] while you are wearing cursed armor.
- Fix bug where multi-bolt items would use additional turns.
- Fix a variety of typos (reported by tinyrodent).
- Fix some rune descriptions (reported by tinyrodent).
- Fix negation not negating shields (reported by ggoDeye).
- Fix bug preventing obstruction being removed by tunneling.
- Fix staffs of tunneling not tunneling the correct number of grids.
- Fix scrolls of identifying not identifying all wands and staffs.
- Fix length of displayed path when targeting range limited wands.
- Fix elixir of light.

Thursday, 14 March 2013

SEO

For anyone trying to find the Three Moves Ahead episode featuring Vertex Dispenser it is episode 128, from about the 36 minute mark. (From this twitter query). Not mentioned in the show notes, so I'm mentioning it here in case anyone else is searching for this iota of information.

Also, fuck Google.

Monday, 11 March 2013

Sidelines

Num­ber of entries for 7DRLC 2012 (last year’s chal­lenge): 100.
Num­ber of entries for 7DRLC 2013 (this year’s chal­lenge): 253 (so far). [Edit for the history books: 357 entries, at least 139 successes].
I feel like I should be handing out polystyrene cups full of water and cheering people on.

Saturday, 9 March 2013

Curation

Indie Statik features a roguelike primer you could point your friends and family at to help understand the breadth of the genre. (Although by breadth, it seems to favour off-the-wall concept and tile sets).

Saturday, 23 February 2013

UnBrogue 1.1.2 released

Further fixes. Windows, OS/X.

Known issues
- Monsters will not flee through water.

Changes for 1.1.2
- Ogre shields now less effective when weakened.
- Mandrakes will now follow you down stairs (Requested by tinyrodent).
- Improve some tome names to better distinguish what they do.
- Harpies are more common and always spawn in flocks.
- Made lamias slightly tougher in combat and freely move through deep water.
- Prevent talismans of witchcraft upgrading items which had already been discovered.
- Provide damaging forewarning and additional stage of obsidian collapsing into lava and prevent pathing across any stage of collapsing obsidian.
- Freshly created mandrakes take longer to sprout.
- Fix and rebalance talisman of dungeoneering.
- Fix crash impaling zombies. (Reported by requerant)
- Fix various crashes to do with item workshops that could result in item corruption.
- Fix phasing penetrating or reflecting bolts.
- Fix force bolts damaging enemies which didn't collide with anything.
- Fix mandrake bolts. (Reported by tinyrodent)
- Fix polymorphed dominated monsters resulting in perma-allegiance. (Reported by qlordz).
- Fix elixir of strength (Reported by ggoDeye).
- Fix recharge times on charm of protection (reported by ggoDeye).
- Fix a number of OOS errors when using charms and talismans (reported by ggoDeye).
- Fix a crash when escaping out of enchanting an item (reported by ggoDeye).
- Fix a bug where you could consume any item when applying a potion to darts.
- Fix bug where lamias could spawn embedded in walls.
- Fix another display bug when getting hit while shielded (reported by ggoDeye).
- Fix tome and elixir graphics being the wrong way around.
- Really fix potion and scroll experiments.

Thursday, 21 February 2013

UnBrogue 1.1.1 released

As discussed on the Brogue forums, this is a quick bug fix release. Nothing serious but lots of annoying bugs fixed. Windows, OS/X.

Changes for 1.1.1
- Spears, pikes get stained with the blood of any creature they kill by impaling.
- Significantly improve the feedback of identify, enchanting effects which apply to more than one item.
- Improve correctness of spear, pike impaling to try to fix out of sync errors, reports of crashing.
- Made permanent status effects actually permanent.
- Mark monsters as permanently negated only if they have underlying racial abilities/traits which can be negated.
- Make it clear what witch hazel does.
- Add a couple of reward room entrances (one from 1.7.1).
- Add monster tweaks from 1.7.1.
- Add some post-amulet monsters to try to spice up the deep a bit more.
- Improve description and appearance of obsidian walls (reported by tinyrodent).
- Flatten power curve of staff of protection.
- Fix problems with charms, talismans destroying items when using them.
- Fix blinking, pushed monsters failing to impale themselves on an extended spear or pike if they blink or are pushed through the grid.
- Fix various reward rooms not being impregnable (now using 1.7.1 code to prevent corner clipping).
- Fix potion and scroll experiments found throughout the dungeon.
- Fix protection display glitch and logic problems on getting damaged (Reported by Creaphis).
- Fix bug where half of all charms of protection had no recharge time (Reported by tinyrodent).
- Fix bug where you could not injure your allies using throwing weapons (Reported by ggoDeye).
- Fix bug preventing gambling from working.
- Fix occasional crypt weirdness/crash.
- Fix challenging staff/wand workshops and provide more information on construction rules.

Tuesday, 19 February 2013

Linux, seed scummer builds of 1.1 available

Joshua Day has made me a Linux build of UnBrogue which you can get here. And Patashu has tempted the fate of the RNG to give you a seed scummer version of UnBrogue 1.1 including a Windows compile, which you can get links to from the Brogue thread on UnBrogue.

UnBrogue 1.1 released

Many thanks to Marco Salamone and Harrison Kreimer for taking the time to test the pre-release versions of the 1.1 release. Windows, OS/X Linux (thanks to Joshua Day for compiling this and updating the Linux platform code).

Changes for 1.1
- Code base updated to Brogue 1.7.
- Some changes have been added from 1.7.1: Bloodworts, lunging with rapiers, weapons of Force, reflection is now negatable, improvement to low level charms of protection, moving around obstacles diagonally.
- The majority of Brogue 1.7.1 change will be included in the next major UnBrogue release (1.2); the diff between 1.7.0 and 1.7.1 is approximately twice that of 1.6.3 to 1.7.0, and a number of systems changed significantly (dungeon generation, monster AI) in ways that will require more time to port across.
- Unlike 1.7.1, statues cannot be moved around diagonally.
- Added sabres which attack all adjacent targets in regular combat and when lunging.
- Blinking with a rapier, sabre will perform a lunge while blinking if there is a monster in the path of the blink.
- Moving with a spear or pike extends the weapon into the next grid in the direction you are moving if it is unoccupied. Any monster entering this grid will be automatically hit for x3 times damage.
- Maces, hammers damage is halved but they knock back enemies they hit 2 grids, doing triple damage if the enemy is knocked into an obstruction.
- Talisman of madness bonus now only affects weapons and armour. (One does not simply walk into DL100).
- Spiders summoned by a talisman of spiders appear at the stairs on the current level and begin levelled up twice for each enchantment on the talisman; this does not allow them to learn new abilities.
- Fix potion of winds typo.
- Scrolls of duplication correctly duplicate keys.
- Scrolls, charms of shattering have a chance of shattering reflective monsters, based on proximity and shattering radius.
- Fix protection so that it really only lasts 20 turns.
- Golems are not tortured.
- Dragons attack all adjacent targets; horror attacks penetrate like a Brogue spear/pike.
- Armour AC is increased by 1 for all armors except leather, plate. Plate strength requirement increased by one.
- Imps, nagas, salamanders get flee near death flag.
- Nagas and salamanders rapidly heal when submerged (2 hp per turn).
- Nagas and salamanders hate each other and will always attack each other on sight, even if allied.
- Added 'h'arpies, 'l'amias and [spoiler]. Feedback on how unfair these monsters are is welcome.
- You take half damage falling into shallow water, bogs or dense foliage, or if the air below is filled with strong winds.
- Slays/immunities now apply to a group of similar monsters (dar slaying, jelly slaying) rather than individual monsters in some instances.
- Firebolt is piercing: left over damage is applied to the next monster in line of fire if the first is killed.
- Aggravate Monster temporarily aggravates all monsters in LOS: aggravated monsters attack instead of fleeing, flitting or keeping their distance.
- Throwing potions of fire immunity creates a fire extinguishing gas. Throwing potions of life creates a healing gas.
- Centaur and arrow turret attacks unaffected by negation. Dart and acid turrets are stripped of their special effects but can still attack from a distance if negated. Ogres do not lose their shields if negated.
- Captive and dominated monsters generated out of depth don't begin gaining experience until they reach their minimum depth.
- Removed rings of Accuracy, Wizardry and Alchemy.
- Added Transference as a ring again. Removed Transference runic.
- Excess hit points stolen with transference adds to protection.
- Thrown weapons are not destroyed when they hit a target, unless it is a dart or javelin with a special ability such as incendiary darts. To compensate they all appear in smaller stacks and you begin the game with only 3 darts. (Inspired by morphles' patch).
- Thrown spears and pikes penetrate through to a second target in the next grid along the aimed path; thrown axes, sabres hit all targets adjacent to the grid before the first target they would hit.
- Wand and staff types are combined, with each type randomly being a wand or staff from game to game, but a minimum of two wands and three staffs, one of which will be a direct damage staff (lightning, fire, poison, force).
- Wands/staffs of Force and Nature added. Force pushes monster backwards 1 grid per enchantment and damages them if they hit an obstruction: triple damage if the target is knocked into a wall. Nature stops and grows a plant if the bolt crosses consecutive three fertile grids of the same type - either observe what plants grow on what terrain in the dungeon, or experiment to see what you can grow - and nature wands grow wooden bridges over chasms.
- Added more monsters summoned by wands/staffs of summoning. Staffs of phantoms removed as invisible hard hitting enemies on level 1 was not fun.
- Added more talismans. Check 'D'iscoveries for names.
- Talismans now all significantly change how part of the game works so that the least interesting ones are those which require that you be hallucinating, poisoned or on fire.
- Added some new reward rooms for further mid and end game variety.
- Runic wands and staffs.