review deus ex: human revolution

Deus Ex: Human Revolution

yep it’s another deus ex: human revolution review. so to begin with if you are a fan of the series, read on. if you like rpgs, read on. if you are after an action FPS like COD leave now – this game is not for you.

i still rate the original deus ex as my favourite game of all time. it had a brilliant story, interesting gameplay and a world that just sucked you in. so when i first heard of DE:HR i was very sceptical. at first it seemed doomed for failure with all the modern ‘gaming for dummies’ additions like regenerative health, a cover system and important object highlighting. so how did they get so much so right?

to be honest i only pre-ordered the game because i wanted the soundtrack and the artbook supplied with the augmented edition. and these are two areas the game excels. the art style is meticulously created with attention to detail thoughout the game. the game is set in 2027 so the team had to come up with a style that was futuristic but still felt not too far away from today. now i’ve never been to detroit, hengsha (shanghai) or montreal but they managed to create a fairly believable 2027 – alhough i think a bit optomistic with regard to augmentation technology. nonetheless it’s an extremely immersive world, and the sound work plays a large role. the soundtrack, although more than half the number of tracks than the original has a very nice sci-fi theme to it. the epic intro music grabs your hand and forces you to hit the play button and this is where the game begins.

you play an ex swat soldier turned private security contractor for a large biotech corporation. at first you get lead through an on-rails sequence through the labs of sarif industries, where you meet and greet several fellow employees and witness the testing of the ‘typhoon’ system – an augmentation that fires ball bearings in a 360 degree sphere around the user – which you will later be able to install in yourself (which i never did ). the lab is attacked, you are shot in the head and left for dead. you undergo surgery and 6 months later you wake up half human, half machine.

right from the getup, you learn very quickly that your actions will affect the story. you are urgently called up to the penthouse to receive details about your first mission involving a hostage situation. i took too long because i like to poke around and explore everything before i move on. when i got the mission breifing i learnt the hostages had already been killed and the mission objectives changed. there’s a lot more of these situations throughout the game.

there are also plenty of nods to the original such as being given a choice between a lethal and non-leathal weapon for the first mission. the first code you receive is also identical to the first code in deus ex: 0451. DE:HR also contains plenty of newspaper articles, ebooks and emails to read giving some great backstory to the game and adding to the immersion. there’s also quite a few storyline links with the original (including a nice one at the end of the credits).

gameplay is similar to the original, although slightly ‘augmented’. you can go in and gun everyone down, hack your way into networks and make turrets and robots your friends, act all ninja like and crawl through vents and be the pacifist and use non-lethal take downs. in-fact there is so much emphasis on playing nicely that there is even an achievement for playing through the game without killing anyone (unless you have to). this was mostly the approach i took, although sometimes i just couldn’t help but knock off the old villian like a particularily nasty drug dealer i encountered. and this is exactly where the game shines. it makes you think about the consequences of your actions and tries to get you to play in a certain style, only to then lure you into trying a different approach.

ok so to cover a few of the complaints of heard.

  1. regenerative health: yeah it’s not really necessary. the team’s excuse is that having health packs would break the flow of the game and i agree but they could have made it an augmentation like in the original which healed you over time and used up energy. this would have added a bit more strategy to some of the battles.
  2. boss battles: yep these are pretty jarring. they were by far the most challenging parts of the game for me because i basically only had non-lethal weapons and a zooped up pistol just in case. it would have been nice if they weren’t forced on the player and if it was possible to actually beat the bosses with melee attacks.
  3. third person cover system: i actually didn’t mind this too much. although i didn’t use it much either. i preferred to hide in the air vents and pick off enemies one by one. i don’t think it really adds or takes much from the gameplay.
  4. ‘augmented reality highlights’: the game has a feature that places a yellow highlight around objects you can interact with. this was originally going to a permenant feature but the internet cried and it was turned into an option. it was off by default as i chose the hardest difficulty setting to play. i did turn it on for about 10 mins and then turned it off again as i wanted to explore the world myself. but next playthrough i might just put it on. very glad the developers listened to the community and made this optional.
  5. mirrors!: indeed there are no mirrors in the game. there’s some funny stuff on the net on this! 2027 and mirrors are no more…

now for some of my own gripes.

  1. the environments are a little bit too repetative. it seems like you are either in a street or an office for 90% of the game. a bit more variation would have been welcome.
  2. vent placements are a little too common and predictable. some more thought on alternative routes would have been nice, although the wall punching augment is welcomed.
  3. more intersting augmentations. there are a bunch of augmentations that are just useless. there is no point upgrading your radar when the stock one provides sufficient information. these could have been replaced by a lock pick or a hearing enhancer for example.
  4. some melee weapons. the only way to melee attack is to press a key when close to an enemy which initiates a random scripted sequence which seems to freeze everyone around you until you knock out your target. and this costs one energy unit which means you can’t melee attack if you run out of energy. i’d think a man made half out of metal could do some pretty serious damage without using any energy.

issues aside, after completing the game i just want to jump back in and start again. this time i’ll probably play the terminator role and kill everything i see but i’ll have to wait for a new computer first. i played the game on a Dell studio one all-in-one computer which ran it on the lowest settings with a tiny bit of lag, which made the shooting a little tricky, but i still found the game extremely enjoyable.

eidos have done a remarkable effort in providing fan service for the orginal and i’d hope a good experience for new comers although i’m not a very good judge of that! if you are a fan of the original and are still holding out, don’t. go grab it.

rating for deus-ex fan: 96%
rating for non deus-ex fan: 85%

Posted in games, reviews | Leave a comment

jquery and ie9 grrrr

after an hour or so of debugging, i’ve discovered the problem was nothing to do with jquery at all…

ok so i have this site i’m building with jquery and i wanted to update a dropdown box by rewriting some html using funnily enough .html(). i was passing the data through in XML format and in ie 9 and 8 it was failing at the .each() method. just nothing. so i discovered after some searching that the problem was actually how ie parses the XML and this has actually changed with versions of ie. so here’s the solution in one nice little function:


function parseXML( xmlStr )
{
if (window.DOMParser)
{
return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
}
else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM"))
{
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
}
else
{
return xmlStr;
}
}

Posted in ie bug, jquery, xml | Leave a comment

Google+ First Impressions

soi manged to grab an invite to Google+ today and thought i’d share my thoughts. now keep in mind, i’m not very friendly with social media. in fact, i’m more likely to call it anti-social media.i’ve only just joined twitter, facebook i dumped looooong ago – just…don’t…get…me…started…on…a…facebook…rant. (however i have developed for it recently so know it quite intimately)

Google+ was pretty easy to get started with. the interface is super clean. the concept of circles is really quite good. you can share things with just a particular group of people instead of everyone you know, and then all their friends etc.

privacy is an obvious concern for Google and this has been handled from the start. it’s everywhere throughout the experience and you can tell they’ve spent considerable time making this area work. this alone will see many shift from Facebook.

speaking of shifting from Facebook, you can move all your contacts via Yahoo however i did read somewhere that Google were working on a way to migrate all your facebook data over to Google+… although that could have just been rumourz on the internets.

you can ‘+1′ things which i guess at this stage is the Google+ version of Facebook likes. I’ve noticed that if you are running the chrome browser, these ‘+1′s will appear in the Google search page next to every search result which is kinda cool.

for Android users, you get a bonus app on the Market, which besides being a mobile version of Google+, it also allows you to instantly upload all photos and videos taken on your phone to a private album you can then share with people and circles. pretty neat. speaking of photos and videos, these are all handles via Picasa so if you already use it, bang – all your media is already available for sharing. no word if an iOS version is on its way. I’d suspect they will release an iOS version when the service gets out of testing.

there’s no app support yet but i’m sure this is on the cards. likewise no advertising at this stage but they would be silly to have ads just when it’s launched.

my favorite feature at this stage is probably the ability to share content with people, even if they aren’t on Google+ or even have a Google account.you can add email addresses into your circles and then share something and it will ask if you’d like to email the people who aren’t on +. what this means is unlike on Facebook where people would organise events and invites could only be sent to Facebook friends, on Google+ you can send it out to all your friends, regardless of what network they use.

so it’s looking pretty good so far. tight control on your privacy, but very easy to access and alter as you need. the interface is waaaaaaay better than Facebook’s cluttered dorm room style. Android app is a bonus. looking forward to what comes next. hoping it doesn’t just get flooded with corporate rubbish and shit games like Facebook has – but that’s probably a year away at least. It can at least be cool for 12 months.

Posted in first impressions, social networks | 1 Comment

the world as a system

Given all the bad news these days with climate change and wars, I decided to present my view of the world from the perspective of a programmer. Programmers brains are generally wired for problem solving and i thought why can’t you apply that to world problems? Well in this short blog post I look at 4 major problems in the world simply as problems that need solutions – and it’s quite surprising how simple it seems.

1. Environmental destruction
Problem: Instead of just looking at climate change as a problem, i’ve decided on the more broad category of environmental destruction. Pollution, urbanisation, deforestation, and commercial agriculture all harm the natural environment. This is the environment that has been around for thousands of years and allowed animal life and humans to evolve to the stage we are now. Without this environment, we are finished. Simple as that.

Solution: Reduce pollution and respect the land. Just think about it. It’s not hard. Do the benefits outweigh the costs to human life? Remember there is only one planet we can live on. If we trash it, we’re finished. I mean if you use up all the memory in a computer program, somewhere along the line, it fails right? Well that will kinda happen to the world as well.

2. Poverty
Problem:
People are starving. They have little or no access to adequate health care. No running water. You’ve heard it all before. Why is this? Well it’s not because they don’t have resources. Africa, China, India, South America, Russia. They all have plenty of resources. The problem is all the resources are all being sold to the wealthy so people like you and me can live nice while the rest of the world’s population suffers.

Solution: Stop consuming crap. Reduce your consumption to necessities only and maybe limit to one luxury item a month or a quarter. If you are going to buy stuff, buy it local even if it costs more. It’s much better in the long run for all concerned.

3. War
Problem:
War is interesting because most people are opposed to it. However, governments still wage it until people have had enough. Well the cause of most wars is not ideological or religious indifference. It’s control of resources.

Solution: Again stop consuming crap. If you use less stuff, then there is more resources for the people we are taking it from.

4. Population
Problem:
We are just about to have our 7th billion person born and we are projected to reach 8 billion people by 2025. We keep growing but the planet doesn’t. It cannot continue.

Solution: Well guess what? If you solve poverty first, then this will cease being a problem. The birth rate in developed countries is a sustainable birth rate meaning that the better educated and more content a population is, the less likely they are to have large families. Eliminate poverty, then you eliminate the population problem.

 

So there you have it. Is this post going to change the world? No, no it won’t. Simple solutions will not be made to fix huge problems. So what’s the difference between a computer system and the world as a system? A computer system is built for optimal efficiency of resources whilst giving the performance required. The current world economy is built to maximise performance (profit) at the expense of efficiency because efficient use of resources would not be as profitable. Have a think about it.

Posted in general, politics, programmer | Leave a comment

those bloody mac zip files…

so this is probably really old news, but my sanity was restored this morning. have you ever received a zip file from someone that has been made on a mac? and has that zip file contained folders and folders and sub-folders and sub-sub folders? maybe you’ve downloaded some source code from a mac developer like i did. well until today i just got angry because on windows xp/vista/7, if you tried to uncompress the zip with the built in windows compression utility, it would fail at the first sub folder thanks to OSX garbage files (yes mac boys, i am aware they probably play some purpose other than pissing off windows users).

simple solution? use an archive program like 7-zip to extract the files and presto, no more crappy mac files! i dunno if winzip or winrar fix this also, let me know if they do work.

Posted in mac anger, zip | Leave a comment

flash vs html5 – my take

so steve jobs has put all his eggs in the html 5 basket and the apple fanboys have raised their hands in unison, hailing the end of flash forever. well i’ve never been one to sit on the fence, so i’ll just say, what a load of rubbish.

before you join in with the apple army, consider this: when was the last time you developed a website and had to take into account how it looked in ie 6? oh that’s right, the last site you worked on. yep, every site i’ve worked on since 2001 when ie 6 was released has had to be tested in ie 6. so how is this relevant to html 5? last time i checked, ie 6 doesn’t support html 5, oh and neither does ie 7, or ie 8 which together (as of feb 2011) have a market share of 56.05%.

so what does html 5 actually mean? well it means more work. if a client wants an html 5 site, and i’m still not sure what html 5 can do that flash cannot, then there will have to be not one backup site, but two. maybe i’m crazy but i foresee flash backup sites being created for html 5 sites, and then html 4 sites being created as another backup. well in reality, a client is going to see a flash site with html backup as cheaper and thus not be bothered with html 5 at all.

so for me it comes down to basic maths, once html 5 works on more devices, taking into account browsers, then html 5 has defeated flash, if that’s the word you like to hear. considering it’s taken 10 years to get the ie 6 share down to even 12.02%, i think it’s a loooooong way off. anyway, isn’t there room for both technologies?

Posted in flash, html 5 | 4 Comments

flash, wmode and the dreaded ie scrolling bug

finally solved!

so if you have a flash movie embedded somewhere like facebook, you want html menus to appear over the flash movie. most people have found the wmode : transparent fix. however, if your flash movie happens to use the arrow keys, this creates a nasty surprise in ie. the flash movie loses focus and so when using the arrow keys, the whole page scrolls making your flash game/movie unusable.

after a lot of web searching i almost resorted to changing the controls, then i came up with this fix. it’s a dirty, dirty hack, but it works and here it is:

1. create a hidden textfield in the document class of your flash with the correct properties like so:

private var _hiddenText:TextField;

// in constructor
_hiddenText = new TextField();
_hiddenText.type = TextFieldType.INPUT;
_hiddenText.width = 1;
_hiddenText.height = 1;
_hiddenText.alpha = 0.0;
_hiddenText.mouseEnabled = false;
addChild( _hiddenText );

2. create an event that responds to a loss of focus:

private function _textFocus( e:FocusEvent ):void
{
// check if anything has focus
if ( stage.focus )
{
// if you have other input fields, don’d update focus
if ( stage.focus.name != “_txtName” && stage.focus.name != “_txtDescription” )
{
// set focus dynamically
stage.focus = _hiddenText;
}
}
else
{
// set focus dynamically
stage.focus = _hiddenText;
}
}

3. set the focus dynamically and add the event listener:

// under addChild( _hiddenText );
_hiddenText.addEventListener( FocusEvent.FOCUS_OUT, _textFocus );
stage.focus = _hiddenText;

that’s it! remember for every input field you have, you should give it a name, and add it to the event listener, or users wont be able to type into them. hope that helps someone out there!

Posted in as3, ie bug | Leave a comment

pure as3 and fonts

so i was trying to embed fonts today in a pure AS3 app and I had two problems:

1. The embed tag embeds the WHOLE font, but I needed to conserve file space so I only wanted to embed a couple of glyphs.

2. When setting embedFonts=true the text would disappear.

After a fair bit of searching I found these great links. Firstly you can force only the glyphs you need by using unicodeRange=”U+0030-U+0039,U+0025″ (this embeds 0123456789%). check this link for more info http://blog.six4rty.ch/2010/08/21/as3-embed-specific-characters/

As for embedding, turns out the Flex compiler has 3 font managers. Changing the manger worked for me. check this link for more info. http://www.learnosity.com/techblog/index.cfm/2008/6/7/FlexAIR-embedded-fonts–Exception-during-Transcoding–Solved

Posted in as3 | Leave a comment

new site, new blog

welcome to my new blog. google stopped ftp hosting on my old blogger one so i went for a wordpress one instead. i’m heading off over the summer and will be back next year. have a beer for me!

Posted in general | 1 Comment