Thursday 30 October 2008

Bored by Far Cry 2

After four days, I've come to the conclusion that like many big budget releases, it wasn't quite what it was billed as .....

Nice game world, very pretty graphics, plenty of space to explore. And it definately said huge draw distance on the box ...... well, not really, apart from some parts of open savannah it's still pretty claustrophobic, battles still take place at what in reality is very short range, and dense foliage and meandering cliffs keep the visual range down.

But it is pretty, and graphics are something which have always been spurred on by the FPS genre. And the world is big and open, but with what Ubisoft give with one hand, Ubisoft take away with the other....

The plot is utterly linear, not quite the freedom of choice to work for which ever group I wanted to. The AI cheats (acceptable only when you can't tell it's doing it - a horrifying blow to game world immersion when it's so blatant). There's the slightest of excuses when you accept a mission for a faction and are then told it's secret so everyone you are working for will shoot at you.

That's just a poor excuse for not having to bother with thinking, teams, or real tactics. And then there are sequences were you are set up to be trapped and fail because the devs couldn't think of a more imaginative way to get you from section of the game to another. Again the open ended nature of the gaming environment circumnavigated to linear progression.

So, it's accept mission, blast way across country to objective area, blast objective area, blast way back through respawned enemies and checkpoints exactly as they were the first time to get to debriefing. Repeat.

And if Rambo wasn't bad enough, random encounters. I mean random encounters?! The bane of RPGs since inception. Nothing happening? Enjoying the view? Doing an impression of Attenborough and spotting the cute zebras? Random spawning truck appears and crashes into you all guns blazing.

I don't take Ritalin, I don't have a deficit in my attention, I don't fiddle with my gun if I don't move in 10 seconds. But the game does. Keep still for 10 seconds, feel free to look around with the mouse, but don't use the walk/movement keys. When lying in wait to ambush an enemy or simply enjoying the scenery your view is suddenly obscured by your character fidgeting with their firearm for no good reason. It takes literally seconds, not of inactivity, but not walking for this to happen. Back in the day when trolling meant something, games used to play animations or dialogue after several minutes of complete inactivity (i.e. Tomb Raider - "Are you still there?"), but really..... seconds?

And that is a good illustration of the mentalitly of the game. It's not the Thinking Man's FPS, it's a shallow Rambo game with pretty trees and linear, repetitive game play.

At least the dialogue was superior to most games.

"Wait for my signal, then you come in all Vin Diesel like and top the See You Next Thursday" - that made me laugh, though I've noticed that British characters get a lot more vitriolic swearing in games than other nationalities. Can't remember hearing an American accent in a game say See You Next Thursday.

At least the swearing in this doesn't seem off, unlike in say my pet hate Crysis. The hackneyed dialogue was the real crisis there, not North Koreans or an alien invasion. It seemed to have been written by a petulant teenager who had read the Big Red Book of Cliches.

Remember kids, swearing isn't big or clever, regardless of whether the desperate execs of big games publishers happen to think it's how to corner the "mature" market.
"We need to make our games seem more exciting, darker (I hate that term...), throw in the F-bomb and plenty of claret so we get the nc-17/rated18. That way the kids'll think it's really mature to play it."
Maybe they just listen in on XBL too much.....

Anyhow, four days off, so back to my own devepment.

Friday 24 October 2008

Town Planning

Up to my eyeballs in antibiotics and codine for the last two weeks courtesy of the sinus infection from beyond Hell, I've actually made a fair decent bit of progress.

Texturing, using the facades, a technique swiped from all of those old Westerns were the buildings were only wooden fronts to hide the skyline of LA as seen from the backlot of the movie studio. It's a good way to get detail without using excessive amounts of polygons, faking the little extras of reality, which is what virtual reality is anyhow.

Not real windows, normal mapped facades

So my idea of one huge BSP model with >9000 surfaces seems to have paid off. It fogs nicely, it culls well, there's no need for LODing every building because the whole thing is 1600 metres wide.

Big levels, we like biiiiiig levels

It was also a good learning exercise, it might not win any prizes for best thought out BSP geometry, but it all works, and it gives good performance. And my interior zoning works nicely.

The untexured church is actually the only seperate model here

A few (5 to be pedantic) brickwork textures with built in doors and windows add a sense of depth (thank the Great Magnet for normal and specular mapping), and the whole thing plays across 4 levels of height. So there can be plenty of running in Z aswell as the usual XY. I like hills, hills break up the monotony of being on the XY plane.

Throw in a few models and it'll look more like an environment

Still lots to sort out, think I've come up with a way to get road textures to go around corners without looking too bad (curse the straightness of BSP), roof tiles, exterior walls - and of course it's a bit barren without urban models like lamposts, mail boxes, dust bins, etc.

Trees models and wood facades help breakup the skyline

I've thrown in a few trees in the distance, just to break things up in the landscape. The furthest groups are facades, nearer ones individual models, all LODed and thrown in as a batch for performance.

I've had a quick play through as an urban shooter, and it's sure difficult to pick out snipers at 400m when all you can hear is the bullet going past. Watch for the flashes is the key. Though when I turn it into a working level (level 1! The actually beginning!) there won't be any scrapping, just story/plot events. It's called build-up. However I might use it as a basis for another play through demo of my AI.

Vista, of a type that doesn't need constant patching....

I also seems to have turned halfway to being 70, which I guess is officially middle age. I don't remember all of that time going by and demand a recount!

Monday 13 October 2008

If it's not one thing ...

.... then it's err.... more than one thing.

So exporting a road system or town enmass (or either in fairly large sections) came to a juddering halt, or more, the model format was the juddering halt.

Meshes don't fog correctly (I knew that anyhow), they fog along total model size rather than individual plane, but I wasn't too concerned about that or the lack of lightmaps (in hindsight I was probably looking to create too much work for myself). But when the far side of the bounding box hits the max visibility - *piff*paff*poof* the whole model vanishes. It's called pop-up, bane of games since 3D appeared - or in this case pop-off.

How much trouble can a square mile of town cause? Errr ... loads.

Pop-up occurs when things suddenly come into view, out in the distance. Unless you want a fairly low visible draw distance. Like fog or night, anything other than a clear day. It's all the more noticeable then, especially if your models are fairly large.

So, back to Binary Space Partition. It fogs correctly (or at least by per plane), it has lightmaps (yay, correct shadowing), per plane collision, and to be honest it's not that much of a processor load. But it is Old School (no, I'm not spelling it with a K) BSP, and it likes it's straight polygons (tweaking vertexes annoys it) and there's no bezzier meshes - which essentailly was what I was using the model mesh for (nice curves).


It's a bit temperamental --- or more the exporter is a bit temperatmental (*crash*bang*wallop* emphasis on crash). Like all things the exporter is a WIP (apart from human evolution allegedly, which I read somewhere might have stopped - that means this is as good as it gets, folks! I want a refund! And the prehensile tail back!)

But the good news is that Blender can export as an old Quake3 dotmap, so all the work done in modelling roads is not lost. A bit of tinkering to make my meshes a little more BSP friendly and then pass it on to Constructor for exporting (fingers crossed whilst it takes it time to work out lightmaps for 8000 surfaces without crashing) to a BSP format (with a reduction in scale to 34% for some reason). And it all seems to work fairly nicely.

'Ave it!

And the framerate is good. For one huge BSP it runs at well over 200+ frame per second --- with a whopping visible distance of 1000 metres. And of course it self culls when visibility is reduced, thus eliminating unseen surfaces.

With a road network sorted out, I started to add a few basic buildings to my source file in Blender. And the fps was still fine, so I worked out it'd be better to model all my static buildings (one's you can't go inside) enmass (that word again) with my road network.

Buildings that can be entered will have to sperate BSPs, slotted carefully into place in-game. This is because of portalling (culling via line-of-sight view) and the need to prevent portals from one side of the dotmap being able to see into others - thus nullifying the portals and the extra fps gain.

Whilst I'm still sorting out the town and it's buildings, I do have a 1600 metre square area accessible to the player as a single BSP. The textures are all still placeholders and are just a little difference for testing purposes. For a further quick test, I threw in 4 varities of 350 trees (with basic LODs) and found the fps was still a good 170-250 with 800 metres visibility.

Bad guy at 200m: the realistic size of the target is an explanation of why I'm such a cack shot in real life

To be honest it's the urban environments that have been causing all the problems recently. For rural environments I've already come up with a working design solution.

So, yet another problem (hopefully) solved. Finish off my town basics, then sort out a few interactive buildings, throw in some models, knock up some working textures (still umming-and-ahhing about the art style a bit), and I should have a proper environment. The just to script it into a playable level.

All this whilst suffering from the dreaded lurgy. (that's flu to most people --- and that's a common cold to women)