Thursday 20 December 2012

Yakslapper: are the WvW titles unreasonable?

There was a thread on /r/GuildWars2 earlier today in which the poster lamented the fact that getting the Yakslapper achievement does not, in fact, reward you with the title "Yakslapper", but rather the much less interesting "Ultimate Interceptor". One of the comments there mentioned that the requirement was 1,000,000 kills.

One million kills.

That struck me as pretty damn high, so I went to check. GW2Wiki confirms this number, but doesn't give its sources, and I can't find any other . The problem with the GW2 achievement system is that it doesn't show you what the numbers are for higher tiers (nor the current tier, but that can be easily guessed), and so this figure seems to be based on pure extrapolation from the surrounding achievements. For example, I'm on Tier 2 of 5 at the moment, with 256 kills. You can tell that Tier 2 is probably 1,000 kills.
1,000 doylak kills, while high, is hardly unachievable given that the game has been out for several months now, and therefore I feel that I have to trust the figure for the next tier of 10,000. So far, so good.

At this point we hit the real problem with that wiki page: we simply do not know whether the next figures of 10,000 and 1,000,000 are accurate. That the wiki doesn't have the achievement point rankings for Tiers 4 and 5 is irrelevant because it doesn't have it for Tier 3 either, which we've already assumed to be accurate.

For now, let's assume that the page is correct and that to get the title requires 1,000,000 dolyak kills. Is this even possible?

First of all, how fast can one kill a dolyak? I'm going to set a really, really high estimate at 1 per minute. Let's say that you're a dagger/dagger Elementalist with Lightning Flash, permaswiftness and a full dps-burst spec. This would just about let you travel from camp to camp, killing a Dolyak at each, in about a minute. Hell, let's say that all you have to do is tag the doylak and another group travelling behind you will finish it off. We're stretching it here, but this is a possible, if not plausible, scenario.

According to the NHS, the average adult needs between six and nine hours of sleep a night. Let's assume that our would-be-Yakslapper falls at the lower end of that spectrum, and let's add an extra hour a day for meals and exercise and the like (yes, this is below the recommended amount for healthy living, but, let's face it, the majority of people working office jobs probably fail that requirement anyway). This leaves us with 17 hours a day with which to kill dolyaks. That's 1020 kills a day.

If the target is one million kills, that's 980 days, or roughly two years and eight months. Two years and eight months, doing nothing else whatsoever except kill dolyaks at an impossibly fast rate.

As a point of comparison, let's look at some other achievements you could get in the same time.

Excluding holidays, of course. It's also probably more expensive than killing Dolyaks, but on the other hand the government won't give you a loan to help you with your dream of getting a title in an MMO (I think).
Assuming that everyone you marry dies on their wedding night, and allowing one day for the ceremony itself, you can get married in the UK every 16 days.
This achievement is arguably more difficult, as it requires a wet-nurse (or some other way around the postnatal infertility), and, presumably, to be female.
Again, this requires you to be in England or Wales, and your victim must not die. Pleading guilty may also help you here.
Walking form Ulaanbaatar to Paris also counts towards this achievement.
So, yeah. It's probably not worth it.

~Roxton.

Bootnote:
All this is of course assuming that the 1,000,000 figure is correct, which we can't be sure of. And even if it is, there's always the possibility that ANet might lower it. But as it stands, it's a horrible, horrible achievement which should not ever be completed.

By the way, if one ran a bot which played continuously at the rate calculated above, it would still take almost two years.

Friday 30 March 2012

Tribes: Ascend - The Generator Problem

Full disclosure: for a number of reasons I never played any of the previous Tribes games. While obviously this means that I can never be a proski or good at Tribes: Ascend (hereafter T:A), I think this just means that I can view T:A objectively.

There's been a lot of talk on the T:A forums and community sites about the role of the generator in Capture the Flag. Views range from 'the generator is completely useless and anyone who ever goes near it is terrible' to 'whenever we have the generator up we steamroll them; whenever it's down we get steamrolled'. As is often the case in these kinds of arguments, both sides contain part of the truth.

Let's start with the basics. The generator is located inside the base, though in a different place from the flag stand, and powers the base turrets and radar station as well as that team's pack deployables such as light turrets, force fields and jammer packs. It also powers the vehicle station (you can still drive existing vehicles if the generator is down, but not get new ones) and the core inventory stations (ones that have been called in still function without the generator).

All of this makes the generator appear to be pretty important. Without radar, you can only see opponents who are within a certain range and in line-of-sight, which makes spotting incoming flag cappers and other enemies much more difficult. The base turrets can two-shot a light class and most of the time can target enemies actually on the flag stand. Vehicles are cheap and easy to use, and can do a fair amount of damage. Likewise, force fields and light turrets are excellent at defending the flag and  generator, and without the jammer pack the Sentinel can have a really hard time staying undetected, especially if the opposition have their radar up. And for technicians and other defensive classes, inventory stations are extremely useful for replenishing ammo and forcing health regeneration.

The problem is that all these things cease to be true once you and/or your team reach a certain level of ability. If your Sentinel is doing their job and spotting targets (possibly tagging them as well) then you won't be as reliant on radar. Base turrets are too slow to hit a flag capper going at a decent speed, and in any case are easily taken out from the other side of the map with tactical strikes or mortars. Vehicles look like fun, but there is nothing they can do that a player of the right class can't do better (more on that later), with the possible exception of Shrikes - and, of course, they cost credits to use. Deployables are easily destroyed with strikes or shelling, both of which have the advantage of potentially dealing damage to (or indeed killing) defenders. Oh, and if a Sentinel is given away by a downed jammer pack  then they aren't moving around anywhere near as much as they should. Finally, suicide is an excellent substitute for the inventory stations, and can be one of the most useful abilities in the game if used correctly.

At the moment, most of the benefits of the generator being up, such as vehicles, fall under the umbrella of First Order Optimal Strategies, or FOO strategies. Extra Credits, who invented the term, define these as 'gameplay choices or strategies with a low ratio of skill in to power out'. Basically, they're things like the zergling rush or the Protoss deathball in StarCraft II or the noob tube (grenade launcher) in Call of Duty - techniques that are easy to execute but hard to counter. While to an inexperienced player they appear unbalanced, in reality they rarely affect high-level play, because by that point people know how to deal with them and have progressed to more difficult but more effective strategies. An example from T:A would be the motion-detector-turret placement in the generator room of Temple Ruins that I demonstrated in a previous video, which is extremely easy to set up but difficult for new Infiltrators to counter because they're not expecting it. Perhaps a better example is the Beowulf tank. It's extremely good at clearing base turrets and flag defences from a distance (depending on the map), and when one comes out new players are often hesitant to engage, because, well, it's a tank. However, they're not really any better than a Juggernaut at shelling the enemy base, and are much easier to kill because they're slower, bigger, and (this is important), much worse at flying. The difference is that tanks are much easier to use than Juggernauts, and you don't have to spend time upgrading them or learning how to play them. A good player who is not scared of the tank can solo it almost every time, meaning that at higher levels tanks become much less useful. (The exception to this is, of course, parking a tank in the generator room in Sunstar, because that's just hilarious).

That's not to say that these things have no place in the game: FOO strategies are vital for giving new players a sporting chance and giving them something to do other than give free credits to the other side. The problem is that almost everything the generator supplies is used in a FOO strategy, and at high levels can all be replaced by a mixture of the right classes and player skill. At that point, defending and repairing it becomes relatively pointless, and it makes more sense to replace your Technicians (the class most strongly tied to the generator) with Pathfinders or Juggernauts and just play straight-up Capture the Flag.

However, in public games people don't always have the skill level required to counter FOO strategies or replace them, and so the generator is much more important. Of course, what happens then is that one or both sides overcommit to generator play, pulling vital resources away from the flag. You probably never really want more than one, maybe two people attacking it anyway, but there is at least some purpose to it provided that you don't overload on either offence or defence. The problem is that because there's no match-making system, you end up with a huge blend of player abilities, to the point where you can have one Technician holding off five or six people attacking the generator; or alternatively one skilled Infiltrator, Brute or Raider living in the enemy generator room and killing all the Technicians and Doombringers who come to repair it.

This naturally leads to arguments, claims of imbalance, and accusations of bad play: high-level players don't realise the importance of the generator to low-level teams and call them stupid for caring (which they're not); and low-level players don't realise its irrelevance in high-level play and call the high-level players elitist and arrogant (which they can be). The problem is exacerbated by a number of classes (most prominently the Technician, Infiltrator and Doombringer) being balanced to some degree around generator attack or defence. Not only does this imply that the generator is important (I've been given all these tools so presumably I ought to use them), but reducing the generator at high levels to a mere appendix hinting at a depth and complexity that might have been makes large parts of these classes redundant. After all, why would you take a Technician over a Soldier when the latter has more health, more energy and a spinfusor along with hitscan weapons, if the light turrets are always going to be dead and the repair gun is never going to be used?

So, how can this be fixed? From the points above, the obvious plan would be to give the generator some ability that is useful (though not vital), and that cannot be replaced by high-level play. Tribes 2 did this by having the players spawn in the lightest armour and with the default weapons, forcing them to go to an inventory station to pick up their chosen loadout. While this probably can't be carried straight across for a number of reasons (no scavenging and a big spawn-flag distance would mean that losing the generator is basically a game over), it does form the basis for one possible solution, which would be to have players spawn with their chosen class and weapons, but completely un-upgraded. Going to an inventory station, in addition to its current effects, would upgrade the loadout to the level that the player has unlocked. This would actually be more important for high-level players, as they are more likely to have fully upgraded their class, while not impacting those with fewer unlocks to the same degree. It can also be scaled up or down by changing what items are granted by the default spawn (e.g. making the Pathfinder spawn with Thrust rather than Energy Recharge), which allows for more fine-grained control by the developers. There are lots of other solutions, from buffing vehicles to increasing the speed of base turret projectiles, but it's difficult to come up with something that doesn't push the balance inordinately towards the generator or break the game in some other way. Interestingly, a recently released competitive ruleset actually has the players spawning naked. We'll see how it plays out; as has been noted before, Hi Rez's general policy seems to be to implement first and fix later. This is a beta, after all.


Bootnote: This is the generator defence video:

Saturday 17 March 2012

How much energy does scrolling a mouse-wheel produce?


I've seen this image a few times in the last couple of days, and because I'm avoiding writing a research essay on Old English literature I thought I'd work out just how much energy scrolling a mouse-wheel actually generates.

The first thing to do is to work out how many times I scroll my mouse-wheel in a given period of time. To do this, I downloaded the Mousotron 7.0 from BlackSunSoftware, which records the number of mouse scrolls you make, along with a huge amount of other mouse-related data. I then tried to replicate an average use of my computer: I read Cracked.com; checked the news; replied to some emails; and did a little bit of work on my game. I also counted the number of mouse scroll 'clicks' (you know what I mean: the little bumps the wheel makes as it rotates) that were required to make a full rotation. I did this by putting a little highlighter ink on part of the wheel, and then counting the clicks as I rotated it. For my mouse, a Razor Naga, it took 24 LED-illuminated clicks before the highlighter ink reappeared.

After almost an hour of mucking around I stopped procrastinating and looked at the counter:
After 56 minutes the scroll-count stood at 1317, which is 54.875 full rotations - about 1 a minute, or 0.102 rad/s (1rps = 2*pi rad/s). Of course, I don't know if this is a usual figure for everyone, but, as I say, it was a pretty usual hour of slacking for me.

From here on I'm going to be showing my calculations in WolframAlpha, because that gives people a good way to check my maths. So, first of all, rotational kinetic energy:
This requires us to calculate the moment of inertia and the angular velocity of the mouse-wheel. The moment of inertia is
and uses the mass of the mouse-wheel and its radius. The diameter of the wheel is is almost exactly an inch, so the radius would be 0.0125m. I'm not really in the mood to dismantle my mouse to work out exactly what the mass is, but I'm guessing around 5g: a UK 2p coin is about 7g and has approximately the same diameter. It's thinner, but is also made of copper while the mouse-wheel is made of some kind of rubbery plastic. The width of the wheel is about 1cm. Therefore the moment of inertia is about 3.9 gcm2.

Therefore the rotational kinetic energy generated by the mouse-wheel in a second is 2.0567*10-9 J, or about 2 nanojoules. If we scale this up to an hour, that's about 7.4 microjoules, or the energy a mosquito needs to fly for about 46 seconds. To put that in perspective, my mouse requires about a quarter of a Watt to function: that's 0.25J/second, which is around 36,000 times more energy than the mouse-wheel produced in an hour of web-browsing.

Another example: if 9gag.com gets 5.5 million visitors per day, and each of those visitors spends a whole hour on the site, then the scrolling each day would generate around 40J, enough to power my mouse for two minutes and 40 seconds.

In conclusion, therefore, the energy used by scrolling the mouse-wheel is at best utterly insignificant. Yes, I'm aware that I'm missing the point.

Of course, these are all rough estimates. It's also worth noting that I've assumed a perfect conversion from kinetic to electrical energy, ignoring any inefficiencies that would boundless be present in the kind of tiny generator one would have to fit into a mouse to make this work at all. As far as I remember bike dynamos are around 80% efficient at best - I have no idea what kind of efficiencies are possible on such a small scale.

Thursday 8 March 2012

Game Maker Tip #1

instance_exists(obj) is a fantastic function that returns true if an instance of the object exists. You can use a general object index (for example o_player), a specific instance id (e.g. player or 100421) or keywords like all. I use it frequently to check if an instance still exists before executing code involving that instance.


However, be careful. instance_exists(0) will always return true, because it interprets the 0 as being a reference to the first object created. Therefore if you have variables in your create events or elsewhere which will be used to store instance ids, initialise them with name=noone rather than name=0.

Wednesday 7 March 2012

Review: Phylo

Phylo is a browser-based colour/block matching game available to play here. Like the famous FoldIt, its aim is to 'recycle' the power of thousands of bored casual gamers to further a scientific objective, but while FoldIt concerned itself with protein sequencing (or manipulation or whatever the term is; I did engineering, damnit, not this namby-pamby squishy nonsense), Phylo has you sequencing (or matching, etc. etc.) genomes. If you're interested in the back-story Rock, Paper Shotgun has an interview with one of the scientists involved, but I'm concerning myself more with the actual gameplay.

The basic mechanics are extremely simple. You are given two rows of coloured blocks, and have to match them up with as few mis-matched colours or gaps in the sequence as possible. You can slide the blocks left and right (not up and down), but they can't change order and so shunt each other aside. As the game progresses more and more rows are added, and so it gets more and more challenging.
You gain points for correct matches, and lose points for gaps or mis-matches. Once you have arranged the rows so as to have more points than a computer-generated par, then you can add another row or finish the level if all the rows have been sorted. In some cases completing the level is easy, and the challenge lies in getting the highest possible score for bragging rights; in others simply reaching par is a challenge.

I found the hardest part of the game to be understanding the scoring. You get one point for every correct match; you lose one point for every mis-match; the first gap in a sequence loses you five points, with every subsequent gap losing you one more point; and you get more points for matching closely related species than unrelated ones. This last part is especially relevant once more rows are added, and prioritising which rows to match becomes important. The scoring is explained briefly in the tutorial, but you can't look it up while playing (thus violating one of the cardinal rules of tutorial design: that all information learned therein should be available at all times), and I couldn't find any explanation as to exactly how much more valuable closely related species matches were, which makes it much harder to work out what you should be doing.

It also took me an embarrassingly long time to understand how gaps work. It's not just about breaking a sequence: if you have one sequence longer than the other, then any space between the ends of the two rows also counts as a gap. So in the example above, the bottom row (the bat) has no gaps, but the top row (the cow) has two: one on the left (above the green bat square), and one on the right (from the orange to the green bat squares). Maybe I'm just really thick, but once I got onto four or more rows the scoring ended up feeling random and confusing, which made for a rather unenjoyable experience.

It wouldn't be so bad if the scores were displayed in real time, giving you some feedback, but instead the score is calculated every five seconds with a little red timer bar and an irritating blip noise, which means that you either have to wait or manually click a button to see if your latest move has improved your score or ruined it. This disconnects the player from any sense of feedback and makes understanding the already complicated system ten times harder. In, say, Bejewelled, this wouldn't be such a problem, but here the score is everything: your only objective is to increase it. I really have no idea why a timed update was chosen over real-time. Maybe it's an optimisation decision, but I refuse to believe that it could really save any meaningful amount of processing over simply having it update each time the player makes a move.

The other big annoyance is that these challenges are timed, which means that a good proportion of players fail to complete the challenge at all, let alone in an optimal fashion. The difficulty curve is what I'd describe as 'exponential with wobbly bits': the basic levels with three rows are absurdly easy; four rows can be pretty tricky, and anything more than that has a good chance of being fiendishly hard, though occasionally you'll come across an eight-row puzzle that can be solved simply by stacking all the blocks to the left. This is exacerbated by the time limit, which, as far as I can tell, is the same for all difficulty levels: I started off doing some basic three-row puzzles, got bored, moved to the next level and ran out of time.
Of course, a lot of these problems are due to the nature of the project as opposed to bad design. The scoring system is odd and confusing, but I'm not a biologist and presumably the scoring reflects the way genomes should be matched. The timer is annoying and significantly detracts from the play experience, but maybe from the designer's perspective it makes more sense to have a lot of people playing a lot of puzzles and finding lots of good solutions, rather than having people play a few puzzles for a long time and finding the best solutions. I just don't know; I wasn't on the design team and I'm not going to be using any of the data produced by the game.

Having said that, there are also a lot of problems that are definitely due to bad design: the intermittent score updating; the way that useful stats are only shown when mousing over a certain button; or that there's no way of abandoning a level once started without logging out. And why the relative values of related species matches couldn't be explained I have no idea.

I'm probably being too harsh. It's a free game for a good cause, and even without the feel-good factor of progressing scientific knowledge and being part of a big, happy crowdsourcing experiment it's more challenging and worthwhile than Bejewelled (though it's definitely more frustrating). I'd recommend that you go and give it whirl, but I wouldn't blame you if you don't play for very long.

Rule #66

Never wear a shirt that's darker than your suit.

Friday 2 March 2012

Burnout

For the last week or so I've done absolutely no work on the game at all. Why? Because I burnt out on it.

For the last month or so I've been doing almost nothing but coding, drawing and designing, and it had begun to take its toll on me. I'm not a professional; I have other commitments, and, to be honest, I'm an innately lazy person.

The straw that broke my idling, sloth-like back was the realisation (hardly a shocking one) that I have absolutely no artistic ability, talent or potential of any form, and that making background artwork was much harder than I thought it was going to be. To be honest, I still don't know exactly how I'm going to deal with it, but hey, that's a problem for future me, and I hate that guy. If the worst comes to the worst I'll have to go and stand outside the arts building and "persuade" the least irritating person there to do some art for me. That's a sign of my near-negative artistic talent: I don't even know what the verb for making art is: is it "making"? "Creating"? "Doing"? Who knows. I don't even own a beret. Or a Macbook. And I don't smoke, and prefer to be clean-shaven. Terrible.

Anyway, so I took a week off. I wrote an essay on the complexity of Gothic villains, a translation of The Tale of Balin from Malory's Le Morte d'Arthur, and a commentary on the recursive microcosms present in Balin. I also learnt a new card trick, discovered a secret passage in the university, and played a lot of Starcraft II. A lot. I went from Bronze league to Platinum, and then fell back down to Silver, all the space of three or four days. It was fun, but now I'm fed up with it and so am ready to return to the game.

Because I'm making so little progress on the art front, I decided to implement something that I had intended to save for much later in the development cycle: multiplayer. At the moment I'm working on getting support for up to four characters - while more could probably be added without causing too much lag, it's a bit of a balance issue. There's full friendly fire, so it will be sort of self balancing, but that doesn't scale perfectly by any stretch. Once it's done and all the artwork is original (even if it's atrocious: at the moment I'm just using sprites from Realm of the Mad God) I'll start releasing videos.

Tuesday 31 January 2012

Review: Kingdoms of Amalur: Reckoning Demo

Kingdoms of Amalur: Reckoning (hereby shortened to KoAR because there's no way in hell that I'm typing it out in full every time) is an action-RPG with what on paper looks like a fantastic cast list: the lead designer of Morrowind and Oblivion; a best-selling fantasy novelist; and the creator of Spore are all on board, and it's developed by the same company who made Rise of Nations and Age of Empires: III. I have to admit, though, that I got all of that from Wikipedia scrounging because I only really took notice of the game after it was so highly praised by Penny Arcade. Like many people, this was the first I'd really heard of it, so my immediate reaction was to download the demo, expecting great things. After the usual Steam faffing about, I fired up Fraps and set up my good microphone, and got ready to produce a fantastic first impressions video.  

However, first I had to create an “EA Infinity Account”. Why, I have no idea, but it's not a good way to start your game. Especially when said account requires my date of birth. Especially when said account creation keeps failing because of an “unknown connection error”. Especially when I then have to un-check around 15 boxes to say “No, please do not sell my information to the Chinese”. AND ESPECIALLY WHEN YOU THEN CRASH THE GAME AND MAKE ME DO IT ALL OVER AGAIN. Sorry. Anyway, not a great start. 

The next joy was the opening cinematic, which, well... look, I don't want to say anything bad about R.A. Salvatore, partly because I know what his usual standard is like, and also because he used to work as a bouncer, but it really was weak. I know that he was hired to do “world-creation” rather than actual dialogue, but the cinematic doesn't make the world look that great either. From what I can gather, there were some Fay folk who turned evil and now everything's on fire. Oh, and the villain has a red glowing goatee and sits on a blood-red crystal throne while doing an evil laugh and occasionally muttering “Oh, yes”. I mean, really. Even the villains in WoW had more character. Maybe I'm being too harsh – at least the ending was interesting. It's not often that you start a game by being dead. Anyway, here's a copy of the cinematic so you can see for yourselves:
  I mentioned WoW in the previous paragraph and it's a comparison I think we'll see a lot of, mostly regarding the graphical style. It's certainly very similar, though considerably more polished. Some people have complained about it, but personally I think it works rather well. Having a brighter, more colourful palette is certainly appealing, and a welcome change from the greys and browns that are so popular at the moment. Skyrim was beautiful, yes, and striking, but after a while I found myself longing for some variety and a landscape that wasn't sparse, barren and mountainous. While I didn't have a chance to move too far out in the demo, there was certainly the indication that we'd have lots of varied zones, which was one of the best things about WoW's visual design.

Cartoony but pretty.

However, I wasn't immediately able to appreciate the eye-candy because the game decided that it would make more sense for me to stay in the dark and have a completely black screen. A quick Google search told me that the solution was to turn off post-processing – apparently this isn't an uncommon bug. The demo in general was buggy to the point of broken. Apart from the aforementioned black-screen issue, it would crash for any or no reason: on Alt-Tab; on opening a door; on starting a cinematic; on leaving a cinematic; on equipping a weapon... the list goes on and on. I mentioned earlier that I'd tried to make a video, but after a while I gave up, because there are only so many error screens that I can expect people to look at. Apparently many of these problems have been fixed in the full game, but it still feels awfully unprofessional to release a demo that's this broken. 

The fleas of a thousand camels.

Wow, 700 words and we've not even reached the gameplay. So, let's get on with it. You start off dead, or on a slab in any case, and while the gnomes escorting you to the incinerator laugh about your ridiculously undersized genitals you can determine your race and appearance. You have a choice of four races – two humans and two elves, all with unpronounceable names – which provide various bonuses, and the option to pick a patron deity, which grants you further buffs to mana or crit chance or similar. Interestingly there's also an option to pick no god at all, which gives you a 1% experience buff for your “self-reliance”. This is all well and good, and in keeping with long-established RPG tradition, but it carries with it the common problem of not knowing what the stats actually mean. Some are obvious (e.g. “Stealth”), but what the hell is “Sagecraft”? Do I need it? Even more commonplace stats such as “Alchemy” are confusing: presumably it makes my potions better, or something similar, but how important is that? Will I be making potions a lot, or relying on drops? All these are things you'll pick pretty fast as soon as you start the game, but asking you to know the answers before you start playing seems rather unfair. At least Skyrim told me what Enchanting actually did, even it it did neglect to mention that it was the single most important stat in the game. 

The character customisation is good if a little basic compared to Skyrim and its ilk, but to be honest I see that as an improvement. I'm not going to be looking at my character's face most of the time anyway, so I really don't care about getting the exact angle of his jawbone right. I will, however, be looking at his hair a lot (you have the option to turn off helm visibility, which is fantastic), and so KoAR gets full marks for providing a male hairstyle that isn't bald, ponytail/really long or a mohican. Anyway, once all the starting mucking about is done you're given a rusty sword and told to hack your way to freedom. 

The combat in KoAR has been heavily praised, and most of the time this praise is deserved. Melee swings feel meaty and connect well, and the way in which you can cleave enemies standing side by side simultaneously is a particularly nice touch. In the tutorial dungeon most of the combat involves frantically clicking the left mouse button, but once you start learning different moves for each of the many, many weapon types combat becomes much more fluid and skill-based. Personally I found staves to be particularly satisfying. However, there are still issues with the combat, and the most significant of these is aiming. Because the game is being released for consoles as well as for the PC the developers have decided to go for an auto-target system rather than a crosshair, and it's pretty terrible. It's bad enough in a melee situation where sometimes your character will opt to attack a passing butterfly rather than the thug with twin daggers standing behind it, but if you want to use a ranged weapon or a spell it's absolutely atrocious. While it's clear that you're supposed to be able to switch between targets by moving the mouse left or right, half the time it seems to pick one at random and removes your ability to switch unless you're actually walking towards the target. And given that enemies have actual line-of-sight aggro rather than some vague circular range (which is a good thing), the odds are that you're going have your gonads cut off before you have time to line up your power shot.
Claustrophobic combat

Spell casting, by and large, suffers the same problem. There were a number of occasions where I tried to open combat with a spell from a distance, but ended up frying a critter off-screen to the right or left and having to wait a minute before I could continue because casting at low levels completely empties your mana bar.

If you don't want to fight with sword, shield or spells, then you can also try stealth. The toggle-based system earns points for showing how visible you are to individual enemies, but then loses some by having stealth defined by a database entry rather than on line of sight or shadows (partly forgiveable; this is an RPG), and then loses even more by making your reward for successful stealth a canned animation, character incapacitating one-hit kill. There's also a rage-bar mechanic which basically enables you to occasionally kill a mob with a quick-time event to get extra experience. It's fun the first time, but then becomes irritating and ultimately feels rather pointless.
Killing an enemy with the QTE isn't as fun as it looks

There are a host of other minor annoyances: the fact that there's no keyboard shortcut for “Take All” from a looted body; your character can't jump, meaning that you get stuck on gravel; the ridiculous limitations on weapon switching – that last one probably merits expansion. You can define a primary and a secondary weapon (for example, a sword and a bow), and switch between them by scrolling the mouse-wheel, but if you want to change what those weapons are, you have to go through three different menu screens. There's no way of hotkeying weapons; no Skyrim style quick menu (well there is, but it's for consumables only). So if you want to take a melee weapon, a ranged weapon, and daggers for stealth kills, well, you can't. So much for hybrid classes. 

All of these gripes fade into insignificance, however, when compared to the monumental irritation that is the camera – or rather, the camera distance. By default it sits about an inch from the back of your character, and there's no way of changing it. On a 1248x1024 monitor, this means that about a third of the screen is taken up with the character's body, and while I did indeed appreciate his taut, pert rump for about a minute or so, the novelty faded and left me unable to see much of the world. This restraint of vision also means that you're extremely likely to be ambushed by mobs you just can't see. Fortunately it zooms out a bit during combat, or at least it's meant to. It worked for me about half the time, and even then I was still being hit in the back by enemies I couldn't see. For me this was the single biggest problem with the game. The FoV (if that term can be properly used for a 3rd-person game) was so tight, and the character so obscuring, that I felt almost claustrophobic. It made everything irritating; combat became a frustration, exploration awkward and situational awareness just disappeared. I don't know if I'm the only one to find this annoying; maybe if I had a massive monitor it wouldn't be such an issue, but for me it pretty much broke the game. 

Which is a shame, because the rest of the game is pretty nice. The characters are all excellently written and voice-acted and characterised, even if too much of it is done through cutscenes; after ten minutes or so in the starting village I felt that I had a pretty good grip on their fears and motivations, even if I hated half of them (especially that ranting woman by the entrance to the monastery: I could hear her from about half a mile a way and she would not shut up). It's not an open world game by any stretch; about half the map of the first zone was inaccessible because it was a mountain or a giant tree or something else copy-pasted from the Darnassus starting area (I know, I know, WoW wasn't original either); but it's certainly not a linear game, and you're free to wander off and find side quests and dungeons and all sorts of other entertainment. While the interface is a little ugly, the inclusion of the "Junk" feature is very nice indeed.

The talent system would take too much effort to explain here, but can be summarised by saying that in addition to the three normal trees of mage, thief and fighter you also have the option of choosing various “destinies” or archetypical roles which are unlocked based on your current talents and provide various boosts (for example, going heavily into magic with a side order of melee would give you a destiny that benefits both to different degrees. The point is that you can hybridise without being penalised for it, which I whole-heartedly approve of.
The first basic destinies.

In conclusion, KoAR is a game that does a lot of things well – story, combat, dialogue, exploration and questing – but which hides its light under a bushel of poor design decisions and minor irritations. I don't know if I'll be picking it up on release (7th February) or waiting for the inevitable sale. I want to like it, but there's just too much holding it back.

~Roxton.

Tuesday 24 January 2012

The 2½ valid reasons to pirate games


Oh, before we begin, I ought to mention: I'm about as anti SOPA/PIPA as it's possible to get. There's no need for you to come and widdle in my azaleas.

If SOPA and PIPA do in fact stay shelved then they may end up having been a huge own-goal for its supporters. Because its effects would be so wide and so strong, it's turned what was previously a multi-faceted debate about piracy into a big, simple, SOPA Vs. Pirates issue, and SOPA is so bad, so unbelievably, stupidly terrible, that anyone whose brain wasn't surgically removed at birth is going to find themselves, somehow, on the side of the pirates. After stories like this, it's not hard to see why people like Jim “Pirates are dirty thieves” Stirling have changed their tune – whether or not their views have actually changed, they've got to appear to be pro-pirate or end up on the dangling end of a virtual lynching.

However, SOPA presents a false dichotomy. Piracy is not a black or white issue, but a minor moral maze. To guide you though it, I present my list of 2.5 valid moral justifications for pirating games.

1: The game in question is not for sale due to geographical location or age.

Amazing as it may seem, not all games can be bought everywhere, especially if you live in Tuvalu or Tajikistan. If the game is simply not available for purchase in your country, and you can't get it via digital distribution, then pirate away. This is one of the very few cases in which “piracy is not a lost sale” is definitely true – the game could not have been purchased.

The second clause concerns games whose studios have either collapsed or stopped releasing the game – the point being that you can't buy it anywhere in a way that would give money to the developers. This used to be a fairly common scenario for older games, and in some cases it still is, but with the advent of Good Old Games and other such services, it is now often possible to buy old games without having to go second-hand. However, if you can't buy it, or it's been abandoned, then again, pirate away. Just check before you do. To borrow a point from TotalBiscuit, abandonware could even be beneficial to the game developers by keeping interest in a franchise alive and increasing the possibility of a sequel.


2: You already own a copy of the game in question

This is a simple one. A lot of my games were bought many years ago and are still on discs. If those discs get scratched or broken beyond repair, I see no reason why I shouldn't download another copy. If you lose a card from a deck of playing cards, you're perfectly entitled to scribble the number and suit onto the joker or bridge score card and carry on playing. This does to some degree cover the issue of emulation, though that's a can of worms I'm saving for my next fishing trip. Also note that this does not cover “I'm going to buy it if I like it when I finish it” or some other equally fatuous excuse. Especially if the buying later consists of a Steam sale or a bundle.

2.5: You could not afford/would not have bought the game in question
There's a reason that this is a half-point, so before you scroll down to the comments and tell me what a dirty free-tard I am, allow me to explain. First of all, let's look at the harm that pirating a copy of the game does.

If it's a straight up decision between clicking on Steam or The Pirate Bay, then the harm is obvious: the developers have lost a sale. They get less money and fewer sales, reducing the likelihood of a sequel and the survival of the studio. That's pretty clear. However, a lot of pirates claim that they either couldn't afford or wouldn't have bought the game anyway, and thus their download doesn't count as a lost sale, and thus there is no harm done. And yes, if that is genuinely the case, and that person would never, ever have bought the game under any circumstances, then it's not a lost sale.

However.

There is a reason that this was a half-point, and it's this: these reasons practically never apply. You say that you wouldn't have bought it, but you were interested enough to go to the effort of pirating it, which is normally more than the effort required to buy it on Steam. You say that you couldn't afford it, but you probably could if you saved up or waited for a sale at some future point. If you really, genuinely can't afford it, then there are a tonne of free and really, really cheap games. I'm currently a student living almost entirely off my student maintenance loan, which is around £5000/year (around $8000, I think?), and I can still afford to buy games. I don't buy many: my most recent purchases, in reverse chronological order, are Magicka, Skyrim, Sequence, Orcs Must Die and Deus Ex: Human Revolution. Most of those were bought on or shortly after release (Magicka is the exception), at full price. What I'm saying is that while theoretically these are justifiable reasons, I find it extremely hard to believe that they ever really apply.


So, there we are. Those are, to my mind, the only morally justifiable reasons for downloading games illegally. If you don't fit those criteria, then please, please, stop trying to justify your actions as being harmless or even praiseworthy in some way. Definitely stop trying to make pirating a game because you're too greedy or lazy to pay for it a political act. Stop using examples of bad behaviour by publishers or politicians as justification. Saying “I don't like that they outsourced the boss fights in DXHR so I'll pirate it” is effectively the same flawed logic that leads publishers to say “I don't like that they keep pirating the games so I'm going to drop DRM on it till it screams”. Yes, they can be dicks. They shouldn't be, and neither should you. One might think that this kind of basic reasoning was taught in kindergarten, but apparently not. If you really disprove of a company's DRM or other actions, then just don't buy the game.

In short, please, please stop making excuses. You're fooling no one but yourself.

~Roxton.

Wednesday 18 January 2012

I wanted to be Sherlock

Inspired by the first series of the BBC's excellent Sherlock, I once ran a small blog in which I would take photographs of random people I saw on the tube/bus/train and upload them along with any deductions I could make. It was hardly a big hit - in the three months it was active it made just enough money for me to buy the box-set of Sherlock Series 1, and then I had exams the like and took it down (oh, there were also a few... complaints). However, I never really got out of the habit of attempting deductions, which, sadly, are rarely accurate. In my defence, it's much harder than Sherlock makes it look.

An example: this morning, walking home from the supermarket, I passed a man standing at the corner of a building talking on his phone. Some things were immediately obvious - his suit and shoes showed an indoor office worker; he was married, neat and careful of his appearance. It was pretty likely that he worked in the bank branch against which he was leaning. It was his phone, however, that caught my attention: it was an iPhone 4S, with a yellowing plastic-rubber cover. This discolouration of the cover started a line of reasoning: it looks old, definitely older than the phone, which could only be four months old at the most (release date was in October). One could therefore assume that he had previously owned the iPhone 4, and combining that with the brand loyalty that Apple products tend to inspire, one could assume that he was a long-time Apple user.

It was a small but interesting deduction, and I was feeling rather pleased with myself before I rounded the corner and realised the obvious flaw in my logic. The case was white. The iPhone 4 was black. A man who took the time to shave his rather odious goatee every morning and polished his shoes so regularly would almost certainly not put a white case on a black phone, and thus the case was either bought secondhand (extremely unlikely), or it was just an unpleasant colour from the get-go.

Oh well.

Sunday 8 January 2012

Voice control of PC

UPDATE: I lost the files for this but re-wrote some of the basics and uploaded them here.

When the iPhone 4S was released a few months ago, everyone seemed to go nuts over Siri. It looked pretty cool, it's true, but I had the sneaking suspicion that I'd seen it before. I had a look on my desktop and found, lurking at the back of the Start bar, Windows Speech Recognition. Now, in its natural state it's pretty limited - you can open and close programs, and in some Microsoft-brand applications do basic menu commands, but that's about it. However, it does come with the option of writing your own macros, and that's what I did. I spent a weekend writing the basic framework, and since then I've been adding features as I thought of them.

Over Christmas I mentioned that I'd been doing this to some friends, who expressed an interest in seeing it in action, so I've put together a brief video showcasing some of its more basic abilities. To be honest, I've kind of forgotten everything that it can do, especially since I taught it how to learn things for itself. Things I'd still like to do include linking it to a chatbot (cleverbot is meant to be quite good, or so I'm told), and adding more options in Google Documents.

Features (that I can think of off the top of my head) that were omitted from the video:

  • Directions in Google Maps
  • Creating events and reminders in Google Calendar
  • File management
  • Router management
  • Tracking visited websites in order to understand commands better (e.g. "Go to Cracked" will open cracked.com, because I've been there a lot).
Of course, there's always more to do. As you can see, it doesn't always work perfectly, but it actually tends to work better when you speak normally than when you over-enunciate your words (see the "When is the next full moon" example).

A few points about the video. It's not fantastically high-quality, I know. I couldn't find any really good free desktop recording software, and the camera was filmed using a decent-ish digital jobby that's really meant for photographs. I do have a much better mic, but it's a stand one, and this really needed a headset. Sorry for the spitting and popping noises, I know it's pretty horrible. The blurring is irritating, I know, but it would be rather rude to display the details of everyone else in my inbox/on Facebook, so there we go.

Hope you enjoy it - if people are really interested I could post bits of the code, but most of it isn't hugely complicated.

~Roxton.