Skip navigation

GTA IV Diary, Day One: Off the boat

GTA IV's Niko Bellic

Niko Bellic, flawed antihero of Rockstar's controversial new game, Grand Theft Auto IV, isn't really a bad guy. Much like The Godfather's Michael Corleone, another pop culture criminal we can't help but love, he's a decent fellow driven to evil acts in order to protect his family.

I'm 150 minutes into this epic game (I'd be further, but my time with this decidedly mature interactive entertainment is constrained to the hours during which my three-year-old daughter sleeps), and already it is apparent that Niko is one of the most interesting and conflicted characters the game industry has ever spawned.

Fresh off the boat from Eastern Europe, Niko is looking to start anew in America and forget his upsetting past, which so far has only been hinted at with comments like: “Just don't tell me you've stolen this stuff from a hospital for sick kids—my conscience is troubled enough already.”

Alas, it doesn't look like he's going to find much peace in Liberty City.

He's already been forced to kill to protect his cousin, who lied to him about the ease with which success comes to American immigrants, and he's slowly but surely being drawn into higher profile crimes in order to protect the people he cares about and make good in the big city. And while I've seen little about Niko that suggests he has the stuff of an all-powerful lord of the criminal underworld, I think we all know that's where he's headed.

But at least he's managing to find time for a bit of awkward love.

I've steered Niko into a couple of nights out with a shy but good natured girl named Michelle. She kicked Niko's (my?) butt at bowling on their first date, then on the second rewarded his decision to call a cab rather than drive home drunk by inviting him into her aparment.

Nothing happened—Michelle's too smart a girl to jump into the sack with a character like Niko after just a couple of dates. However, the heartfelt chat they shared that night did earn me an Xbox Achievement, which was cleverly named “Warm Coffee” in reference to the fact that this romantic encounter was decidedly less lewd than the controversial X-rated “Hot Coffee” mod associated with Grand Theft Auto: San Andreas.

And what of the depraved, character-destroying activities that the game's critics have warned us about? I haven't witnessed anything much worse than the beating up and stabbing of bad guys. That said, I suspect that there's plenty of contentious content to be found in GTA IV's free-to-explore and stunningly lifelike world by players who go in search of it.

Indeed, I will probe the depths of the game's debauchery in a future instalment of this GTA IV diary.

However, now that my baby girl is back safely asleep in her bed, it's time for her papa to head back out onto the mean streets of Liberty City.

  1. Mark T. from Toronto, Canada writes: Picked it up at lunch yesterday... played it for a few hours last night.

    My first date with Michelle also saw my @ss kicked at pool.

    My second date, we went and played pool, and it... ahem! went further than warm coffee afterwards, back at her place.

    Interesting game; first delve into the GTA franchise.

    Regards,

    Mark
  2. James C from Toronto, Canada writes: Jeez, Chad. You need to listen to the women you are dating. Michelle said that she likes to do "active" things. Like Mike, my Nico was successful after the second date by taking Michelle out to play pool.

    I have played a number of the GTAs and I am always amazed at how long it takes me to re-learn how to drive.
  3. Brian H from Canada writes: I already have a kid with Michelle......
  4. Brian H from Canada writes: He's already been forced to kill to protect his cousin, who lied to him about the ease with which success comes to American immigrants, and he's slowly but surely being drawn into higher profile crimes in order to protect the people he cares about and make good in the big city.
    =====================================
    He graduates from murder to higher profile crimes? Like what?
  5. Mr Jolly from Next Door, Canada writes: I picked up the game yesterday and it freezes when I try and load it. I check the internet and it appears to be a huge problem across both consoles. It is unplayable for a large number of users.

    For some reason, Rockstar has made no statements. I assume they are concerned about affecting sales. The rumour is that it is a cache problem, but there is no fix in site.

    6 months late, tons of hype, and the game wasn't tested enough for release. Very disappointing.

Comments are closed

Thanks for your interest in commenting on this article, however we are no longer accepting submissions. If you would like, you may send a letter to the editor.

Report an abusive comment to our editorial staff

close

Alert us about this comment

Please let us know if this reader’s comment breaks the editor's rules and is obscene, abusive, threatening, unlawful, harassing, defamatory, profane or racially offensive by selecting the appropriate option to describe the problem.

Do not use this to complain about comments that don’t break the rules, for example those comments that you disagree with or contain spelling errors or multiple postings.

Back to Controller Freak

Controller Freak

Chad 'The Impaler' Sapieha leads you deep into the world of games, expertly guiding you through tricky levels of corporate double-speak, battling the industry's big bosses, and unlocking the latest gaming culture trends.

Blogroll

javax.servlet.ServletException: Processing template "tgamv3/v5/story/WBStory.html" with config "null"
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:231)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: GIS.Common.GICheckedException: Other exception in file: '/opt/GIS/HTML_Templates/tgamv3/v5/story/WBStory.html'  while processing select element with added parms:{}
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1511)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: GIS.Common.GICheckedException: Other exception  while processing transformation element with added parms:{cacheTime=5000, type=xsl, url=/usr/local/web_htdocs/tgamv3/v5/includes/content/blogs/blogroll-wbwgtgameblog0301.opml}
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1625)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: java.lang.ClassCastException: org.apache.xerces.dom.ElementNSImpl cannot be cast to com.caucho.xml.QElement
	at com.caucho.xsl.Generator.getXslLocal(Generator.java:2141)
	at com.caucho.xsl.Generator.generate(Generator.java:294)
	at com.caucho.xsl.AbstractStylesheetFactory.generate(AbstractStylesheetFactory.java:819)
	at com.caucho.xsl.AbstractStylesheetFactory.newTemplates(AbstractStylesheetFactory.java:437)
	at com.caucho.xsl.AbstractStylesheetFactory.newTransformer(AbstractStylesheetFactory.java:312)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:262)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:166)
	at GIS.HTMLComments.HTMLProducers.XSLProducer.generate(XSLProducer.java:85)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1615)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: java.lang.ClassCastException: org.apache.xerces.dom.ElementNSImpl cannot be cast to com.caucho.xml.QElement
	at com.caucho.xsl.Generator.getXslLocal(Generator.java:2141)
	at com.caucho.xsl.Generator.generate(Generator.java:294)
	at com.caucho.xsl.AbstractStylesheetFactory.generate(AbstractStylesheetFactory.java:819)
	at com.caucho.xsl.AbstractStylesheetFactory.newTemplates(AbstractStylesheetFactory.java:437)
	at com.caucho.xsl.AbstractStylesheetFactory.newTransformer(AbstractStylesheetFactory.java:312)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:262)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:166)
	at GIS.HTMLComments.HTMLProducers.XSLProducer.generate(XSLProducer.java:85)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1615)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)