Latest screens from my Helicopter game...

Community Forums/Showcase/Latest screens from my Helicopter game...

Rob Farley(Posted 2005) [#1]










The terrain is now tinted by the colour of the skybox, the fog colour changes based on the colour of the part of the skybox you're facing... Likewise all lighting and ambient light is taken from the hues of the box too.

This is groovy for the following reason... if you want a night scene you just create a night skybox and the game automatically lights everything correctly. Likewise if you wanted a red mist... etc etc..

Started writing the editor and every object has a definition file, this gives tells you the basic dimensions, type of object, what happens when it dies, what happens when it gets hit by a bullet etc etc. In the editor you choose one of these objects, give it a start location, rotation, health etc etc... This means that I can add more objects without having to add them into the editor, or indeed change properties of an object type without rewriting any code.

The terrain is also automatically coloured based on what tile is laid and it's height, this allows fast creation of levels (in theory) as you don't have to colour everything yourself.

The editor also adjusts heights of things like roads so the road runs flat across with width of it, this looks good as roads get dug into the sides of hills. There's also plates which are also level. All this just makes the level building easier so you don't have to worry about tweaking heights of points.

Oh, and the heightmap is 16bit, you start off with the usual 8 bit greyscale map, but then the editor smooths it out into a 16bit heightmap for when it's flattening out stuff... and things...

That's the theory at least!


jfk EO-11110(Posted 2005) [#2]
Looks nice. I know it's hard to make a detailed world when it has to be huge. People usually make litte terrain patches that are looking real detailed, but with the heli you have reached its border in a second or two.

Nice job. I'm looking forward to read more about this.


Doggie(Posted 2005) [#3]
Hey. This sounds great. I've been doing a helo game too just to get back into programming and fine tune what I know how to do. I like your ideas on your editor.
If it has scripting of sorts and programmable(of sorts) AI then it could be awesome. Keep us posted.


QuickSilva(Posted 2005) [#4]
How about showing us a small video clip? The games comming along very nicely. I would also like to see that water that you showed in the water competition thread in motion.

Jason.


Murilo(Posted 2005) [#5]
This looks great! I'd like to see it in action too...


Ferminho(Posted 2005) [#6]
Reminds me a bit of a game I loved back in the day called Swiv 3D. Of course this one is looking *a lot* better, so I'd love to try it! keep us informed please!


puki(Posted 2005) [#7]
I think it looks like it may be fun.


Rob Farley(Posted 2005) [#8]
JFK:
The terrain is 2kmē. It is made up of 256 meshes (16x16), each mesh is 32x32 quads, each quad 4unitsē. 1 unit = 1 metre, therefore 4 * 32 * 16 = 2048 metres. Or around 2km. Not huge, but big enough. Each 4unit quad has a 256x256 texture on it which effectivly gives you a detail level of 131072 x 131072 pixels.
Then on top of that it's all vertex lit.
Surfaces and brushes are dynamically created as needed when the terrain is generated. Also the editor allows you to rotate the uvs on each 4x4 quad so this means less surfaces and brushes, for example, the road texture is just rotated rather than a different texture for each direction.

Doggie:
The editor is getting quite complex now, however, the upside of this is that it means the game becomes more generic and bolts ons are easier.

QuickSilva/Daze:
I had a go with fraps... my computer can't hack it I don't think, need to upgrade at somepoint! So I'm afraid you'll just have to wait until I release a demo.

Fermniho:
A bit like swiv... more like ZeeWolf.

Puki:
It is!

Thanks for the comments so far, I'm working on getting the editor complete so I can create a level! Everything is coming on quite well.

My new feature is parenting an object with another one, so for example you can parent a helicopter with a building and it will circle the building, or parent a jeep with a tank and it will defend the tank. It's a bit experimental at the moment with the AI but it seems to work quite well, if you destract a helicopter from it's building defence duties it will chase you up to a certain radius before returning back to the building.


QuickSilva(Posted 2005) [#9]
Rob, have you tried Camtasia studio? Its a little more resource friendly.

Jason.


Rob Farley(Posted 2005) [#10]
Here's a poor quality movie... The frame rate is all a bit screwy but you might get the idea! It's playing a touch fast!

Ended up using fraps anyway!

http://homepage.ntlworld.com/rob.farley/screens/heli/heli.mov


SoggyP(Posted 2005) [#11]
Hello.

Rob, I hope you've paid attention to the Rotor blades patent that one of the big old software houses has got. It's basically saying something like they own the rights to graphics that give the impression of speedy rotating blades.

Merry Christmas.

Jes


QuickSilva(Posted 2005) [#12]
Thanks Rob for taking the time to create a movie, now I just have to find a player that can show it... WinAmp, no WMP no hmmm....

Jason.


BlackJumper(Posted 2005) [#13]
Rob, I hope you've paid attention to the Rotor blades patent that one of the big old software houses has got. It's basically saying something like they own the rights to graphics that give the impression of speedy rotating blades


... I seriously hope you are joking on that !!!

If not - I would hope to find examples of 'prior art' in cartoon animation, etc. to counter the patent.


QuickSilva(Posted 2005) [#14]
Rob, I`ve downloaded the movie file and am trying to play it with VLC Player but all I get is a paused image of your game, like a screen shot. I don`t really want to download QuickTime player but I will if I have to. Can you confirm that it works ok at your end and what player you are using.

Jason.


Rob Farley(Posted 2005) [#15]
Works fine with quicktime here... I tried WMVs and couldn't play them my end, AVIs were huge... This is basically down to me not knowing what I'm doing however!


QuickSilva(Posted 2005) [#16]
Ok I`ll install that and give it a try.

Jason.


Ricky Smith(Posted 2005) [#17]
Works fine with QuickTime here too - very impressive - nice work on the excellent terrain generation. That is always a problem with flight-sim type games.


QuickSilva(Posted 2005) [#18]
Ok Rob, finally got it up and running and I have to say it is looking great. Can`t wait to see more. Have you considered starting a worklog? It could prove a nice read as it sounds like you have some neat stuff going on in your game.

Jason.


Rob Farley(Posted 2005) [#19]
QuickSilva, pleased you like it, as soon as I've done more work on the editor I should be able to release a single level demo.

I just got sent an email about the terrain generation and how it's done and what applications are used... So... here's the answer for everyone to see!

It's all created in blitz... Simple as that!

I start with a 513x513 grey scale height map (0-255), my editor then smooths this into a 16bit heightmap (0-65535) then it's flattened, coloured or adjusted based on the tile that is placed between the points.

There's 3 smoothing passes and 3 flattening passes, as well as a beach pass to make a severe drop when it hits water level so you don't get Z buffer fighting at the waters edge.

The editor then exports the new 16bit heightmap information as well as the tile information (including rotation of the tile).

The game then loads this data and creates multiple meshes based on this data. Creates brushes as it finds new textures and creates new surfaces per mesh as
it needs them. This works out pretty effeciant on the surface count per mesh as you rarely have more than 3 surfaces per mesh. This allows you to have a varied
tile set but still keep the surface count down if you keep the meshes far enough apart so they can't 'see' each other.

Anyway, so that's about the size of it, pretty straight forward really. No clever apps or anything, just a bit of blitzy code.


QuickSilva(Posted 2005) [#20]
Cheers, thanks for the insight :)

Jason.


Rob Farley(Posted 2005) [#21]
Object placement is in!




You can now add objects to the map! Before I just randomly placed stuff anywhere!

So each object has a definition file, looks something like this:
<mesh>Tree.b3d</mesh>
<type>static</type>
<xsize>8</xsize>
<ysize>10</ysize>
<zsize>8</zsize>
<health>10</health>
<death>fall</death>
<sway>1</sway>
<randomise>1</randomise>
The editor and game use this file, the editor uses it to make the boxes on the screen the right size for level creation. The game uses it to do pretty much everything else!

The actual level object file looks something like this:
<OBJECT><ID>1</ID><TYPE>static</TYPE><NAME>radio</NAME><X>453</X><Z>229</Z><ROT>45</ROT></OBJECT>
<OBJECT><ID>2</ID><TYPE>static</TYPE><NAME>radio</NAME><X>431</X><Z>236</Z><ROT>90</ROT></OBJECT>
<OBJECT><ID>3</ID><TYPE>vehicle</TYPE><NAME>tank</NAME><X>482</X><Z>169</Z><ROT>90</ROT><PARENT>51</PARENT></OBJECT>
etc
etc
So when an object is loaded it checks out the definition file for that object and loads the right mesh etc etc.

The object definition file can be extended as much as necessary, it already accounts for special types of death (for example trees fall over rather than blow up!).

Likewise the level objects file will include scripting for what to do when they die... or maybe this will be in the object definition... not sure yet... and example would be when a prision is destoryed it will spawn a damaged prison and a bunch of prisioners... or maybe a prisioner spawner... or something...

As you may have noticed the type is denormalised into the level object file, this is because static objects are delt with in a single function and vehicles and other things that I've not though of yet are delt with in other functions. If I read the object defintion file every time to get the type I'd have to open and close files loads, this just makes life a little simpler. Obviously once the respective function is called with the object name it will go off and read the definition file within the correct function.

As you can tell I've planned this really well and not just making stuff up as I go along!

Fascinating stuff isn't it!


Zenith(Posted 2005) [#22]
That looks cool, sorta reminds me of Hostile Waters: Antaeus Rising :)

When do we get to play!

(Btw, your carrier command remake was fun, wish you'd continue you!)


Braincell(Posted 2005) [#23]
Hey, try having some very simple low poly objets where there is lots of empty space. Such as a rock, or a wreck, or a crater. No matter how simple, as long as it breaks the monotony, it will look interesting!


Ross C(Posted 2005) [#24]
Very nice looking man. Nice engine it looks like!


QuickSilva(Posted 2005) [#25]
Can`t wait to try this, it`s one of the best looking Blitz games in a while. Any ETA on a demo? Definately one to buy.

Jason.


BlackJumper(Posted 2005) [#26]
Hmmm! I'm thinking your trees look butt-ugly. Sorry to rain on the parade, but there ya go.

You might get more milage with conifers ?


Rob Farley(Posted 2005) [#27]
Lenn: Good idea I'll do that.
Black: Totally agree, I'm messing around with tree's trying to get lots of tree for polycount, currently these are at around 50 triangles, I did have nicer looking ones but they came in at around 500... The models and textures are final tweaks though, currently... It's got trees and that's enough for the time being. Once I've got a working level then I'll start worrying about the details.

QuickSilva: No ETA yet, there's still a lot to do, I've got the nightmare task of the animation to get the prisioners into the helicopter. I've got 2 bones either side of the Heli so they can work out what side to get into. The idea is that the prisioner will align perfectly onto one of the bones at either side and then a single animation sequence will get them to climb on board... That's the plan!

The helicopter has got six seats in it (seven if you count the pilots chair... the heli has full internal detail too which is pretty cool.

On top of that there's still how to make the prisioners appear out of prisons. My idea is that when a prision is destroyed, it disappears and instantly spawns a broken prision at the exact location and rotation. It also creates a prisioner spawner. You can then blow up the broken prison if you want and this will die like any other building, the spawner for the prisioners will release a prisioner every couple of seconds so it looks like they are filing out of the building... Again... That's the plan!

I'm trying to keep the editor up to speed with the game so if I add anything in by hand I then update the editor to include it so everything remains editable, this way when the game is done there should be no arsing around... Once again... That's the plan!

Oh and scripting.... and level objectives... um... the list is pretty long... I should probably write a list actually!


Grey Alien(Posted 2005) [#28]
I am keen to play this. Do you think it might be anything like the old Desert Strike games? They were great.


big10p(Posted 2005) [#29]
Sounds like a 3D update of Choplifter. Cool.


Rob Farley(Posted 2005) [#30]
Grey: No idea, never played Desert Strike!
Big10p: No idea, never played Choplifter!

If anything it's loosly based around ZeeWolf on the miggy, but only loosly in that you're in a helicopter, you rescue people and shoot things!


big10p(Posted 2005) [#31]
If anything it's loosly based around ZeeWolf on the miggy, but only loosly in that you're in a helicopter, you rescue people and shoot things!
Not seen ZeeWolf myself, but that pretty much describes Choplifter, too. :)


Rob Farley(Posted 2005) [#32]
Then to answer your question:

>> Sounds like a 3D update of Choplifter. Cool.

Yes!


Zenith(Posted 2005) [#33]
Hey, I want to fly in a helicopter, rescue people, and shoot things; Where do I sign up?? :)