<?xml version="1.0" encoding="UTF-8"?> 
<rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:atom="http://www.w3.org/2005/Atom"
        xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
        xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
        >
<channel>
  <title>asgaard</title>
  <description></description>
  <link>https://blog.asgaard.co.uk/2013/4</link>
  <lastBuildDate>Tue, 12 May 26 17:30:58 +0000</lastBuildDate>
  <language>en</language>
  <count>4</count>
  <offset>0</offset>
      <item>
    <title>I&#039;m going to do something with loljs</title>
    <link>https://blog.asgaard.co.uk/2013/04/28/i-m-going-to-do-something-with-loljs</link>
    <pubDate>Sun, 28 Apr 13 22:46:10 +0000</pubDate>
    <guid>https://blog.asgaard.co.uk/2013/04/28/i-m-going-to-do-something-with-loljs</guid>
    <description><![CDATA[
<p>
<a href='http://asgaard.co.uk/misc/loljs/'>loljs</a> is a pretty rubbish LOLCODE to JavaScript translator I hacked together a few years ago before I really knew JavaScript. It really is rubbish, half the time it will crash on bad input and give absolutely no indication that it has done so. But according to traffic stats, people love it.
<p>
It hit the big time (sort of) after a (relatively) popular YouTube channel video used it for a &quot;how to learn programming video&quot;.
<p>
lolcode is not a sensible way to learn to program. But it strikes me that it <em>is</em> a sensible way to learn some things about programming languages. lolcode has the nice pair of properties that it&#039;s powerful enough to express normal programming constructs while being small enough to be able to keep the whole language&#039;s structure in your head at once. It&#039;s also amusing.
<p>
I would like to relaunch loljs as:<ol><li>A more robust compiler/runtime.</li><li>A well featured text editor.</li><li>Something to visualise the relationship between the lolcode and the way a compiler sees it.</li></ol>
<p>
I have <a href='https://github.com/markwatkinson/loljs'>started writ</a>[...]]]></description>
    <content:encoded><![CDATA[
<p>
<a href='http://asgaard.co.uk/misc/loljs/'>loljs</a> is a pretty rubbish LOLCODE to JavaScript translator I hacked together a few years ago before I really knew JavaScript. It really is rubbish, half the time it will crash on bad input and give absolutely no indication that it has done so. But according to traffic stats, people love it.
<p>
It hit the big time (sort of) after a (relatively) popular YouTube channel video used it for a &quot;how to learn programming video&quot;.
<p>
lolcode is not a sensible way to learn to program. But it strikes me that it <em>is</em> a sensible way to learn some things about programming languages. lolcode has the nice pair of properties that it&#039;s powerful enough to express normal programming constructs while being small enough to be able to keep the whole language&#039;s structure in your head at once. It&#039;s also amusing.
<p>
I would like to relaunch loljs as:<ol><li>A more robust compiler/runtime.</li><li>A well featured text editor.</li><li>Something to visualise the relationship between the lolcode and the way a compiler sees it.</li></ol>
<p>
I have <a href='https://github.com/markwatkinson/loljs'>started writing the compiler</a> using <a href='http://zaach.github.io/jison/'>Jison</a>, instead of the rubbish and buggy hand-written parser I had before. I am currently working down the route of interpreting the resulting tree instead of translating it to JS, as this gives a bit more runtime control and better error feedback. It&#039;s also easier and more fun than messing around with creating strings of JavaScript code and having to worry about how safe they are and how we figure out relaying runtime errors back to the user.
<p>
For the text editor I&#039;ll probably use CodeMirror and write a custom mode.
<p>
The third point needs more thought. I like the idea of being able to hover over blocks of code and see some representation of the syntax tree for that fragment. The first version will probably just show some nicely formatted JSON, but I wonder if something clever could be done with Canvas to display a real, explorable tree.
<p>
I am only working on this in my free time, so it might take a while.]]></content:encoded>
  </item>
      <item>
    <title>Saints Row: The Third Review</title>
    <link>https://blog.asgaard.co.uk/2013/04/14/saints-row-the-third-review</link>
    <pubDate>Sun, 14 Apr 13 16:56:43 +0000</pubDate>
    <guid>https://blog.asgaard.co.uk/2013/04/14/saints-row-the-third-review</guid>
    <description><![CDATA[
<p>
<img src='/assets/img/2013-04-14/saints-row-powerslide.jpg' class='width-100' alt=''/>
<p>
Once upon a time, there was a game called Grand Theft Auto which offered the player a largely nonsensical sandbox world and a thinly strung together set of missions, which could, if you were generous, be called a story. The series evolved. By Grand Theft Auto III, the developers were showing warning signs that they thought the game wasn&#039;t pretentious enough. GTA4 was a dissonant mix of gritty realism and cartoon violence; while Niko Bellic would lament all the violence and mayhem during scripted cut-scenes, and while the characters often felt like <em>real people</em> (if dislikeable ones), Niko would happily accept his next mission to go and kill 30 lifeless copy-and-pasted gang members without batting an eyelid.
<p>
<img src='/assets/img/2013-04-14/saints-row-gunfight.jpg' class='border float-left width-45' title='The gun fights still feel natural in third person' alt='The gun fights still feel natural in third person'/>
<p>
In an alternate reality, GTA&#039;s transition to 3D kept its zany irreverence, and became Saints Row: The Third. It doesn&#039;t seem quite fair to continually compare it to GTA, but GTA basically invented the genre, and there is nothing else of note which is similar. So I&#039;m afraid I have t[...]]]></description>
    <content:encoded><![CDATA[
<p>
<img src='/assets/img/2013-04-14/saints-row-powerslide.jpg' class='width-100' alt=''/>
<p>
Once upon a time, there was a game called Grand Theft Auto which offered the player a largely nonsensical sandbox world and a thinly strung together set of missions, which could, if you were generous, be called a story. The series evolved. By Grand Theft Auto III, the developers were showing warning signs that they thought the game wasn&#039;t pretentious enough. GTA4 was a dissonant mix of gritty realism and cartoon violence; while Niko Bellic would lament all the violence and mayhem during scripted cut-scenes, and while the characters often felt like <em>real people</em> (if dislikeable ones), Niko would happily accept his next mission to go and kill 30 lifeless copy-and-pasted gang members without batting an eyelid.
<p>
<img src='/assets/img/2013-04-14/saints-row-gunfight.jpg' class='border float-left width-45' title='The gun fights still feel natural in third person' alt='The gun fights still feel natural in third person'/>
<p>
In an alternate reality, GTA&#039;s transition to 3D kept its zany irreverence, and became Saints Row: The Third. It doesn&#039;t seem quite fair to continually compare it to GTA, but GTA basically invented the genre, and there is nothing else of note which is similar. So I&#039;m afraid I have to.
<p>
SRIII is undoubtedly a GTA clone. But it&#039;s a well made GTA clone. SRIII is well produced and certainly less buggy than GTAIV. It really does, however, borrow its core gameplay, and many details, very liberally from GTA.
<p>
<img src='/assets/img/2013-04-14/saints-row-helicopter.jpg' title='SR doesn&#039;t limit you to cars.' class='border float-left width-45 clear-left' alt='SR doesn&#039;t limit you to cars.'/>
<p>
But it&#039;s not <em>just</em> a GTA clone. It adds its own story, characters, and gameplay details over the top. The world itself doesn&#039;t make an awful lot of sense, and the finer details of the story seem to be glossed over slightly, but you get the gist of it, if not the full explanation. The characters mostly have the depth of a small puddle, and all of them are fairly terrible people, but some of them are strangely likeable for the simple reason that SRIII does nothing to make you want to take it seriously. None of this is even <em>supposed</em> to be believable. And it&#039;s not.
<p>
The game plunges you into a world where you lead The Saints, a street gang which has won everyone&#039;s admiration for its general disrespect of the law and common decency. People love it when you cause mayhem. People love it when you rob banks. Even the police have a grudging admiration for you. People look at you and proclaim &quot;Look! it&#039;s a real Saint!&quot; and ask for autographs and photos. It&#039;s not meant to be taken seriously.
<p>
SRIII takes place in a city called Steelport, which is populated by a few different gangs who generally look unfavourably on people causing trouble in their territory. As well as worrying about the police, you also gain notoriety levels with other gangs for acts of crime in their area, who will send hit squads after you. This is an interesting mechanic, and one place SR deserves some praise for originality.
<p>
<img src='/assets/img/2013-04-14/saints-row-human-shield.jpg' title='Getting shot at? Grab a human shield' alt='Getting shot at? Grab a human shield'/>
<p>
The gameplay is the standard GTA pattern - you spawn in a safe-house and are then encouraged to carjack somebody, and drive around really fast, crash into things, and/or follow the story missions (which you access via a smartphone, which as an interface is not as terrible as it might sound). Unlike GTAIV, the vehicle physics behave more like bumper cars, and encourage you to cause carnage. But like GTA, carnage ensues whether you planned it or not, because the AI all change lanes apparently randomly, without checking their mirrors. This can be frustrating, but perhaps it is consistent with the difficulty of the US driving test.
<p>
Steelport offers a lot to do. As well as the obvious sandbox mayhem, the story missions, there are also a set of minigames. Professor Genki&#039;s Super Ethical Reality Climax has you participating in a reality TV program where the aim is to make it through a course without being either caught in any of the various dangerous traps, or shot by any of the various less dangerous gunmen, while a pair of commentators narrate your brilliance or lack thereof. Insurance Fraud deserves some mention for pure originality; the aim is to hurl your rag-doll into the path of oncoming traffic to rack up insurance money. For reasons entirely unclear, you seem to be largely unaffected by gravity. It is genuinely entertaining to launch your character at speeding vehicles, bouncing off them straight into others. The game rewards you for chaining up multiple &#039;accidents&#039;.<aside class='slideshow'>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-1.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-2.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-3.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-4.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-5.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-6.jpg' alt=''/>
<br>
  <img src='/assets/img/2013-04-14/wrestle/saints-row-wrestle-7.jpg' alt=''/><p>Saints Row offers no shortage of ways to kill people, and has a great animation system to back it up.
<br>
</p></aside>
<p>
After exploring Steelport for a while, you might find yourself surprised at some of the attention to detail and overall production quality. The animation is fluid and sublime, and put to far better use than GTAIV&#039;s Euphoria engine ever was by the inclusion of various game-play elements like the ability to grab a human shield, and the generous array of highly entertaining wrestling style melee attacks. The detail also shines through in the bewildingly vast wardrobe in which you can clothe your character.<aside class='float-right'>
<p>
Saints Row is:<ul><li>Fun</li><li>Stupid</li><li>Grand Theft Auto</li></ul>
<p>
Saints Row is not:<ul><li>New</li><li>Serious</li><li>Cousin, it is your cousin!</li></ul></aside>
<p>
The detail goes far beyond that, with a huge amount of upgrades you can lock via &#039;respect&#039;, which is earned by doing just about anything dangerous. Almost crash? Respect. Drive on the wrong side of the road? Respect. Handbrake turn? Respect. You earn most of it passively, just by playing the game.
<p>
SRIII provides the familiar idea of in-car radio stations, and a metal fan I was pleasantly surprised to find it featuring the likes of Amon Amarth, Strapping Young Lad, Opeth, and even Dethklok.
<p>
Overall, Saints Row sort of shoots itself in the foot a bit by not trying to engage the player more at a story/character level. Keeping everything whacky and stupid is great, but you never really feel attached to the plot or the characters, and you never get the feeling <em>wanting</em> to find out what happens next. But that&#039;s about the only major criticism I can level at it.<div class='verdict'>
<p>
Largely nonsensical, irreverent and not taking itself (or anything) seriously, Saints Row: The Third reminds us that computer games don&#039;t have to be profound to be fun.<div class='score'>4/5</div></div>]]></content:encoded>
  </item>
      <item>
    <title>Metro 2033 Review</title>
    <link>https://blog.asgaard.co.uk/2013/04/10/metro-2033-review</link>
    <pubDate>Wed, 10 Apr 13 22:16:08 +0000</pubDate>
    <guid>https://blog.asgaard.co.uk/2013/04/10/metro-2033-review</guid>
    <description><![CDATA[
<p>
<img src='/assets/img/2013-04-10/metro-2033-sunlight.jpg' class='border width-100' title='Metro may take some tips from Fallout, but it&#039;s a totally different game.' alt='Metro may take some tips from Fallout, but it&#039;s a totally different game.'/>
<p>
Nuclear post apocalyptic settings have a strange sort of magic to them. Metro 2033 firmly occupies the &#039;serious&#039; end of the spectrum, throwing away the humour of Fallout in favour of a pure gritty, depressing reality. Metro is true to this all the way through and does a good job conveying hopelessness; the colour palette ranges from light grey through to medium grey, then all the way to dark grey. Unfortunately it is hard to appreciate the stunning colours because the lighting effects range only from &#039;quite dark&#039; to &#039;very dark&#039;. The sound and voices feature a similar level of diversity; the main character, Artyom, is voiced by the only person I&#039;ve ever heard make the word &#039;monotone&#039; a generous overestimate. He happily gives his commentary during loading screens, but is fortunately mute throughout the game. Whilst I certainly appreciate authentic Russian accents instead of the cringe-inducing, completely out of place American stuff some games throw at you, the q[...]]]></description>
    <content:encoded><![CDATA[
<p>
<img src='/assets/img/2013-04-10/metro-2033-sunlight.jpg' class='border width-100' title='Metro may take some tips from Fallout, but it&#039;s a totally different game.' alt='Metro may take some tips from Fallout, but it&#039;s a totally different game.'/>
<p>
Nuclear post apocalyptic settings have a strange sort of magic to them. Metro 2033 firmly occupies the &#039;serious&#039; end of the spectrum, throwing away the humour of Fallout in favour of a pure gritty, depressing reality. Metro is true to this all the way through and does a good job conveying hopelessness; the colour palette ranges from light grey through to medium grey, then all the way to dark grey. Unfortunately it is hard to appreciate the stunning colours because the lighting effects range only from &#039;quite dark&#039; to &#039;very dark&#039;. The sound and voices feature a similar level of diversity; the main character, Artyom, is voiced by the only person I&#039;ve ever heard make the word &#039;monotone&#039; a generous overestimate. He happily gives his commentary during loading screens, but is fortunately mute throughout the game. Whilst I certainly appreciate authentic Russian accents instead of the cringe-inducing, completely out of place American stuff some games throw at you, the quality isn&#039;t really there.
<p>
<img src='/assets/img/2013-04-10/metro-2033-grey.jpg' class='width-50 float-right border' title='Your watch is just about the most colourful thing in the whole of Russia.' alt='Your watch is just about the most colourful thing in the whole of Russia.'/>
<p>
Cheap shots aside, Metro has some truly great elements. The atmosphere is uncompromisingly grim, and there&#039;s something fascinating about the stone faced Russian paramilitary types who brave its surface. The game likes to crush you with reality, and this reflects in some mechanics. Having to wear a slightly claustrophobic gas-mask while on the surface, which will become obscured by damage and condensed mist, is a nice touch. 
<p>
But Metro falls into some traps. It employs gratuitous use of cut-scenes, which is annoying in a first person shooter and makes for a poor experience in any case. This is arguably made worse by the cut-scenes often being smoothly integrated into the game-play; you&#039;re never <em>quite</em> sure whether you just did that or whether the game just did that. That&#039;s a huge usability issue. The rules change, and the game gives you no real hints where and when it will happen, or if it even did. The end result is occasionally you get yourself killed because you erroneously assumed you were part of another scripted sequence, which is especially unforgivable in a game with save checkpoints.
<p>
<img src='/assets/img/2013-04-10/metro-2033-specsavers.jpg' class='width-33 float-left border clear-both' title='Ivan could barely contain his excitement at learning a new Specsavers was opening in Moscow.' alt='Ivan could barely contain his excitement at learning a new Specsavers was opening in Moscow.'/>
<p>
The story seems superficially interesting, but you miss a lot of it because the voices often become inaudiable or muffled for various reasons, and there&#039;s no in-game &quot;WHAAAT?&quot; key. Your current tasks get transcribed to a journal of sorts, which is basically a clipboard with some bullet points on it, but good luck making sense of things from that. Especially when your gas mask is misted up. It&#039;s fortunate that Metro subscribes to the standard FPS ideology of &quot;go forth and shoot&quot; to arrive at the place you&#039;re meant to be, even if you&#039;re not quite sure why you want to be there.
<p>
And so when stupid things happen, you sort of just accept it. For me, Metro loaded new level with my weapons disabled. There was no explanation, but given my hazy understanding of events up to that point, I readily assumed it was some misguided stealth level, put on my top quality Sam Fisher goggles, my best Garret robe and set to work holding down control. For reasons entirely outside of my understanding, when I approached enemies from behind, they often dropped dead, which I was able to diagnose as being a likely result of the throwing knife lodged in them. That was lucky. Although quite who threw it was a bit of a mystery, because there&#039;s certainly nobody else here... Again, a case of the game changing the rules to suit itself with ultimately illogical scripted sequences.
<p>
<img src='/assets/img/2013-04-10/metro-2033-gasmask.jpg' class='width-50 float-right border' title='The gas-mask condensing effects are nicely done, and genuinely dangerous.' alt='The gas-mask condensing effects are nicely done, and genuinely dangerous.'/>
<p>
It turns out it isn&#039;t a stealth level, and it&#039;s crazily hard to complete with no weapons. It&#039;s a bug. And it&#039;s relatively common. The only way to fix it is to go back to an earlier save. Again, this is especially unforgivable in a game with save checkpoints. This part also reveals some strange AI behaviour, where the human AI seems to favour opening fire then running away, regardless of whether you fight back... also I&#039;m not really sure why you are shooting me anyway?
<p>
The most insightful thing I can say about Metro is that although it has a vivid and well made atmosphere with some pretty good game and shooting mechanics, it has enough annoyances that I probably won&#039;t re-load an old checkpoint so I can continue the game.
<p>
Metro is a near miss with some great ideas and a great setting, but it is nonetheless a miss.]]></content:encoded>
  </item>
      <item>
    <title>Age Of Empires 2 HD thoughts.</title>
    <link>https://blog.asgaard.co.uk/2013/04/06/age-of-empires-2-hd-thoughts</link>
    <pubDate>Sat, 06 Apr 13 22:41:32 +0000</pubDate>
    <guid>https://blog.asgaard.co.uk/2013/04/06/age-of-empires-2-hd-thoughts</guid>
    <description><![CDATA[
<p>
It&#039;s £13 on Steam. I haven&#039;t bought it. I was sceptical. There are already <a href='http://www.forgottenempires.net/'>high resolution mods</a> for AOE2, and it doesn&#039;t look like AOE2 HD adds much that these don&#039;t.
<p>
From what I&#039;ve read, I was right. It seems extortionate to re-release a 14 year old game for £13 with no substantial improvements.
<p>
Also, as much as I loved building walls around my walls and spent many, many hours doing so ... I can&#039;t help but think that Civilization has probably ruined RTSs for me as being a bit shallow.
<p>
Civ 2 + 3 (+ Alpha Centuri) HD would be more interesting.[...]]]></description>
    <content:encoded><![CDATA[
<p>
It&#039;s £13 on Steam. I haven&#039;t bought it. I was sceptical. There are already <a href='http://www.forgottenempires.net/'>high resolution mods</a> for AOE2, and it doesn&#039;t look like AOE2 HD adds much that these don&#039;t.
<p>
From what I&#039;ve read, I was right. It seems extortionate to re-release a 14 year old game for £13 with no substantial improvements.
<p>
Also, as much as I loved building walls around my walls and spent many, many hours doing so ... I can&#039;t help but think that Civilization has probably ruined RTSs for me as being a bit shallow.
<p>
Civ 2 + 3 (+ Alpha Centuri) HD would be more interesting.]]></content:encoded>
  </item>
  </channel>
</rss>