Deconstructing a city

Damzel is a game set in a city. The city itself is alive with AI-based people. But I wanted the city to have a nice aesthetic to it too. Luckily, there’s a good example in Mirrors Edge. I knew it was built with the Unreal engine, so I decided to see if there was any way to fly around it and see how they build the levels in it.

And there is!

So I thought it might be useful to fly around and describe some of the tricks they used in creating such a beautiful vista, whilst keeping the game running smoothly.

Here we go!!

First, lets take a look at the basic view you’ll see while playing the game, notice the blue-ish tones to the shadows? Those are lightmap based shadows, baked with a lightmap creator called “Beast” by a company called Illuminate Labs. Lightmaps in case you didn’t know, are textures that are multiplied with a base colour texture, they are useful for storing complex lighting and shadowing calculations. In this case Beast does a global illumination and ambient occlusion solve and stores that in the lightmap textures. It looks pretty nice I think we can all agree.

So lets take a look at the ground level (its where Damzel will take place, so I was interested in how it works in ME).

Interesting! first, the lightmaps still look pretty nice at this level. Flying around the level you notice that many of the buildings are actually poking through the ground rather than set on it. It doesn’t matter to ME because its set on the tops of the buildings, but it does look a tad weird.

Next up are the ambient objects. In this case pedestrians and cars. There is a central “highway” in this level, which has cars that run occasionally down the road. Pedestrians also walk occasionally up and down the paths. One thing to notice, is that pedestrians and cars run along prescribed paths. They literally follow straight lines, which while not realistic, makes moving them a lot easier. The pedestrians themselves are very low poly, because they only contribute a few pixels to the screen most of the time (viewed from the rooftops). An interesting aside is the police car flashing light, which is just a billboarded (facing flat to the camera) flashing sprite texture.

Fly out a bit further and we start to see things getting interesting render-wise. Most noticable, is that geometry starts getting culled. The back faces of buildings for instance start getting left out. As do the paths and roads that arent in view. I’d hazard a guess here and say it was done by hand, but it would be reasonably easy to do a PVS (potentially visibile set) calculation and simply pre-process the level to remove any non visible polygons (test each polygon for views of the play area bounding box as a first pass I would say).


Above is a view of a building in the middle ground. Notice that the building itself uses black and white textures? This is because the distance fogging (see next shot) tends to push the colour of buildings towards a pale blue as distance to them increases, so it has the effect of looking like atmospheric scattering. I’m actually thinking of using a rayleigh/mie scattering term, but maybe just pushing all colours towards light blue based on distance from camera is enough.

Here’s a shot of the fog volume, its more noticable when you reach the edge of the volume because you can see the contast between pixels in the volume and those outside of it.

The interesting thing about ME leveles is that they tend to have quite contrasting levels of detail at different parts of the level. The inner “ring” meshes are all reasonably high detail at the rooftop level near the play area. Then we have medium detail meshes for the city blocks inside the inner area but outside the play area. Then we have a sort of “no mans land” which doesnt even draw the skybox (you can see that here, where it doesnt draw the skybox/dome and you see overdraw of the inner mesh details). That is then ringed by a lower poly outer mesh set, which entails a set of randomly placed buildings and some low poly landscape heightfield meshes.


Here’s a shot of the landscape and outer meshes, where you can still see the inner mesh set. Notice the large gap betwen them? I think thats likely there to give a sense of parallax with the outer blocks. Whats interesting is that those outer buildings are literally just boxes with simple textures on. Nothing particularly fancy about that, although there is a single landmark building that has a low res environment map on it (a sort of blue environment map).


And finally, on the outer edges, we have a set of billboard “skyline” quads with an alpha edged texture of a bunch of buildings in it. Those are laid out at the edges of the low res mesh area to make sure you never see a flat edge from any viewpoint while youre running around the rooftops. They are distant enough and fogged enough that you hardly notice them, but they do break up the skyline quite nicely.

So it appears that the key to rendering a nice city scene from the mirrors edge point of view, is the inner core meshes having reasonably high poly buildings with nice global illumination based lightmaps, many of them using a single environment map as reflection over a base texture in the windows. Followed by a lower resolution set of outter buildings for parallax. Ringed by an further set of flat quads to break up the skyline, alongside a few heightfields to suggest mountains on one side and reflected water near the other for added interest.

Damzel is going to use some of these ideas, mainly the LOD “rings” and the global illumination lighting on the inner ring. I’m not sure the billboards will be needed, but it will be tried anyway. The pedestrians and ambient objects like cars will be far more important than ME, so most of the polygon budget will go towards them rather than the buildings. So in contrast to ME, most of the buildings will be quite low-ish in polygons, but hopefully some useful texturing and environment mapping will help there.

Hope this tour of Mirrors Edge environments has proved interesting, it certainly was for me looking around the world. I highly recommend buying the PC version and having a fly around it. Its a masterwork of level design if nothing else.

.Z.

Designing game user interfaces

If you ask any programmer what is the thing they least like to work on, its likely the one thing they really don’t like working on is user interface code. Luckily there are tools that can help.

The problem is that when you are a programmer, you are taught to seek function as your primary concern. If you ever look at most programmer’s efforts at designing user interfaces it generally ends up as huge banks of similar looking buttons all set in regular grids, columns or lists.

While working on Damzel, I’m aware that with this game every single part of the experience matters. Working out the design aspects of most of the gameplay I can do (I have enough analytical approaches to attack any given problem and if I’m unsure of myself I can always turn to friends for feedback) but user interface work is still something that eludes me. Luckily, Damzel’s user interface is based on LibRocket which is a great user interface middleware built using the same core techniques as HTML/CSS. So as I was searching for information on those, I noticed Ryan Burrell posting on twitter that he was looking to help some indie developers out, that he had HTML/CSS experience and UI design skills.

Our first port of call after I’d explained the game’s design to Ryan, was to get a few mockup’s sorted out. Normally, I’d approach this thing by creating something on paper, or by trying to mock it up in photoshop. Ryan used a firefox plugin called Pencil to design what the web-world knows as “wireframes”. That is, user interface mockups with rough positions and data in controls.

Here’s the wireframe for the agent setup screen as an example:

Squad/Agent setup screen wireframe

Squad/Agent setup screen wireframe

As you can probably see, the intention isn’t to create a fully working prototype, or to have any sort of detail. The idea is to quickly iterate over the rough positions, the data being displayed and to study the flow through the interface. Does it do what the player expects? Does the player know where they are in the menu and where the options take them? Does the most important part of the functionality show itself clearly, with options being clearly less important but still be obvious?

It is really hard for us as game developers to deliver what we think is a perfect design only to see users completely hate what we have produced. Either because they don’t understand it, or they can’t get it to function as they expect. That’s something that web UI developers seem to have a great handle on and something I’m hoping we can apply to the UI design of Damzel.

Damzel chapter select wireframe

Damzel chapter select wireframe

I’ve been pretty impressed with this way of working. Pencil seems like a great tool to help prototype UI’s in that it can allow menu flow, give overall structure and layout hints without getting bogged down in specific details. Plus it can help with outputting data for when it comes time to code up the interface for real.

Heads up display mockup

Heads up display mockup

The great thing about this approach, is that we can iterate really quickly. Damzel is a pretty information heavy game by modern game standards, being based on older games like Syndicate really means that we have the issue of taking the information and updating the interface to match modern UI design standards. Having the ability to experiment with different flows and layouts is a very valuable method to help us deliver on the experience. Of course the next part of this, is to get an implementation working once we are happy with the design and then do something that web developers do a lot of (yet isn’t really done a lot in game development for some reason) and that is to do a usability evaluation of the interface we’ve designed!

Until next time!
.

Why EA cut LMNO

I read with great interest the recent leaks of details about EA’s “Project LMNO” over on Rock Paper Shotgun.

Although I’d heard of the game before, as a fellow AI Game Programmers Guild member (Borut Pfiefer, who is now an indie working on Skulls of the Shogun had worked on it). It was interesting because it seemed to bear many similarities to my game Damzel.

At the core of my initial concept for Damzel lay the idea that I wanted to explore the relationship between the player and an AI character. My motivation was to try and make the player feel in some way emotionally attached to the character. I described the game as ICO meets Syndicate to myself, because ICO was one of the few games I’d seen that actually tried to make the player empathize with another character. Also, it was interesting because I loved the aesthetics of Yorda, with her frailty and innocence. The reason why I view it as a melding between this emotionally charged character partnership and what is essentially a bleak futuristic view of a dystopian future ruled by corporates is because I felt that the characters needed a driver to make them interact. Plus I was thinking about the issue of how to engage the player in a risk/reward cycle that didn’t necessarily involve direct interactions with the AI girl.

LMNO is interesting, because it seems like it was exploring this very ground. Ground that is very dear to me, both academically and from a creative viewpoint. LMNO from what little information I had heard, stood in the ground that was laid out very well by the likes of academics like Michael Matteas and the team at Carnegie Melon University, when they were working on the “OZ Project”, the papers from which you can see here. For those interested, there is a very good position statement laying out the motivations by Michael here.

Fundamentally, LMNO spoke to my desire to create “believable agents”. That is AI based characters that feel “alive”. A subject that has gotten me animated for several years now. Frankly, the believable agents idea has never really been explored commercially in the same immersive environment I’m used to. I play FPS games a lot, because I feel that I often start to lose that sense of self. I am immersed so deeply in the game that I am not the me sat in front of the computer screen anymore. I always envisioned the types of environments that could work if they were actually populated by characters that reacted to me in a lifelike manner. How much more immersive if the game world actually had some inhabitants?

Clearly, I was not alone in that idea. Sadly, the academic version of this wish is somewhat less that compelling due to the sheer lack of production budget. Which is why LMNO honestly offered a clear chance to explore that notion with the same high production values that modern games can demonstrate.

So why did EA cut it?

That is definitely an interesting question. Could it be that ultimately trying to create a truly lifelike AI is simply not feasible yet? I don’t think this is the case, because I happen to have seen some pretty convincing non humanoid performances in game AI agents. An extrapolation of the techniques used in World of Zoo by Bruce Blumberg (MIT) would seem reasonably capable of at least a cursory illusion of life.

So it seems that something else may be at play. Which got me thinking about potentially the failure being a design issue. That somehow the developers were unable to craft a gameplay experience based around the notion of two characters interacting. Certainly, I understand from my own efforts that embedding that character interaction as a core design element of the game is challenging. Indeed it could be this that ultimately made the game get cut. Somehow, it needs the character interactions to be meaningful to the player in the game world, whilst not simply turning those interactions into the equivalent of button presses or tasks the player performs by rote in order to activate the behavior of the AI. If the character interaction essentially becomes a mute version of a dialogue trigger, then nothing has been gained with the production and animation effort involved.

So I have a reasonable amount of faith that the failure was not simply a design issue.

So what do I suggest ultimately spelt the demise of LMNO?

I speculate, that ultimately the project failed, because EA is at its core a “traditional” game publisher. It understands game development enough to be able to create products. It understands production processes and management of budgets. It does not understand experimentation, failure, iteration and ultimately it doesn’t understand creative risk. I can imagine a project so risky as a game involving emotional ties between a player and an AI character was simply too different to its normal way of doing business. The fact that EA actually undertook the project is testament to the power of someone like Speilberg to attract greater than normal acceptance of risk. But ultimately when push comes to shove, EA is a business founded on making money as its main goal. If the business side cannot understand a game after two years of development, it is quite likely they will consider the risk of trying to sell a game they don’t understand too high.

Not that I blame them. The overall concept is highly speculative. It requires a leap of faith, where big business is stoically atheist.

So where does that leave the concepts behind LMNO and how does it relate to Damzel?

My own feeling, is that the only way this kind of game is going to be proven, is when an indie does it. I feel that the risks are high, but the creative rewards will be potentially higher. The closure of LMNO has at least given the public at large a chance to consider the possibilities of an empathic AI experience. The feedback on RPS and other sites seem to indicate that players are receptive to some of the concepts shown. In a way LMNO has pre-validated my own choice to work towards creating a game that truly explores the possibility that empathic behavior might bring. Of course there’s no way I can possibly spend the same amount of budget as EA on an indie game, but I don’t think it truly matters. I think players are capable of seeing past potential constraints if the overall experience is compelling enough. I believe that Damzel will ultimately prove to me that either I’m right, or I’m completely barking mad. My life savings and much of my next few years will prove the concept one way or another. Although the experience wont be as well produced as LMNO, or likely as polished, it will at least explore that design possibility space.

So, maybe this is one clear cut case where a small indie developer, with all its myriad constraints, has an advantage over the behemoth publisher. In that we can explore complex and game-changing concepts without the shackles of tradition, business opportunity or egotism.

Hopefully sometime soon we will all know if I’m right.

Getting some oversteer

This last month or so I’ve been working on squad control for Damzel. Squad control is perhaps the most important part of the game, because you spend most of your time doing it. It is important enough that it was worth spending those weeks trying out different control schemes and looking at the problem from different directions.

One aspect of the squad control is how to actually move the squad around the world in a coherent manner. Luckily this is an area that has been studied in quite some depth in the general case of multi-agent steering, so there were plenty of ideas to draw on. However there are fewer game specific cases described well enough to take anything away from them, with the exception of Chris Jurney’s article in AI Wisdom 4(?) on the squad movement he implemented in Company Of Heroes.

I dont want to get into too much technical detail here, but if you are interested, you should be looking at keywords like steering behaviors, reciprocal velocity obstacles and helbing’s social forces model. That should get you started down the rabbit hole that is crowd simulation and navigation.

The problem is that essentially, you want a squad of agents to be able to move freely around an arbitrary 3D world. A world which can have both static and dynamic obstacles, with various forms of representation. The whole area is a PhD in itself (well, actually several I’ve read so far, but I digress), but I prefer to think of things from a social moddelling perspective. There’s a paper by Helbing that described a “social forces” model for navigation.

For all intents and purposes this is what you get with Craig Reynolds steering behaviors, which is what I’ve been partially implementing. I implemented some of the steering behaviors partly because they are exceptionally simple and partly because I wanted to test some ideas out. I added a seperation force, which keeps agents apart while moving, essentially adding a force that repulses both agents inversely proportional to their distance, so the closer they come together the more they are repulsed away from each other.

Seperation isn’t enough to get agents actually moving in any sort of human like way though. In order to do that, you have to consider the issue of avoiding other agents. I implemented a reynolds-like avoidance method which you can see in this video.

YouTube Preview Image

As you can see from the video, there’s another problem at play here. In this case, I’m only ever avoiding the agent that is closest to me in terms of its time to collide with me. Ultimately this isn’t enough because when you are actually moving through a crowd, you are taking into account ALL of the crowd you are aware of, as well as considering things like the density of crowd in front of you, the social makeup of the crowd in terms of friendly, enemy or unknown, plus the usual navigation like how much you really want to go in that direction.

There’s a technique for handling many agents moving within a crowd that works quite well. This is called reciprocal velocity obstacles (RVO) and it uses some relatively easy to compute mathematics to create a known point in velocity space that you can achieve collision free movement. However RVO’s literally only deal with avoidance and don’t take into account social preferences or crowd density.

Ultimately, I’m heading towards an implementation which uses a sampled RVO approach, because using a number of samples in a pattern in front of the agent should be faster than actually calculating the ideal collision free velocity. In addition the sample approach can adapt quite well to a social forces modelling viewpoint by biasing the sample results with social information (scaling down the preference for a sample that moves us towards an enemy rather than away for instance).

Sounds like a complicated approach to take for moving agents around a world? Thats because it is a pretty complex problem. But I think the complexity is required for the game to be at all convincing.

Currently I’m trying to be pragmatic about it and get some more “game” done before I go back and finally implement the sampled RVO methods. I’m definitely pushing to get a number of weapon types implemented (when I say weapon, I include devices like the persuadertron in this). With the added weapons, the game will start to feel a lot more like a game you might want to play, with the options of weapons and subsequent behaviors opening up the design space for the game design and offering interesting avenues for the mission generator.

We’ll have to see how this next sprint goes.

Analyzing the Squad control of Brothers In Arms

Of all the things you will be doing in Damzel, the most important will be giving commands to your squad. Given the importance of that aspect of the gameplay, I have been looking at other games with a similar structure. Last week I was looking at Syndicate by Bullfrog, this week I’ve been looking at Brothers In Arms by Gearbox and Full Spectrum Warrior by Pandemic. Here I’ll talk about what I’ve learnt from Brothers In Arms specifically.

Brothers In Arms (BIA from now on) has you in control of squads of varying types throughout the three games in the series. For instance you may have a recon squad, an infantry squad and a machine gun squad. Or you might have a tank squad and a recon squad. You control the game from a first person perspective (as you do in Damzel) and can fight alongside the soldiers in the squad. This particular aspect is why I wanted to analyze BIA, because I knew from the beginning that I wanted to make Damzel a first person viewpoint game. To me, the first person viewpoint is so much more immersive. I suspect because you have no third party “character” in between you and the game world.

There are a number of great little design touches that I can see in BIA that I think are really useful. Here I’ll try and point them out with the help of a Youtube video. Have a quick watch of it now and I’ll refer to specific sections after you’ve seen it.

YouTube Preview Image

Squad Selection

So, the first thing when controlling a squad is actually selecting it. You can’t see on the video, but in order to select a squad on the PC you had to select it via its squad number key (keys 1..4 usually). I’ve added that method of selection to Damzel, but it feels a bit clunky to me. Squad selection happens often enough that I wanted a more natural interface for it. I experimented with loads of different schemes and the one I’m most happy with now is a combination of the BIA key-to-select method AND my own method which simply has you looking at a member of a squad and pressing the right mouse button down while looking at them (they get a highlight so you know youre looking at them properly).

You need the key-to-select method because you might be away from the squad you want to command. But it turns out that I’d rather you keep your squads fairly close for the most part. Interestingly in BIA as you can see in the video, you are basically dragging your squads along behind you. In Damzel it is far more likely you will send squads along in front of you as you try and secure areas. The intention being that the presence of a squad may well be enough to put off a potential threat.

Action Commands

So you’ve selected your squad, the next part is to actually give them something to do. In BIA you select the appropriate action command and you then see a cursor appear when you point at something that can allow the squad to use the command. So for instance a MOVE command you can see it at the start of the video will display a small circle on the ground to show where the squad would move. I’m a little hazy on the detail of how the action is selected, because I’ve played the various BIA games a while back, but I seem to recall it was a key-press of some sort.

Again, I’m liking the cursor idea, but I feel that having to actually select a command is a bit clunky. This is where things get a bit tricky design wise, because if you think about what you need a squad to do, there are often multiple contexts that could be done on any given object. Take the case where you are pointing at the ground with a squad selected. The most obvious case is that you want them to move to the location youre pointing at. But what if you wanted them to simply observe that area watching for threats? Clearly there’s going to have to be some method of going with a default and then allowing a keypress override.

Thats what I’m doing in Damzel. The most often used case for any given object will get the default action. So if you point at a known threat, then the squad will either move within firing range of them or will open fire if already in range. If you point at a citizen, you will default to going to investigate them, with the keypress override to allow you to open fire on them or perform other actions.

The other really interesting thing in terms of the action performance is the way that BIA actually shows you what action is going to be performed on the object you’re pointing at. If you look in the video at time 0:24 you’ll see the player give a squad an attack order. He does this by pointing at the enemy and you’ll see a cursor come up above the enemy in red showing that you will indeed command the selected squad to attack. But it gets more interesting than that, in that when you perform the command the icon grows and then shrinks back down based on the distance to the enemy.

I didn’t get this at first, but as I was looking at implementing the same kind of thing in Damzel I finally understood what that was for. The “shrink” phase is actually a great design idea, because it tells you how far away the enemy is! Its such a tiny thing, but I was struggling with my initial implementation in Damzel because I didn’t have a way of choosing the correct size for the action icon. The shrinking is really good player feedback because it gives you a solid read on the distance to the object you’re interacting with. Plus it doesn’t obscure you’re view like a fixed size icon might.

The attack cursor also has some other interesting properties, like a circle that shows how surpressed the enemy is and a section that shows the makeup of the enemy squad (I think, its either that or which squad you are attacking with, I cant recall).

While we’re on the subject of the command icons. Lets go back to the ground move cursor in BIA, did you notice that it changed the cursor depending on which squad was selected? Those little chevrons and tetris peice symbols on the cursor represent military symbols for the various squad types. This is a small thing, but a lovely little design touch, becuase it easily shows you which squad you are actually commanding.

Action Context

In Damzel you mostly have squads of agents, but you can command specialists like snipers for top cover and of course giving a ground move order for a sniper makes no sense at all. In this case, the move cursor will show you that you are actually giving a “watch this ground” order to a sniper squad, by showing the sniper symbol and changing the shape of the cursor to match the action. This context sensitive cursor arrangement will hopefully feel intuitive to players, but will no doubt need some serious tweeking. Luckily I’ll be able to test that out early next month as I’ll have access to a bunch of play testers.

The other thing you should note about the ground cursor is that it gives a little flash when you actually execute the command, plus it actually animates down in scale when you first select it. These little feedback items are really the sign of a high quality game with designers who know what they’re doing, its a lot of work to do these little touches, but it pays off in the overall feel of the game. I’m trying to be selective in what I implement because obviously I’m one guy and I’m sure BIA had a pretty hefty team of programmers, artists and designers, but I’m hoping that some of these little design touches will make it into Damzel and will add to the feeling of quality and attention to detail. Honestly it is the little detail touches that most indie games tend to lack, the better ones really do pay attention to these things and if nothing else I want to make a good showing on that front.

Ok, I’ve been rambling on long enough. I’ll post some thoughts on the design of FSW in a later post, for now I strongly urge you to get hold of the Brothers In Arms games which are available on Steam. They’re bloody good games and are the type of game that simply aren’t being made anymore because they are deemed too complicated for the console types.

Squad control update

It’s taken some time, but the squad code is now almost completely reworked. Originally I was thinking that I would use a central squad manager for all of the squad control, but in the end I didnt like that sort of implementation. Now I have a squadmanager (arranges who is in a given squad), a squad (the actual meat of the squad implementation) and a squadmember (the individual agent within the squad).

What that means, is that I can do things like add members to multiple squads, add new members to squads on-the-fly and generally allows the squad code to be a lot more focussed.

YouTube Preview Image

The other side to the squad code, is shown in the video above. Squad control is an important part of the game. I’ve been looking at the “move” control first, because its one of the most important. Here you can see some work on the cursor that controls the move. Starting off in third person (press space to enter third person with time stopped) you can select squad members, assign them to squads etc. You can also select squads (1..n) and then activate the move cursor to set where the squad is going. I’m going to try out a “facing” element to the cursor soon too. In the vid you can see me switch to first person and do the same thing. The idea of first person squad control is basically taken from Brothers In Arms, which was a really interesting game design-wise for me. I felt like it offered a nice mix of first person and squad control, but lacked some of the micro you sometimes want to do and occasionally felt a bit stunted in terms of real FPS feeling. Almost like you couldnt just blaze away, which is not a bad thing necassarily but sometimes you just want to blaze and I’m damn sure I’ll allow that in Damzel (which consequences of course).

Now that movement works ok, I’ll concentrate on adding the other commands (attack, defend, investigate etc), such that I’ll have a basic version of them all done asap, because they’ll take a lot of iteration to get right.

.

Motion capture replay

So I thought I’d post real quick about some of the animation work I did last week.

The animation on all of the characters in the game will come from a mix of hand-animation and motion capture. Motion capture being the kind of animation data you get when you literally take a recording of real humans doing particular motions.

YouTube Preview Image

There are a number of indie-affordable motion capture solutions out there now. I’ve got the optitrack one (shown in the video above) and its pretty good, but can be a pain to setup and needs a fairly big space. Luckily I can borrow one of the labs where I work so can sometimes get space to play with it. But marker based solutions (you have probably seen them, where your motion capture actor wears the blue cat-suit and the while dots) have some pretty issues unless you can spring for a very expensive setup. I’m planning to have a look at IPISoft’s video based solution, which basically takes the input of 4 video cameras that are frame synchronized and does a shape fitting algorithm on them to create a “markerless” motion capture. Still not 100% ideal, not realtime, but perhaps useful enough to be worth a try.

Of course there are plenty of places that sell motion capture. Plus a number of free resources, the largest being the Carnegie Mellon University’s motion capture database. Here’s an example of that CMU data being played back on the new box guy prototype agent.

YouTube Preview Image

There is still a bit of footskate on his playback, but thats more of an artifact than anything “wrong”. Easy to fix but kind of pointless right now.

So, at some point I’ll get round to showing off the animation blend-tree and how that works for character locomotion. Plus show off some nicer clips of social motions (waving, hugging, chatting etc). For now the main thing is to work out some more of the squad control interface, which is coming along slowly.

Modelling and animating agents

This week has been a bit of a rollercoaster with regards to Damzel. One of the biggest things in the game is that the player should be able to discern the intention of characters in the game visually. This means that players need to be able to see exactly what a character is doing from a distance. This also applies to bodyguards (lets call them agents from now on), in that agents need to be able to show a change in their behaviour through different styles of motion and gestures.

Old Box Guy

This was only a problem in so much as the original model I was testing with was from an older game prototype and as such was very limiting. As you can see, his proportions were superdeformed in order to try and give him more character. But at the expense of expressive control over his limbs and movement. Unfortunately this is very restricting for a game that requires you to understand differences in behaviour largely through motion. So I took some time to think about what needed to change.

New Box Guy

New Box Guy

So I’ve spent the week working out some art pipeline issues with a new character, working out proportions and looking at the animation workflow. The key part of it all, is that the character needs to have roughly human proportions so that I can use the motion capture data I’m going to collect. I was inspired by a music video I saw on youtube a while back, the “Polysics” video of “you you you” struck me as interesting. The human proportions of their characters made me wonder if I couldn’t try that in the game for now. So I took a shot at modelling (and by this I mean programmer modelling) a similarly proportioned character, which you can see above. Not exactly brilliant artwork I’ll admit, but his structure works and has enough range of motion to make motion capture data a possiblity at least.

Luckily there is plenty of motion capture data in the CMU Motion Capture Database for me to test with. Although the road to getting the BVH format animation files into collada and then into the engine is no small matter (using 3 applications and no small amount of testing to discern how to get them to talk together has been most of my week).

The upshot of the work, is that I now have a pretty firm grasp on the workflow, even though I’m still going to be using very placeholder artwork for now. Especially for the agents. My new “Box Guy” is more visibly human in proportion (although yes he looks like a dude from black shades before you say it!). This is a temporary thing until I feel the whole process is far enough along that its worth engaging a full-time artist to flesh out the look of the thing. Its frustrating to be using all sorts of programmer art and placeholder graphics, but the game really isn’t far enough along to require “proper” art and it would just distract me from the code to try and make it any better. Plus of course it probably wouldnt be within my power to do that anyway.

I’ll try and post a vid to the youtube channel later today with the new BoxGuy doing his thing with a clip from the CMU mocap database. Its kind of dumb, but its also pretty fun to have your characters doing rather random motions. I also borrowed some music temporarily as I put the audio library together last week and it is adding to the comedy feel to the game right now (little computer people by Athony Rother just felt so right at the time!).

Next week will be spent doing some work on squad control, specifically giving move order to squads and being able to face them in the right direction. I’ll post more about that whole issue of “how do you control squads” in more detail because its a very important part of the game.

In the meantime, thanks for following.

Less Quake, More Space Hulk

Ok, so I understand its hard to tell what the game is meant to be like right now. Nothing is really set in stone and you cant tell from a single image what Damzel is meant to be about. But let me at least describe for you what its not about. Its not about FPS style escort missions! There was always a risk when talking about using a first person view, that it would evoke the first person shooter gameplay to mind. Add on protecting someone and its pretty natural to think “escort mission”. But as I woke up this morning I realized there might be a way to explain why game will feel different than that.

I’ll use the old PC game “Space Hulk” to explain what I mean. I know many of you wont remember this game, but certainly many of you will be aware of the setting.

Space Hulk game on PC

Space Hulk PC

I use the example of Space Hulk here to explain that in the game, you are controlling squads. Ok, in Space Hulk you controlled individual marines, but in Damzel you control squads of up to five agents. Space Hulk built up a lot of atmosphere with its presentation, but I’m interested in the tension of the game here. It was no dumb blast-all-the-aliens game here. You had to carefully plan your way through the Hulk, trying to get to an exit point. You had a squad, you had weapons and individual loadouts etc. But its the tension that I’m trying to get across here.

If people go into the game thinking “first person shooter” then I’ve lost. Because it wont feel that way at all. But there’s a dilemma in that I really love the immersion that the first person viewpoint brings. I also enjoyed the Brothers in arms squad control mechanic enough to want to try and recreate it somewhat for this game. So in effect the emphasis is not on an individual so much as it is on the arrangement of squads. Hopefully gameplay videos and teasers will be able to explain this when the time comes. But it does still worry me that people dismiss the game without really understanding where its coming from. The depth that comes from the sheer number of possible configurations of squads, enemies, world and protectee (I definitely need a better word for them) is staggering. But I think thats for another post.

Hope this clears a few things up and explains the game a bit more. I highly recommend reading the peice on Rock Paper Shotgun about Space Hulk, it was one of my favourite games of that era (I still have it in a box somewhere I think).

Here is the link again

Thanks for reading.

No, this is not Black Shades

Wolfire's Black Shades

Trawling through some of the comments on the kotaku link to the Damzel page. I noticed a couple of things:

  1. People think it sounds like wolfire games Black Shades
  2. People think that escort missions suck

So to clear things up a bit. This game really isnt like Black Shades, although its pretty easy to see why you would think that. Black Shades did inspire us to go the FPS route. But the focus of the game is very different. You’ll have to wait and see. The other thing is that escort missions typically DO suck. But they suck for a very different reason than you think. The reason is very much tied to the typical FPS gameplay style. To be honest, the first person viewpoint is one area of the games design thats a bit risky. The idea is to implement a brothers-in-arms style first person view, where you control your squads. The real aim here is to make things feel immersive, whilst providing some tactical interest and strategic depth. But you could play the game entirely outside of the first person view (we’re going for a hybrid model) to control the squads in a far more Syndicate style of play.

The real issue for us design-wise is to make sure that the whole package feels right. Its also the fun of developing our own game! Suffice to say that of course there are potential risks involved with the gameplay and references to be drawn to other games, but you have to have faith that the game that comes out at the end avoids those pitfalls and is its own thing. Not much point in being and indie developer if you can’t deal with a bit of risk right?

Thanks all for the interest in the game though. It feels good to know people might give it a shot.