in
Welcome to Lionhead Community Sign in to Windows Live ID | Help

Lionhead CTG

   

Tools at Lionhead

Published Thursday, January 10, 2008 12:05 PM by Sam Swain

Hi folks, another CTG member here.  I’m Sam (yes, another one) and I'm a senior coder on the central tools team.  I've been working on the tools side of the 'Concrete' system since I started at Lionhead over two years ago now.  Concrete hasn't been talked about in the press much at all, so hopefully we can remedy this a little via these 'blogs revealing a little more about it and what it means to Fable 2.

Concrete is a philosophy, intended to encourage re-use of code and assets.  This takes the form of both game-side and tools-side frameworks on top of which are built many modular plug-in pieces of functionality.  I've been tasked with developing the tools side of things to support the tools needed by Fable 2, a lot of these which will ultimately help increase the productivity of the content creation teams.  Fable 2 has it's own tools team as well which deals with the specific requirements generated by the game in terms of custom tools and utilities.  This includes the teams own customised editor with all the things Fable needs such as height-field editing and entity placement.  CTG (normally) just deal with the underlying functionality common to all tools based on the framework.

The Fable 2 level editor ('FablEd') is really an edit 'suite' formed from a large collection of tool plug-ins that provide all the editing facilities needed by the various disciplines (including the likes of level designers, artists, scripters, game-play coders, sound engineers, and animators).  The editor maintains a large database of all the game content and provides many ways to edit it.  This can be from standard file management and property editing functionality to far more advanced data manipulation such as height-field sculpting and animation time-line tagging.  To give you a taster and add more of a talking point, here's a picture of FablEd in action:

I'd also like to use this 'blog to talk (and discuss) a bit about tools technology and philosophy in general from time to time.  If there's any specific topics or areas of interest, let me know and I will try to include them in future posts.

Thanks for your time.

Sam

   

Comments

 

Sam said:

G o o d [Good] and informative blog entry Sam! Big Smile [:D]

And I like that image... Wink [;)]
January 10, 2008 7:36 AM
 

BayStone said:

Finally! Been waiting for this. So, thank you.  Smily [:)]

As for the FableEd... it looks pretty much as I expected. Didn't expect that much buttons, but otherwise seems to be about right.
January 10, 2008 7:43 AM
 

kevingleich91 said:

CHicken coops!!! and dog farm... hmm. i wonder if the owner farms dogs. OR maybe your dog originates there? cant wait till i get home from school so i can overanaylse it. this is like feeding a grain of rice to a bunch of starved crazy homeless people haha
January 10, 2008 8:37 AM
 

maggot said:

FablED looks pretty cool and dog farm ? Surprise [:O]

Thanks for the blog and hey republic ! Big Smile [:D]
January 10, 2008 9:06 AM
 

midnyht said:

Thanks for this, I love reading about the tools that are at work behind the scenes.  I never really considered that there was a team writing program tools from scratch in video games until the 3rd vid diary.

I am guessing nothing is concrete forever, since codes may become obselete when people think of more efficient or comprehensive ways of writing them.  Does this ever come in the way of writing new tools, relying on re-using older assets?(I dont know much about game development, so forgive me if I sound like an ***)
January 10, 2008 9:36 AM
 

sCM redruM said:

How do the textures work with the adjusted height fields?? Are the textures oversized so when the height fields reduce or enlarge they adapt cleanly, or do the artists have to constantly resize on their own to limit the space as much as possible??

Also, since we've seen that fences can break, are they in the editor as an object, because I don't see something like, "NewObjectFurnitureStaticBWFenceBroken"...

Nice blog by the way...
January 10, 2008 9:53 AM
 

Mortalitis_Infinitas said:

Very cool stuff.  Quite interesting.  Smily [:)]
January 10, 2008 9:55 AM
 

tigereyes said:

Will the read "Sam" please stand up...
...we're going to have a problem here.

No serious, that was a great post. That picture is very interesting.
January 10, 2008 10:20 AM
 

AlbionKnight said:

Is this built in C# or some other language?
Can I get a copy Laugh [:laugh:]

...

Didn't think so Sad [:(]
January 10, 2008 1:53 PM
 

marcopolom said:

lol, i see you guys have decided to remove the excessive amount of underscores from the names of your objects, they started to get to be a bit of a pain Wink [;)]

well partially atleast...
January 10, 2008 3:35 PM
 

Jontis_Pyro said:

Ywy theres going to be a lamp on a stick! now fable 2 is exactly how i dreamed it to be *flutters eyelashes* XD.... serious now, nice blog enjoyedthe read Smily [:)]
January 10, 2008 4:10 PM
 

SfK-Pyro said:

I know Jontis! Im excited about the lamps too! And they also have caves!

this is preety interesting though... and seriously, two Sams?!?! Madness!
January 10, 2008 6:20 PM
 

MJLOVER said:

Aye, great blog you got here Sam.

Very informative indeed. I hope you write more blogs in the future mate!
January 11, 2008 2:19 AM
 

ProfYaffel said:

Much better than the stuff that other "Sam" churns out...

Hee, hee...
January 11, 2008 4:47 AM
 

locater16 said:

I was wondering how you guys handled placement of art models you'd need en masse and randomised, like grass and underbrush. Is it a brush you can sweep along heightfields, is it tied to ground textures, or something else entirely?

I know, kinda stupid. But since I like modding games I have a bit of experience with the various ways this can be accomplished and was wondering what you guys did?
January 11, 2008 5:32 AM
 

lyrae16 said:

hmm. this is awesome Smily [:)] thankyou for telling us about it.
i've zoomed in on the picture and I notice you've named it something... interesting... ^^
will we see this farm/fishing hut quite early in the game, i wonder? Wink [;)]

*dances around*
keep going everyone Big Smile [:D]
xxx
January 11, 2008 12:56 PM
 

goodolfable said:

FableEd looks impressive
January 11, 2008 9:14 PM
 

Sam Swain said:

Replies to your questions:

> midnyht: "I am guessing nothing is concrete forever, since codes may become obselete when
> people think of more efficient or comprehensive ways of writing them. Does this ever come in the
> way of writing new tools, relying on re-using older assets?"

Not sure exactly what you're asking, but the games industry has by and large been very bad at re-using technology and Concrete represents our plan to start really employing re-use on a large scale.  As far as the tools go, a large part of the editor pictured above is going to be re-used on other projects which means all the person-hours gone into developing, improving, fixing, and maintaining them is automatically saved.  There are parts of the FablEd tool suite that are written to work with specific pieces of game engine technology and thus are likely to become out of date as the technology changes and moves forward.  However, this is not true in all cases because a lot is written to operate in more general terms (e.g. height-field sculpting tools can be used with other height-field technology).

> sCM redruM:  "How do the textures work with the adjusted height fields?? Are the textures
> oversized so when the height fields reduce or enlarge they adapt cleanly, or do the artists have to
> constantly resize on their own to limit the space as much as possible?? "

Are you referring to some other things you've heard about the height-field and textures as I'm not sure what you mean?  The textures are applied with a fixed world scale and are thus unaffected by height-field size.

> sCM redruM:  "...since we've seen that fences can break, are they in the editor as an object,
> because I don't see something like, "NewObjectFurnitureStaticBWFenceBroken""

The breakability is more a property or behaviour of the objects placed down.  You don't need to know that they are breakable to place them down, an object is just breakable or not.

> AlbionKnight: "Is this built in C# or some other language?"

Yes, the Concrete Tools Framework is based on .Net 2.0 and almost entirely written in C#.  Some of the game and engine systems that are integrated into the editor (e.g. the graphics engine) aren't, and have to be wrapped in a managed layer.

> AlbionKnight: "Can I get a copy"

I'm sorry to say that there are no plans to release FablEd (or indeed the Concrete Framework) to the public.

> locater16: "I was wondering how you guys handled placement of art models you'd need en masse
> and randomised, like grass and underbrush. Is it a brush you can sweep along heightfields, is it
> tied to ground textures, or something else entirely?"

It is indeed a 'brush'.  The height-field painting tools don't just paint plain textures they paint a whole slew of information via 'themes'.  Each theme can carry with it numerous attributes about the surface properties in addition to the texture(s).  The classic example of this are cues for the audio system to change the sound of footsteps as the player moves over different ground types.  As for the 'underbrush' you mention, this is (more or less) dynamically generated in the editor based on a set of theme parameters to do with things like density, size variation, occlusion, etc.  The effect is that you can just paint flower-beds, rocky patches, and even forests.

Sam
January 14, 2008 5:32 AM
 

paulecoyote said:

Very nice entry - I think only Sam entries have had pictures included with them so far! (programmer Sam and multimedia Sam) ;-)
January 14, 2008 6:52 AM
 

Greg453 said:

What would I give to just get once access to one of those high level Editors ...

... I actually plan to make one on my own with XNA, ... but this woun't be more than moving objects ...

A BRUSH TOOL!! OMG!

And why the heck are the 12 errors in this sample pic? Stick out tongue [:P]

> sCM redruM:  "How do the textures work with the adjusted height fields?? Are the textures
> oversized so when the height fields reduce or enlarge they adapt cleanly, or do the artists have to
> constantly resize on their own to limit the space as much as possible?? "

As Sam coun't help you, lat me try it.
All I know are the height maps meshes that are created (everytime the game loads it) in the content pipeline based on a black-white picture created by a designer (what ever). That means that the height map is nothing 100% fix. So the texture have to be flexible. You can imagen it like the green collor map that was painted in the last diary. Each collor would stand for one little texture bitmap (or what ever), and each texture is so drawn that if you lay the texture side to side with itself that there (sould) be no real seam between them and just flow into each other.
(in elder games and sometimes even in current, you can see the repeating patterns on the height map)
Later, when the camera ray hits the height map, it more or less checks the collor of the collor map, checks which collor stands for which texture and later just displays the endless repeating texture there.

Or short:
Ther is nothing like just one big texture over the height map, but many endless repeating.


Greg the Mad
January 21, 2008 1:42 PM
 

guitarscout said:

Can I call you Sam #2?  lol
This image looks pretty cool.  And I can't wait till this game is released.
January 24, 2008 3:23 AM
Anonymous comments are disabled

About Sam Swain

Worked on tools for several games now, including: Dogs of War, Lego Island II (GBA), Republic: The Revolution. Since joining Lionhead I've been tasked with creating a highly extensible tools framework. This is currently being used as the basis for the Fable 2 level editor.

This Blog

Post Calendar

<January 2008>
SuMoTuWeThFrSa
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

Syndication