Game Development Community

dev|Pro Game Development Curriculum

Environment Completed ... sort of

by Steve Acaster · 01/22/2009 (7:14 pm) · 10 comments

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.

img156.imageshack.us/img156/1863/env1hc9.jpgHallelujah! 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.

Performance weighs in at:
1280x768, DRL on = 100fps, DRL off = 120fps
1680x1050, DRL on 60fps, DRL off =100fps
I don't usually use my monitor's max res (1680x1050) because text is too small to read comfortably online.

Max visibility is set at 1200m, and has little impact on fps whether lowered or raised.

img156.imageshack.us/img156/7475/env2dn8.jpgJust 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.

img156.imageshack.us/img156/9426/env3fy6.jpgBig 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.

img156.imageshack.us/img156/5071/interiortest1ne9.jpgThe 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 Jonathon Rush's tutorial links (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.

img156.imageshack.us/img156/3771/signs1he6.jpgThe 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.

Walkabout Video
Available in HD - 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....

edit: had problems with YouTube vid link

#1
01/22/2009 (7:50 pm)
Awesome stuff man! You've gotta be pumped up about having a town almost complete. I'm liking the style a lot. Just need to throw in a few dozen zombies some awesome deformed animals and a few one liners and you're good to go ;)!

Keep up the awesome work buddy.
#2
01/22/2009 (8:37 pm)
Nice, I like the details. Especially the signage. It's a thing that's too often missed in some games. Small things help in big ways!
#3
01/22/2009 (8:43 pm)
You're definitely coming along real nicely Steve -- awesome work indeed!
#4
01/22/2009 (10:47 pm)
really good work man don't stop. :P
#5
01/22/2009 (10:57 pm)
Awesome work man, lots of attention to detail.

Just one question, there's no beer on tap in the Black & Amber - or do they only sell (ahem) imported bottled beer?
#6
01/23/2009 (7:11 am)
@Adrian
Yeah it could probably do with some real ale pumps, though I'm going to use it for a joke sketch about a "pub with no beer".

I used to be a bohemian artist out in Cyprus, and there was a bar whose owner spent most of his time asleep, AWOL or spaced, so it kinda ended up getting run by the customers. As his credit rating plummeted and the debts mounted the breweries refused to supply him. The customers would buy their beer at a shop, take it to the pub, put it behind the bar, and then buy their own beer back! So it became known as "The Pub With No Beer".
#7
01/23/2009 (8:48 am)
Very nice!

Would you mind sharing some of the challenges you encountered and what you did to get around them?

Also, what tools did you use for your DIF's and DTS's development.

If company secret, I understand! :-)

Thanks!
Ron Lindsey
#8
01/23/2009 (12:29 pm)
part one:
Quote:Also, what tools did you use for your DIF's and DTS's development.
If company secret, I understand!
No great secret. I'm one guy, in his bedroom, (trying to) making computer games. And for one guy, there's a hell of a lot to learn.

Tools:
Prior to joining the GG community I had never done any modeling at all, or any of the related skills like texturing, animation, etc. I use Blender and Joseph Greenawalt's DTS exporter.

Thankfully the interweb is full of tutorials, many Torque related, so I watched, copied and learnt. Eventually I learnt that it was best to get the base model done and UV textured, then LOD from that, then tweak the UVmap for the LODs. I'd begun by making all my LODs and then UVmapping them one by one, which wasn't best practise.

It was a bit of an up-hill struggle at first but once you get past Blender's strange interface it's a great little program.

I use Gimp for textures and images, it's like Photoshop but not quite as user friendly. I was going to buy CS but had a nose bleed at the $1000 price tag. Gimp can pretty much do whatever Photoshop can, especially DDS and Normal mapping (which is essential).

I use a digital camera to photograph textures for normal and spec mapping, and also use www.cgtextures.com. I tile my textures by eye though I think there are commercial programs which can do it with a couple of mouse clicks.
#9
01/23/2009 (12:30 pm)
part two
As for DIF, I've tried a few things. Initially Radiant, it's what I used to mod with years ago, but then tried building in Blender and exporting as a .map file to Constructor for texturing and export. Whilst this has worked fine, I might not use it again and do everything in COnstructor (I work faster building boxes in Blender).

I'd had a few troubles working with Constructor (link link) but it all seems to have remedied itself recently. I use map2dif_plus_TGEA for export (it's got a slight issue with brush borders but I can live with that in exchange for the amazing performance) and don't mess with worldspawn info too much (maybe alter ambient if you want). And hold down a keyboard button or jiggle your mouse when it compiles lighting (no really, I'm not joking, it speeds it up by 400%), and just keep trying regardless of crashes. If it takes 7 attempts to compile, then it takes 7 attempts. Never take a crash for an answer. But as I said, Constructor now works fine (strangely about the same time I installed VC2008 - but I can't see any logical relationship. I'd also found that tiling by "world" orientation gave a 10% boost to performance for textures that didn't need to be precisely fitted to a surface).

Also remember a DIF is basically a BSP, so read up on Binary Space Partition, and try to keep your constructions BSP friendly. I use almost only structural brushes (they light better than detail amongst other things.

Initially I had planned on DTS road network but scrapped the idea (no lightmaps, sometimes dodgy collision, bad performance when using thousands of surfaces) and went back to working with DIF. If you go way back through my blogs to August(ish) '08, you'll see how things have changed. I tried to keep things simple and use a lot of facades for my streets, and made 5 brickwork type facades textures which divided into 3 facade types (wall, wall with windows, wall with window and door). That gives 15 different wall images to use as facades and 3 different for each building type.

So, that's my tools, mostly open source. One guy, in his bedroom, doesn't have much of a budget.
#10
01/23/2009 (12:32 pm)
part three
I doubt that there is any problem that can't be overcome by doggedly tweaking and then testing the results. Trawling the forums and resources helps, there's lots of good info out there, and Torque's docs have improved a gazillion percent recently. Also trawl the wider interweb for tutorials and info.

There are plenty of other problems to overcome, I'd never tried making AI before but now find that really fascinating (flow-charts being the answer), I've still yet to re-write my basic AI scripts that I used for my first AI squad demo in TGE. I'm looking forward to getting back into that, and of course scripting gameplay, I made some awesome (blows_own_trumpet) single player levels and campaigns for the Call of Duty series.

So, yeah, before I lose myself in rant, I found that the way around problmes was the constant testing of every element involved, no matter how obscure. Just little tweaks and changes and then see how the result was differed. If you can keep an analytical mind and get into a routine (and mindset) of hunting down and solving problems without constant failure beating your morale to a pulp, you'll eventually find and answer, delay the search until you think you're better prepared, or build a work-around which on-screen/in-game gives the exact same result you wanted in the first place.

Also I reckon it helps if you have some sort of .plan - or maybe that should be .masterplan. I know what I want, I have a vague idea how to go about it, and the bits which are missing I can - as the saying goes - beg, borrow or steal (resources, forum searches, code snippets).

I have a big list of all the elements I want, have an idea of how they'll work, so it's just to implement them - slowly, and one by one.

So, yeah, what I've really been doing is an "on the job search for best practise".

More hours in the day would be nice....
;o)

Also, Notepad C++ for editing scripts.

edit: lol, that was a whole new blog...