Thursday, 24 December 2009

Organic Modeling Redux Rehashed Rinsed and Repeated

Back to remodeling my remodeled models ... models.
And LODing, lots of LODing.
And we're not going to be rejiggering the pokery again, this is the final cut of character models.

This was what changed the last big alteration, as posted in this old blog.

But frankly there were still plenty of issues, especially with dodgy deformation around the arms, so after fluffy bunny slipper catgirl got scratch built, then tweaked for better joints, everyone else has needed a bit of a rebuild from scratch too.

Obviously the best way to do this is to have a set of standard "base" characters to act as a blueprint, one for male and one for female. With deformation going to be as good as I could get, it was time to plough on with rebuilding my base soldier model. Still sticking to the principals of keep things fairly simple, most characters are sharing the same pants and footware textures. I beefed up the body armour considerably, and so it no longer looks like a leather jerkin from Henry V. So, once more into the breach, dear friends ...

Old versus new version as seen in Blender.

Actually, I trimmed a few polys off the head, it was much too detailed under the cap, and as the cap isn't coming off there was no point in having a full head of hair underneath it. So LOD_0 weighs in at 4958 tris.

I ended up 7 LODs in total, cutting down polys and texture numbers as they go - the last one blank to make sure that the model will disappear totally at 8 pixels. I've found that without having an empty level of detail the last LOD will always display. It hadn't previously occured to me that textures should be LODed out too, but I saw someone ... somewhere ... in the forums mention that the last LOD should only have one texture to reduce draw passes.

LOD_0 - 4958 tris - 8 textures - detail 400
LOD_1 - 3732 tris - 8 textures - detail 300
LOD_2 - 1849 tris - 5 textures - detail 200
LOD_3 - 764 tris - 3 textures - detail 80
LOD_4 - 120 tris - 2 textures - detail 40
LOD_5 - 108 tris - 1 textures - detail 8
LOD_6 - 0 tris - 0 textures - detail 2

Now the reason why 4 and 5 are so similar is that skin reflects, and I found it a bit of a jump when the pale skin colour popped into view, so I made an extra LOD which was basically the same blocky, stick figure as 5, but carried the skin texture for the face, thus easing the popping of the contrasting tone of the two remaining textures.

Bent over Gimp and feverishly scrawling on my tablet, I'd also redrew the textures up to scratch a little more.

And what it looks like skinned in comparison to the old model.

Righty-ho, now I need to knock up a security guard, and then probably work on bad guys of a scary disposition.

Merry Ruddy Crimbo

Monday, 30 November 2009

Organic Modeling Redux, WM(in)Ds, Melee, Dewicious Spam

The problem with an organic approach, particularly to modeling, is that it's rather synonymous with not knowing what you were doing, but you still needed to get something out.

So, I've remodeled and animated my player models "correctly", dropped my previous "hax" after finally working out how blended files are supposed to work, sorted out the various blend animations, and done a fair bit of "rejigging" to remove various issues of bad deformation.

In short, stuff I'd done previously ... and then redone previously. And this time it's done properly ... after a whole load more reading up and experimentation to find out what the hell "properly" actually was. This ... is the organic approach to modeling. The modeling done by someone who doesn't do modeling. It deals with small pushes forwards culminating in a far off strategic victory, and thus - global domination. After all what is the point of being a tinpot dictator, if you can't be tinpot. Surely one for Philosiraptor.

Whilst this all takes a great deal of elbow grease, the results aren't particularly good in a screenshot, so you'll just have to take my word for it when I say I've been doing all of this ... and not just playing annoying PuzzleBobble Soccer flash games - which I'm now firmly on the All Time High Score list for.

But the Interwebz demands pics, or something didn't happen, so here is not so much W-M-Ds as W-Min-Ds.

Cricket bat with a split in it held together with electrical tape.

Melee ... does the engine come with melee ...

Of course it does, it comes with everything ... everything which you can make - so I did.

Classic (and I use the term in the widest possible sense) FPS melee. Animation plays (via the recoil state no less - makes sure it doesn't get blended with other blends), delayed raycast (to take into account time for the swing back) goes out 2 metres along the eye vector, damage and impulse done to anything hit exempting self and weapon.

As part of my "bring player model up to speed" efforts, I'm including player gameplay attributes - which is probably the same thing really - and that of course means weaponry. I've gone for the old school approach of allowing the player to be "tooled up to the nines" with bags of weapons ... probably 20 in all. That's 2 weapons per numerical key a la HL2. SO I wrote a little script for that, trying to do it on the cheap. It worked fine, though someone pointed out that it's not networked - and whilst MP isn't really my thing, I did want to make nice script, so redid it so it'll work in multiplayer.

Also thoughts of finalizing my AI, something which I'll do once I've completed my player gameplay attributes.

In other news ... it's cold, someone ordered Winter ... it wasn't me. Also Chinese Haxxorz? On my Box? Apparently so, though the old Mark.1eyeBall nailed the suspicious files before AV or Defender got their act together. Eventually security agreed with me that something was wrong regardless of initially saying everything was fine which it clearly wasn't, until it tried to dial out to some spamsite in China.

Disaster averted ... only for some days later my file structure to corrupt. Retrieved ... I feel some nice new HDs coming on, and not the type I've spent 3 years complaining to Dell about. And if I'm going to have to install everything from scratch again - I might as well ditch Vista for W7. We shall see. Amidst all of this fervour bent over a keyboard, lack of benchpressing has turned shoulders to jelly and the first twinge of trapped nerve has reared it's ... I don't know, nerves don't really have heads ... but if they did it would have reared it. Hot water bottle down the jumper.

Didn't I promise you good folks Spam?

Mummzy has got a book out, first in years. Published on the cheap, you have to do your own cover - cue the BA Hons PGD in Fine Arts which I don't put behind my name because they look silly. Originally she wanted some sort of terrible Conanesque 1970s fantasy boobz-and-swords cover ... I managed to talk her out of that. Haven't plugged the old tablet in for a freehand draw in aeons - it's been all texture making recently. But good practise for my ideas of comicbook cutscenes/intros/etc.

Over9000 hours in MS Paint - honest

The publishers asked for a bleed, I gave them one, then they didn't use it, making the cover slightly off centre. [/RAEG]

Spamwich available from Amazon US or UK


Righty ... next up will be completing the player methods, sorting out some more weapons and tweaking the ones I've done. I'm up to 6 types at the moment. I'm thinking along the lines of keybinds sharing 2 types of vaguely similar weapon types:
1. Melee Weapons
2. Shotguns
3. Close Range Firearms
4. Rifles
5. AssaultRifle w/ GrenadeLauncher
6. Light MGs
7. Rocket Launchers
8. Energy, laser, sci-fi rifles
9. BFGs
10. ... er ... not sure. Grenades? Or I might put them somewhere else.

The there's a little case of remodeling all the other player/AI types, I've got one romper-suited, bunny slippered, comedy player model finalized, but the others require anywhere between redux and starting. And then bad guys of a scary nature ... and then AI sorting out, and the pathfinding tweaking. And then gameplay in the first level, and guis, and some other stuff.... and eventually a demo, just to get some performance feedback. Oh, and learn Fmod I guess. And ... you know the score...


Also, Ball of Fruity 6 is out - I have not purchased. Not because of any Interwebz Picket Line over the PC user getting a beating, but because I've been busy (read the above bit ... it details this stuff).

Now - this got me thinking:
If one of the leading PC multiplayer experiences has ditched modding ... will other 3A franchises follow? It could be that ... at some time in the future ... the only way to mod, map-make or customize ... may be with an Indy game.

Sunday, 25 October 2009

Lights, Lightmaps, Levels, Lorries, Lying Down Animations

Grasping at straws for another "L" word in the title. Licensed Fraps could have been it.

Level geometry complete-ish, lit, lightmapped, populated with stuff.

Stuff has mainly been pipes, lot of brass stuff lying around on walls and ceilings, to make the corridors look a little less bare. Various signs, some helpful with directions, some for comedy. I've also repolyed my cars and trucks, so that they look somewhat better but still stay away from overt realism. And I've got some simple flashing two-tones.

It was looking a bit clean, some damage decals took care of that

I'm a great believer in dog-legs and multiple height overlays in level design, giving the player the chance to see places that they want to go, have already been, alternative routes, and places which they can't get to but adds to the ambiance, illusion of immersion.

Multilevel Crossover Madness - with the opportunity to jump/fall through damaged railings onto other catwalks

There's two seperate routes through from the start and finish of roughly equal length, various chances to crossover and swap them by jumping, falling, not looking where you're going. Both routes are a mile long and come together for a final sequence, plenty of signposting to avoid running around endlessly in circles - because being frustratingly lost is not fun.

Lightmapping has been great, and the ability of pureLight to design everything at once in Blender and then export it in position -rather than lining it all up as I had previously in the world editor - allowed me to add more stuff, like pipes to the walls without having a nervous breakdown about placement.

Feeling decidedly unfit, I embarked on a masochistic hike over the roughest part of the Yorkshire Wolds, and only just made it back alive. I did however grab some nice reference pics of the area for future use, and the abandoned medieval village with ruined church at Warram Percy. linky

Ooooh, spooky

Having worked out how the particle editor functions for a bit of smoke and fire and with my intro levels geometry pretty set, I've turned my attention back to the gameplay, player models and AI. Crouch and prone animations have been done, and the necessary changes to the code implemented to get them to work and also to get the side/back animations for swimming. Still a few things require sorting out, rebuilding of the joints to deform better, some decent arms and hands, etc.

And needless to say the weapons also need a bit of an overhaul. Not just with a few extra polys here and there but also some scripting to get them to work via magazines rather than just an ammunition pool. Save that they're fairly done though.

Choice of comedy hairbands

And to the AI. I've got some pathfinding crammed in, and it seems to work fine, regardless of the day I spent trying to destroy it by getting the wrong end of the stick. So my AI will need a bit of an overhaul too from their ancient origins back when I made my first demo in TGE some 16 months ago. No doubt this will take a bit of brain work, and it'd be useful to have a look in the code and see what controls the stances available to the AI, so that I could script a doPose(crouch); function and the like. It'd be nice to force the AI to hit the dirt when they're getting shot at, rather than constantly crawling around in a scary way as they default to the prone stance for reasons only known to themselves.

Trapdoors never have enough amusing warning signs on them

And after all of that it's scripting actual in-game play. And sort out a gui, mission progression, bits inbetween, a savegame() function, a ton of other things, and a new demo. Don't hold your breath on the last one ...

Did I mention lightmapping? And licensing FRAPS - no more 30 second vids with a watermark then.

A quick run around in Advanced Lighting as a test. 44 seconds.
Link for HD

And an abbreviated run through in Basic Lighting - no spec, no normals, just a crappy PC. 8.28 minutes.
Link for HD

And this brings me to something else - moozik. It ain't the sort of thing I can do myself, so I've been spending lots of time listening to licenseable royalty free tracks, mostly from sites that I've seen linked in blogs here. Looped twice to fit the length of my vid is "Time" by Milkman-Dan, here used with non-commercial/share/attribute license. I also noticed that he's listed on for licensing.

Tuesday, 15 September 2009

No Deer For A Month

Homer: "You got it, no deer for a month"
Marge: "Did you say beer or deer?"

No blog for a month, August passed by unblogged. So this is megablog ... or not, as the case may be. But there is stuff and quite a bit of it.

Also no Swiss Toni this time ... or ... ever ... again.

I'd made a whole load of stuff, props and the such. And then gone back and resorted my original ultra-low poly car because all my newer stuff really made the very old models look bloody awful, so I need to bring a few of the older stuff up to scratch so it doesn't look out of kilter. Whilst I was at it, I stuck a little scripted flashing blues and twos in there, so the emergency lights loop a consecutive red to blue on. For dramatic exaggeration I slapped a "corona" on to the flashes, just a few intersecting planes of translucent texture. Though it makes a rather nice effect. The models now also have glass and an interior.

New motors ... still lowpoly, with a base texture for the body until I do something more

I'd set about populating my initial huge level with various new stuff, as well as blocking in the portals and zones, and then testing various versions/sizes/numbers of zoning. I'd also thrown a huge load of triggers out, controlling simgrouped lights for each area, turning them on/off as required with the player's progression/backtracking, and this saved a great amount of fps. Not having submeshes rendering when out of view would do the same, and I know there has been some talk amongst the devs on this, but in the meantime this proved a good performance boosting workaround.

The stuff is your standard low-poly sofa, bed, piping, consoles, wardrobes, toilets, showers, etc. As well as a host of monitors, some with helpful information like directions, and some with various scripted flashing messages using hidemesh rather than ifl. Also thought a bit more about player related gameplay, and decided to go old school, so no recharging health and you'll be able to carry 20 ridiculously large BFGs. However none recharging health means medkits, and I don't really fancy have tonnes of them lying around. There are plenty of games which have a finite amount of these things, meaning if you're not doing well, you can soon run out of supplies in the game world, making completion of a dangerous task impossible due to low health.

Aidstation with clear and amusing instructions - in Advanced and Basic Lighting

So I came up with the cunning plan to have AidStations dotted about my game world. A bit like HL2 does, but with infinite reuses - only it takes them 60 seconds to recharge. Fine if you're hurt and have to run back/forwards away from the danger to get healed, but rather more tense if you're being chased by a big beastie and are trying to avoid getting hit whilst the timer ticks down to recharge. I'd had a look at how the "heal" function in stock T3D worked, and it's really more of an incremental health increase, I fancied something a bit fast and made a simple setdamagelevel call during onCollision. Run into an AidStation when wounded and get up to 60 health back, the blue button turns amber and depresses, the AidStation is unuseable for 60 seconds. Plus it's got the instructions written on it, so the player will understand what is going on in-game even though they didn't read the readme.txt manual.

So, I'd pretty much populated my initial level, when pureLight gets released, which makes sticking stuff in a whole lot easier, and also makes Basic Lighting so much nicer. Not that we were going to buy it initially, T3D was this years' major purchase, and I'd set the rest of my cash aside to pursue the great British crusade of trying to kill myself with booze. But after trying the demo - and working through Blender's exporting issues - I was pretty damn impressed.

Hence no deer for a month ... or probably longer. Having said that we haven't got off to an auspicious start and there was much deer last week due to the English soccer team qualifying for next year's World Cup.

But we have got off to an auspicious start with pureLight, which is pureWin.

Basic Lighting with toneMaps now looks just like Advanced Lighting minus spec/normals, which is pretty damn excellent. To dip my toe, I have exported the first area of my big level, filled it out in Blender, minus any dynamic objects such as flashing screens etc which aren't in the screenshots - though I have placed the occaissonal amber or blue ambient glow on the lightmaps to show where they're going.

So the key for the screenshots is Advanced Lighting as the top image with Basic Lighting underneath. I divided the scene into just a few meshes, props/ablusions (all down one end for culling), props/area1 (almost everything which isn't wall/floor), props/bedroom (key point, requires extra stuff), emissive matierals (glowing numbers), translucent double sided materials (scrolling, floating console screens), and the main area geometry (everything you walk around on).

Then I slapped in a few lights, mimicking the illumination in the lightmaps, but also in Advanced Lighting it gets teh specular and normal maps to work. And it's this extra specular effect which makes the Advanced Lighting screenies look more 3D with the normals, and also a little brighter than the Basic Lighting, which is just using the lightmaps for geometry illumination. Of course anything without a lightmap (dynamic object like the player), still get the pointlights of the game engine shining on to them to provide illumination.

The ability to export an entire scene from Blender and have it arrive in the same XYZ in T3D with lightmaps is fantastic, no more messing around trying to line things up in the editor, no more worry about an absence of shadows, and objects looking too stuck on one another. I'm hardly going for realisim, but the painterly lighting effect that pureLight gives are opposingly subtle, dramatic and artistic.

It was also nice of the guys at PL to send me a better ASE plugin for Blender. I haven't had time to see what difference the newest PL version has with the Blender's terrible attempts to manage the Collada format, but hopefully Blender2.5 will address some of these.

Monday, 27 July 2009


This is Toni. You would never think it to look at him ... but Toni has a problem.

But Toni also has a lovely Jag to compensate for his problem.

So Toni never has to worry about his tiny winkle.

I don't have a lovely Jag. To compensate for my lack of a lovely Jag, I have an enormous level.

My enormous, lovely Jag compensating level doesn't actually have any "stuff" in it yet, it's just the outer geometry. It's designed to have two main routes, routes which overlap and cut into each other, the idea being to give a variable pathway that the player can choose how to navigate from A to B. All nicely signposted at junctions to stop the whole thing from becoming one great, frustrating maze. Because being lost and walking endlessly in circles is not fun.

Whilst this environment is clearly a "corridor crawler", I've sought to vary the length and depth of the passageways, from very tight, airduct style tunnels to vast, open roadways, criss-crossed with walkways. I'm a great believer in showing the player the places where they may go later on, but also to show places which are inaccessible and whose existence is to add to the illusion that the place is flippin' huge. Which it is.

My player model (currently) moves at 8 metres per second on the flat, if you want to get really boring, I can tell you that running through the level gave an average speed of 7.69 metres per second. If you're still awake I can also tell you that it took 420 seconds for a run through one of the two routes (they're about the same give a few of seconds). 8 minutes a second is kinda fast, a bit faster than Roger Bannister averaged. But anyhow, that's around a 2 mile or 3.2km run through. Without things trying to eat me.

Next up I think I'll be making a few props, cause it is awfully bare, especially within the larger expanses. Performance is good, the model is around 300k polys, and with (hopefully) mesh culling for portaling to come, it'll get a boost as well as keeping all of the extra polys of the props and details at bay.

And after populating the whole place with "stuff", I'll redo my player/AI models a bit, as I especially need to fix the arms and sort out some varied setArm animation threads as I've discovered that previously I'd been barking (mad) up the wrong tree on the whole, arms-to-look animations. Also I reckon I can make my models appear more detailed but perform better, which does sound like a contradiction in terms but hey ...

And then it'll be back to doing outdoor environments and ... stuff.

Also HD video of geometry. There's a big, sweeping outer, vista, whole, er ... shot of it all from afar near the end. Goes on for 7 minutes so feel free to take a nap in the middle.

In other news, July nearly over? How the hell did this happen? Why wasn't I informed? And just who is reducing the hours in a day? It can be the only explanation.

At least I've got an enormous Jag.

... I mean lovely level geometry.

Tuesday, 7 July 2009

Shits and Giggles

Somebody sent me a cute dino for a pet. Daaaaaaw, it's SWEEEEET!

Just for shits and giggles

Monday, 15 June 2009

Fluffy Bunny Slippers

A mild reorganization, not so much of what I'm doing more how I'm approaching it. Priority is now a multi-level demo, polished to how the whole thing will eventaully/allededly/hopefully look and play. This can act on a number of levels.

Normals and spec, with basemap standing in for diffuse for the time being

Gametest, make sure the damn thing actually works, get feedback, extra bughunting in case I've missed anything (though I'm usually on the ball on how a player will attempt to break the game), see how it works across multiple types of box for I have only one, and state of the art it ain't.
Act as publicity, getting something out there, showing existance, get known.
Backstory. Narrative is an important element in my plan, and I don't want it to appear tact on as an after thought (think practically any major 3A big-budget release) or as some sort of shallow excuse for action and mayhem. It needs to be integrated, but not overwhelming. You can't play narrative, but you should be able to experience it as part of a unified whole, and it should complement the gameplay. Not be 5 hours of cutscene gobbledigook (I'm looking at you Hideo).

Also, fluffy bunny slippers.

I figured it was safe to increase polycount a notch and watched Jonathon Williamson's tuts on modeling a head in Blender at CGCookie. I recommend it greatly, though after watching it, I did ignore it and work my own, slightly organic way ... which brought a few extra problems but hey ... the general process was taken.

After that, more messing trying to sort out a decent body. I'vestill a few problems with deformation in various areas (like anywhere the mesh deforms ... ) but I now understand what is wrong, and if I don't I've a pretty good idea of how to fix it. Things are looking/working better.

And still no bald spacemarines ... infact, getting further away from the cliche every bunny slipper. Surely more awesome moustaches to come. Possibly twizzled.

Game characters that are recognisable, are more often than not devoid of character. Lara was huge boobs. Master Chef of Hallo was a suit of armour barking gruff orders down the spaceship's mess hall. Gordon was mute but at least he was speccy and had a facial hair. How come his specs never fell off? And just how good was his eyesight without them. Was that why he carried that damn crowbar instead of a BFG, couldn't see anything until it was right on top of him .... [/tangent_of_doom]

I had also been thinking about reflective ambient lighting --- on the cheap. Back when I was modding I used to like to put in subtle lighting effects, to catch the edges of models from opposite angles and help create depth on screen in the shadows. This was usually a cold, bluish backlight to complement warm, yellowish sunlight, but on a night level, I could go a little artier with pinks and blues and greens. It all looked rather nifty.

So I decided to do it again. I'm not aiming for realism or 12 million shades of grey/brown, so why not ...

Which was when I noticed a forum thread on the same sort of idea, but with a fancy, technological solution. But it did mention using primary colours, which I thought was a rather good idea. So I've setup a rather basic triangluar crossfire of RYB to pose as arty reflective ambient lighting.

Triangular Crossfire of Psuedo-Reflective Ambient Colours

As a foil to my previously developed plans of large, rural and urban, open areas, I've been designing a bit of claustrophobia. Tight, industrial style tunnels and interiors. Currently they are textureless, with teh basemap I used for the normals being used as diffuse, so it all looks a bit metallic and shiny. But I'll colour coordinate them to the seperate areas for variety and artiness.

T3D beta2 seemed to have a whole lot of initial issues sorted -- which is what a beta is for. It still all looks rather promising. And after a fair bit of messing, I transported the basics of my AI system over and let them have a good run about.

Roll on beta3, and can I haz more hours in a day, plox, it's flippin' nearly monsoon season, better known as Wimbledon.

Wednesday, 6 May 2009

Thmexthy Lewt

Thmexthy Lewt - as a girl once described the spoils of a WoW raid to me.

So, we now have Beta1 of new tech. And very promising it looks too. It's got shiny bits, quite a lot of shiny bits. They don't all work, which is why it's Beta1.

Chaps! My chaps, off for a bit of jog

The tools are nice, mostly realtime editing, and thus give a lot of decent close control, especially with the Materials Editor which is a real time saver. No more exiting the app to type stuff into files, only to reload it and not like it, and thus exit to tweak it all again.

It's a first port - and it works ... which is nice ...

After a fair bit of playing with the tools, I've made a superfast port of my TGEA stuff, some of it anyhow. It doesn't require too much rejigging, a few folder/destination changes in files, moving the spec map from the diffuse to the normal. The textures themselves will need a bit of a retouch to cope with the new lighting system, they're a bit dark now, but at least everything I've moved across seems to work at a base level.

Wait till you see the whites of their eyes ... or not ...

So I've had my AI running about, shooting the crap out of each other. It's always nice to know that it works. I've also fixed a couple of memory leaks I found in my base AI script.

Still got a host of textures to rejigg specmaps over to normals. After which It'll be time to stick my previously built mesh town in and see how it works.

A shiny bit.

Roll on bugs fixes and Beta2.

Wednesday, 15 April 2009

Tris versus Textures

A long time ago, in a galaxy far, far away, someone made a post on the forums or in a blog which gave the memory useage for various texture sizes. I noted that useage did not double with size, but was on a much more aggressive scale. Thus 1024x gave a lot more of a kicking to Vram than two 512x.

So, town2 version (counts on fingers) er ... 4? is done. It's a mesh model, with all of the buildings enterable. No facades this time. The 2 storey facade textures (1024x) have been ditched in favour of standard 512x brickwork textures (which the facades were previously based on and had been used around the map for low walls). All doors and windows are now modeled, and are proper openings. All buildings are now fully enterable and made up of multiple rooms. Each building has at least one staircase, large buildings have two. Access to and from upstairs is granted. Access through all buildings now exists.

Prefab houses

There are currently 6 building types being used as prefabs, with a couple of custom ones (eg: church and chapel - church is still a facade, the only one left). All have at least one front and back external door, a minumum of 8 windows and 7 rooms. All have at least one staircase.

There are 50 buildings in the village. That's 641 windows, 180 external doors, 578 rooms, with 81 staircases, all linked, all useable, all explorable. I didn't count how many internal doors there were, but obviously they are what seperate the rooms so work it out (it might even be the same number as the rooms).

Needless to say this has affected the tris slightly. Tris now stands at around 48k up from 15k. And it's also affected performance - for the better.

From all closed facades to 1399-ish openings for view and movement.

Previously, with most of my Vcard (256mb 7900GS) settings on "performance" with x2 AA and Anisotropic OFF and display on x768, I was recording 165fps with the polysouped, facade mesh.

Dispensing of the services of the 1024x facade textures, and increasing the polysouped mesh by over 500%, I get the following results.

New Vcard settings are "quality" including x2 anistropic and AA. At x768 it gives a whopping 196fps, and at x1050 it gives an equally impressive 127fps.

I did have a few issues with exporting the model. I had to split the model into 6 seperate meshes, as together they exceeded the max vertices count. But as seperate meshes within the same model they exported fine.

There's lots more opportunites to worry about being ambushed. 1399 of them.

So, point proven on Vram and texture size against tris count. This was conducted on TGEA1.7.1, 1.8.1 would probably gain more of a performance boost (maybe 10%). How this will work with new tech remains to be seen, but I'd be quietly hopeful that all will be well.

In the meantime I have a Campaign for Real Ale Festival to go to, the last refuge of Saint George Flag waving, folk singing, Morris Dancing, sandal wearing, unkempt beardies who have a deep understanding of the different forms of droppings excreted by the monstrous badger of doom.

BADGER_OF_DOOM is also the current codename for my project.

God save England, 'arry and Saint George!

Monday, 6 April 2009

It's The Economy Stoopid

Actually, it's the lightmaps. Map crashes on export? Bets are it's the lightmaps. Funny dark cuts along the edges of the brushes visible from certain angles and certain distances? Not brush borders, but lightmap borders.

Why does this all happen? Because geometry scale is 32, small scale lightmaps (like 8) cause trauma on larger brushes when calculating the lightmap. Keep brushes smaller for less lightmap calculation map crash trauma. Compressed edges of lightmaps visible? Make lightmap scale the same as geometry to dispell (though to be honest you'll probably still see a few of the little critters lurking out in the far distance if you have a long, long surface like a road). There's also an occaisonal light bleed in some interiors with this.

What the world looks like immediately after it spawns from my id

So, with that finally realised, we set out to design Map2. Map1 (aka High Wold, the pics of an urban environment in my previous blogs) was created as a large test BSP using large facade blocks as the buildings. Rather urbanized, terrace streets. Map2 was designed for more individual buildings, detached, semi-detached housing. The idea being to create a series of prefabs which I can then drop into editor/modeling program, arrange and then export en mass as a single object (BSP or mesh model).

And it all seemed to go okay like that. I did attempt a new method of creating a mesh model in Blender and then exporting it as a mapfile, but Blender's map exporter isn't up to anything particularly complicated, and the end result looked like a mangled, disjointed mess on close inspection. Blender can export mapfiles fine - if you stick to the basic rules of being BSP friendly (build it using individual blocks - think lego).

Church tower is 400m away, just out of rifle range but not sniper or lmg

So, establishing that prefabbing really is the way to go, and with a BSP version knocked up, I recreated the whole thing as a mesh model. Whilst polysoup collision (what you see is what you bang into) has been available for a while, the lack of lightmaps has meant that it just didn't cast realistic shadows onto itself or other meshes. This can look a bit odd to say the least. However, there is new tech on the horizon which may well sort this problem out, and which includes scandulous mention (it's not really scandulous, I'm just using a random adjective for teh interwebz draaama) that BSP will be more performance friendly. With Map2 copied into both BSP and Polysouped Mesh versions, it'll be interesting to what the difference is in-game using said new tech.

BSP version, roofs are NULLed

To be honest I was having so much fun building the mesh version that I imbellished it quite a bit, so it's got 7k faces instead of 5k as the BSP version. Performance-wise in current tech (TGEA1.7.1 'cos I haven't transfered all of my custom scripts over to 1.8.1 yet) the meshed polysoup wins out with an FPS of 30% higher than BSP (based on 5 locations and views at 1280x768 resolution with 1700m visibility). That's an max-average fps of BSP 125 and Polysoup 165.

Polysouped Mesh version - Spot the Difference!

Apart from the mesh lighting issue there are also a couple of other problems, such as the model vanishing when the fog/maxvis hits the centre of the bounding box (problematic with large meshes in low visibility environments - but fine with a long maxvis like I'm currently using). I'm a great believer that in making large environments as a single object is better for performance than making hundreds of individual objects and then sticking them in-world together. No matter how many surfaces it has, it is still just one object for the processor to initialize and then worry about, instead of 50. Another issue I've noticed with current tech's polysoup is that the colour/tone/intensity of the textures aren't as vibrant as they are when applied to BSP, probably because of the lack of lightmaps.

Anyhow, it'll be interesting to see what the new tech brings. Roll on Beta.

Monday, 2 March 2009

Textured Chaps

I've been busy to the extent that February passed without a single blog post. Busy sorting out a host of chaps - and not the sort of chaps exotic dancers may wear either, but manly chaps - and no, not male exotic dancers, although it does feature men in uniform.

Officer Dibble looking a lot less like a two-tone blue blob

Having never actually done anything like this before, it was all a bit of an unknown quantity - but having said that I'm new to almost every part of game design beyond BSP level design and scripting gameplay events (player hits trigger = bad guys spawn/action ensues/badgers attack)

Included in the top left of each series of images is the original, raw version of the model type, as used in my old Dubious Demo way back in April'08.

Generic Bald Space Marine Free Zone - Moustaches and Mullets - the sign of a man so manly he drinks Old Spice and sweats Brut

Being a great believer in Keep It Simple Stoopid I based as much as possible off each other to reuse things like normal maps and share the same basic blueprints. There are 4 base face types, 3 base jacket types, 5 base hat types on a single image file, everyone wears the same gloves and everyone loves denim and hiking boots.

I was also concerned with the horror of stereotype which is the crime against decency and intellect better known as the generic bald space marine that plagues 3A gaming. So everyone has hair and plenty of it, both on head and face. Everyone wears a hat. More game characters should have lush and bountiful moustaches and bad teeth.

Heroes may occaisonally get stuck in a lift armed only with a string vest, but no-one ever puts a cheap suit with a bretton cap.

That's about it on the character modelling front for the time being. There's still a bit of tweaking required when the models pose, a few animations to sort out (though I did alter/faff with some in the last month), and some other related work yet to do. But I'm planning on sorting that out at a later date as I don't want to find something else that needs fixing later on and then have to refaff with it all again. So it'll get finished in one fell swoop.

Next up is back to level design and a specific test. Now that I have pretty much all of the required textures/maps/models/assests/etc for an environment prebuilt, I need to see how fast I can "knock up" a complete level. Also, prior to this but possible at the same time, I have an idea to try on building a BSP in a slightly different manner to my first level.

Friday, 23 January 2009

Environment Completed - sort of ...

Environment about done. We've got roads, facade terraced streets, enterable buildings, trees, lights, signs, boards, parked vehicles, traffic lights, extra facades, benches, bins, train track, train station, bus station, police station, petrol/gas station, ... you get the idea.

Hallelujah! I don't have to mess about with this anymore ... much

The vast majority of textures for an urban landscape are done, as are most of the models needed to fill such an environment. They're all textured with normal and spec maps to receive lighting/shadowing information. It looks good in DRL (dynamic range lighting), has good performance with a high visibility level. And it looks good in standard lighting, has excellent performance with a high visibility level. It's a full, square-mile wide (1600m in new money), open environment.

Just like real life, your going no-where with British Public transport....

And just as importantly - (more importantly) - it has shown a methodology for making such an environment. I now know how to push things to their limit without everything return to primordial soup (oh the triumphs and tribulations of trial and error!). In effect I don't have to waste my time in a heroic but somewhat pointless struggle with the Second Law of Thermodynamics. I know what pitfalls to avoid, because I've already fallen down the bloody pit, slapped the hungry tiger, and climbed back out.

Big amber signs are the clue to use the bridge and not fry on the electrified track

And I've created my models, the little things I can now throw into a world and manipulate as needed. They pretty much cover all of the essential objects to throw into an urban or rural environment (see first paragraph). I'll still have to knock out a few extra "level/gameplay specific" models as needed, but the vast majority of "stock" models are completed. All 70+ of them.

The world's most spartan pub - at the moment

So now it's on to people - or more, back to people, as I'm re-jigging my models and (tweaking a couple of) animations. Re-jigging in this case primarily revolves around remodeling the joints for better mesh deformation via advice given to me from the guy who worked on the new TombRaider for Wii and PS2 (and good advice it was too). I've had a tinker with a couple of animations and sorted out my previous problems keeping direct alignment down a sight whilst aiming at an acute angle along the Y axis (delicate tweaks every 5-10 minutes for 9+ hours until I fixed it). A bit more modeling and a rehash of my LODs and it'll be on to base, diffuse, normal and specular texture mapping them.

The exact places where my story (yes there is one, it's supposed to be an action-adventure, and adventure needs plot) takes place may be fictitious, but they're based within a real landscape. And yes, Wetwang is a real place.

Also I need to make a few "static people", basically a character model in an unanimated pose. These aren't (just) for filling an environment currently devoid of life, but to be an event marker and allow a digi-painted, comic book style, cut-scene to be triggered (by some sort of GUI ... I guess ... but I'll come up with a solution for that later when I'm working on the gameplay mechanics on the adventure side of things, the action has already been tested). This will enable plot (and humour) to be imparted and will also sidestep dodgy voice-overs (nothing ruins immersion like bad voice-overs) or convoluted 90 minute machinima re. Mr Kojima. And it'll help reinforce the overall art style, as I will eventually get round to digi-painting the skyboxes in the same manner (as do the environment textures in general, but it does get hidden a little by the normal mapping). But for now the graphic tablet will continue to gather dust.

So, methodology learnt, skills acquired, temperamental "stuff" identified and solved or avoided or tweaked or battered into working.

Available in HD if you click the vid - then click the timeline or it'll keep showing a loading symbol every few seconds if you start up from zero. (Dang YouTube - I'll try mpeg4 instead of H264 avi next time)

And there's a couple of extra vids showing long range weapons out to 400 metres. Available in HD with the "nuance" listed above.

Right, back to modeling those knobbley knees....