Story Telling vs Game Playing

I just read an article by David Braben on the Develop Magazine. Kudos to the Magazine to get an industry’s veteran on board. I’m sure Braben has a lot to teach us all.

His first article is called ” What’s the Story?” which is a reference to pitch sessions when you present to your publisher what your game is going to be. In the article he approaches the current state of storytelling in games. I agree with most of what Braben said. But mainly the finishing sentence of the article. “Let’s do our best to avoid having ’story’ games or ‘gameplay’ games almost as different genres” .

Let me start by adding here a bit of evidence.

Story Telling vs Game Playing

Story Telling vs Game Playing

This picture was taken from one of the white walls in the meeting rooms of the Fable development floor, and pretty much sums up my feelings of what the current state of interactive narratives is in; A constant battle between Gameplay and Interactivity. Even in games like the Fable* series that rely heavily on story, as RPGs usually do, there is still this uncertainty about how to sew gameplay and storytelling together. Thus we end up with a patch work of voice overs, in-game “interactive” cutscenes, in-game “non-interactive cutscenes”  and FMVs. It’s an everyday effort to fit all of this together as seamlessly as possible.

Half-life, and specially Half-Life 2, made the whole “interactive cutscene” work very well, though they did have the first person paradigm on their side, which immediately places the player in the “head” of the main character, in this case Gordon Freeman who is undeniably a blank slate. It was a brilliant first stab at a truly interactive narrative albeit linear. But the industry as a whole has evolved very little since then. Fable II tried the “Gordon Freeman” approach with it’s hero, with an added layer of flexibility so the player could “paint” the character the way they wanted, and it certainly added a layer of fun to the process, but the third person does not enjoy of the same immediate identification that first person does, creating a bigger challenge when it comes to trying to create drama; specially because the player has the control of not only the camera, but the protagonist as well.

On Fable II we tried very hard to steer away of non-interactive cutscenes, but there were points where we simply had to trap the player and take his control to be able to convey some important information or a more dramatic piece of the story. We did our best to justify all those moments, but we are still left with an overall feeling that we are trying to trick the player into believing on the interactivity. There is an excellent virtual shackles comic that illustrates somewhat I am talking about, If you haven’t played Fable II and are planning to, you might want to avoid clicking the link below, as it contains a key moment of Fable II’s story: The Power of Cutscenes

The main problem I witness every day is the fact that story design and gameplay design are two processes that are incredibly disconnected, yet intrinsically interdependent. The fact that the game playing and interaction paradigms are not taken into account when the story and dialogue are written leaves us with sometimes unwieldy large sessions of story exposition, where the player has just to sit there and watch. On Fable II the decision to eliminate cutscenes and allow the player to still have control of the character and camera at virtually all times backfired a bit, because although the player had the control, there was little or nothing to do other than sit and listen, which added an extra level of frustration, and a lot of negative reaction even from people from the team, who understandably begged for the return of normal cutscenes. It’s like we waved the key to the ultimate release from cutscenes in front of the player, but never actually handed them.

Personally, the most successful interactive cutscene on Fable II, wasn’t even classed as an important interactive cutscene  and it wasn’t even done by the interactive cutscene team. The scene I’m referring to, *SPOILER ALERT*, happens after the hero is shot down by Lucien and wakes up as a child. The whole section after waking up, and leaving that dream world, plays as a very well executed interactive cutscene, you can barely distinguish gameplay moments from the story. Your sister Rose is always with you, talking with you, hinting at what to do, and once you decide to leave the dream and she screams at you not to, that, to me,  was the single most impactful dramatic sequence of Fable II. Everything connected seamlessly, there was no sitting and waiting for anything to happen in front of you, and all the narrative just happened in consequence of your actions. Genius, and yet, inexpensive.

If we want gameplay and story to go hand in hand, we need to start thinking about them not as separate pieces, but as one single entity. Much the way we accidentally did with that session of Fable II.

*Before anyone asks, I will refrain from talking about anything related to the development of Fable III, as the game isn’t out yet, but I can shed some light with some of the process we had on Fable II.

WordPress Now!

Right. This is a transitional period, so everything is blue as you see.

Blogger gave me a long run, but it’s now time to part with it since it won’t support FTP publishing anymore. So I have decided to move into a fully installed tool in my website. The tool of choice was now WordPress because it was free, and compatible with my hosting plan.

Hopefully it has enough customization possibilities so I can give it the look I want. Well Path Constraint has a long overdue makeover anyway.

Here’s to new and exciting times.

Forza!!!

Well it’s 17:13 on a Friday, I am waiting for the new version of the Editor to load, compiling the game and building assets at the same time so I can start Monday with a fresh build!

So here is something I did this yesterday morning, It took me about an hour on the Forza Vinyl Group Editor, and 112 Shapes.

Now I have a more complete version up on the Store Front, just look for Lionhead.

Lionhead

Lionhead2

Lionhead3

A long needed post about Lua

lua_logo

Lua is a scripting language created in Brazil, more specifically in the (Pontifícia Universidaded Católica do Rio, PUC-RIO).

Quoting their own website: “Lua is a powerful, fast, lightweight, embeddable scripting language.” Which is pretty accurate in my opinion, and probably in the opinion of everyone that works with it in a daily basis.

More importantly though, is that Lua is widely used as a scripting language in games. A lot of major companies use it, and a lot of well known games have published games using LUA. I worked in Fable 2 which is one of them, and I carry on working with it in Fable 3.

Two very important features of Lua in my opinion are the flexible variables, a Lua variable can take anything, integers, floats, strings, tables, enums, and their type can change on the fly so

if a == 1 then
a = ”I changed the variable to contain this string”
end

is perfectly valid.

The other one, and probably the most important feature of Lua are tables. Tables are a way of storing data, much like an Array, but a lot more powerful.

Tables are a sequence of Lua variables, so each entry of the table can contain a different type, and even other tables. And this is just amazing. After you used Lua tables you start wondering why the hell no other language has a feature like this.

I use C# for my XNA personal projects, and I was thinking about implementing a Lua style tables into it just because I miss it so much when I’m using C#.

Of course, these are just a couple of cool things about Lua, there are a ton more.

You can Download Lua here.

New Project and doh!

I should be ashamed of myself. I have gone and shelved my last project, yes the space one I was so excited about. But I did it in favour of a much simpler and feasible one and I intend going back to it at a later date.

So my new project is 2D, and is coming along nicely. The last thing I did was plugging in the Farseer Physics Engine to it.

I was thinking about writing my own physics library but then I’d be left with a complexity that I’m not really too concerned about. I took a look at the Farseer Demoes and it looks like it does pretty much I need it to do, and it has nice debug viewing library that it come in handing when trying to figure out what is going one.

I plugged in the Body and Geom in my entities, and a PhysicsSimulator, and shazam, they JustWorked™. But something was wrong, my two entities were not coliding.

After some debugging and deep thought at 8:30 in the morning, I scream DOH! (I have created a new PhysicsSimulator for each entity so they were totally unaware of each other), that’s when my wife kicked me off the room saying: “I’m trying to write here!”

She is working on her PhD thesis.

Watch our announcements LIVE

http://www.xbox.com/en-GB/e309/default.htm

Geek Chart

I just added it to the blog. It is supposed to track my geeky activity and show the world how much of a geek I am, and how much time I spend with Internet Novelties. Just signed up for stumble upon just so the chart would be complete. What a total dork.

It’s AAAliveeee!!!…. well sort of.

Yesterday evening I began to inject some life into my entities by coding the Behaviour Class that goes inside the CSimpleAI Component, my first AI component in the game, which, at least for now, is the very basic Brain of my entities. The cool thing being obviously, that not every entity has a that component.

This morning I finished coding the very basic first behaviour to make into the game. BehaviourGoToPosition, which takes an entity, a Vector in the 3D space(target_position), and a speed value. The AI component takes care of passing the parent entity that it belongs to on the the Behaviour it currently has, and the values I passed as the target_position, and speed where totally hardcoded and arbitrary… calm down there! I’m just kick starting the whole thing.

A added this behaviour to the component as the initial Behaviour and voilà!!!

The entity quickly went where it should be going! OH! The joy of creating “life”!

Progress at last

It’s bank holiday Monday so instead of slacking and playing games all day long I played a bit in the morning then had to drag myself to the front of the computer to tackle the problem I have been long stuck on.

I had no idea how to reference the parent Entity inside the components. It was pretty simple really.

All I had to do was to add a function to my IComponent interface (and implement them in the Components).

EntityBase GetParentEntity()
void SetParentEntity(Entitybase entity).

Now when I add the component that I read from the Data I have in the XML file, I also add a reference to the parent entity.

component.SetParentEntity(this)

it was very simple and it was right in front of me all along, but it took a long thread from people from work to get the idea right in my head.

Now on to implementing SimpleAI. Now we are moving into more complex stuff.

A blog by email test

A bit of my desk…

WordPress Themes