Thursday 29 April 2010

Avionics and cockpit update

Quick update. Busy working on a lot of small things. We have a cockpit update coming to update MPDs, internal and external night lighting. MPDs talking to the TStores class and working towards having a number of cockpit functions up and ready for the start-up. Dave added the CP/G throttle panel too (which removes the power switch and engine startup).

Experiencing a problem with fps slowdown over time again. Mostly down to repeatedly running combat-helo, stop, edit, re-run. FPS drops to single figures. I'm not seeing main memory leaks and it doesn't effect other games. I'm not clear what is happening, a reboot fixes it.

I wanted to see what the TEDAC would look like later so I was cheeky and borrowed a still from another game as temp background.


Monday 26 April 2010

Dave experiments with pit lighting

The art-gnome at Combat-Helo has been playing with bloom and glow shader materials for the cockpit and came up with instrument night lighting. I thought it was a cool use of extra texture stages and materials with Leadwerks engine, it's an easy effect to add. With additional green point lights around the pit it should look pretty close to the real deal.




Here's a real shot with night lighting. Panel back-lighting and small point lights.

WEP page (advanced)

This is OpenGL, vector based rendered to an offscreen buffer, now with added mipmaps. I'll try and detail the functions of these pages and sub-modes as I go and allow you to submit corrections early on.

The WEP (weapons) MFD page

Pictured below shoing the gun sub-mode. Main feature is the bust limit selector on the left side indicating the number of rounds fired when the pilot commands. The bottom MFD buttons marked GUN, MSL and RKT will switch the weapons and display rounds and options. Stores and gun rounds to add to the display. Will complete tomorrow. The only other notable feature is the ACQ option (R6) to switch the gun aiming between fixed and TADS.

The buttons marked with and arrow above (see top row) are for navigating to different pages. The bottom right button indicates the current page (WEP boxed). Next to that the selected sub mode (GUN boxed).

Sunday 25 April 2010

SimHQ Dev Diary update

AD has been finishing more of the villages and green zones around the region. You can read more about it here...

SimHQ Dev Diary update

This is "Dara" in the Northern region (See map below)

Saturday 24 April 2010

Third Person Cam - don't laugh

I'm in the process of adding the weapon systems; avionics and links to the stores. While that's coming along at a steady pace I often come across a bit of code and think "I could quickly do this..."

So I quickly added the third-person cam; as we don't yet have any character models I'm having to use this laughable code generated  place-holder. Who was it painted matchstick men?

Character height is 1.8m. The shape approximates the size of the character controller. Had to add a little work-around to the GUI menu system which also uses the mouse-wheel for menu navigation.

We're going to require a rigged humanoid with a number of animations for sitting, prone, kneeling, aiming, running, walking, waving etc. We have a list on animations somewhere, I'll try and dig it out. There are some nice models available for around $120 that are of the correct dress and close the the desired poly count. Speaking of models...

This is "Marshall" from BBi collectibles range (now discontinued). He's a great model, but the wrong sort :)

I wish my Action Man (GI Joe) was more like this guy. I'm kicking myself for not buying one of these when I saw it on sale at Travelling Man in Leeds years ago, they are now rare and hard to find items.

But I do have an original Tom Baker Doctor Who (with hat and scarf - no box though). I only saw one other and that was on the desk of the lead artist at Microprose Leeds (formerly Vector Graphix) and now home of Rockstar North I think. I digress.

Friday 23 April 2010

Weapons, pylons and stores

Spent the day working on the Helicopter entity and the sub-classes that handle all the pylons and stores. It's worth spending time automating these things as much as possible now to simply things later.

I broke out UMLet, a nice fast Java based UML editor to look at my structure. What's missing is the store-jett which needs to be a function of [TStore], pass it the pylon number and it will be required to generate the physics object, parent the rail/pod/fuel cell, detach it from the pylon and let Newton take over, thus letting the pod/rail complete with ordnance fall to earth.

And by moving the [SelectedZone] property to the [Pylon] from the [Avionics] class, it allows for the ground-crew loading system to simply add rockets and let the [Pylon] advance the zone so all 3 zones are populated in three clicks. That way it's not dependent on a playing crewing the Helicopter (as [Avionics] are only instantiated when you board a vehicle and destroyed on exit).

This is all part of the process of adding the WEP MFD page which needs access to stores data and it gets it from the [Stores] class, which can be thought of as a black box into which each pylon (4 of them) send signals about what is loaded where. And how to re-load of course.

I'm torn about creating the whole WEP page graphic as a vector, I'd rather do that as textures scaled up can look a bit blurry. Cockpit builders might want a stand alone OpenGL client that doesn't require the 3D engine for displays so going native OpenGL makes adding it a cut and paste job.

Wednesday 21 April 2010

Not much practical work done today

Lot of time deep in emails answering queries and looking at Mac platform development.

Tuesday 20 April 2010

XML Database lookups

I needed to add some on-the-fly lookups for data stored in XML databases without having them gobbling up memory. Most games of this type had a vehicle and weapon database, usually with a rotating 3D model or picture of the object. Using the TxmlTextReader function with a cache works fine. Only need to do the lookup once when examining an object.

All weapons come with suitable entries by entering the ground crew mode from proximity to any Apache helicopter. We can re-use this for tutorial pop-ups, optionally adding a tag to the XML entry that points to an audio file thus triggering  playback. If that makes any sense.

I mention it here as it just occurred to me and don't want to forget it.

Sunday 18 April 2010

Volcanic ash, no flights and weekend progress

It's been a blissfully quiet weekend.

The Combat-Helo configuration files are now in an easier to use XML format and I added a lot of extra options too. Player profile name, host IP, graphics filters etc. Fullscreen and Windowed modes having their own settings.

Also experimented with light scattering, we'll be adding per time-of-day lighting and retiring the old LB2 style skybox. That's not a priority item just something that's nice to toy as a little break.

Arming system which should have been completed already (lots of interruptions this week) has had some GUI elements added to it to improve feedback, just have to write the descriptions for all the ammo. The Apache is receiving the arming messages fine but not visibly showing the loaded rounds. On the whole, not too happy with all the GUI as it is. I made something that was easy to fit to multiple resolutions but it could use a little polish.


I ran another test with the Autopatcher and it's still a bust. The file it's wanting is created server-side but the client patcher can't reach it. So another email exchange with tech-support tomorrow.

Friday 16 April 2010

Video: Welcome to Afghanistan

Autopatcher - needs patching

hehe well the XPatcher2 software worked great for the upload, but the client program doesn't seem to want to work at all, requesting a file that wasn't supplied or exists.

Might have to look at other some other software.

Converting all config files to use XML format, this will make editing control inputs a bit easier later. They are rather messy atm and adding new options should be a lot easier.

Thursday 15 April 2010

Testing Autopatcher Software

Currently testing the autopatcher software. Broadband upstream speeds being what they are, don't make this a fast process. The project core files are currently around the 300mb mark spread over 1300+ files. This will come down when we package them.

The benefits of having an autopatcher is the ability to push updates for CombatHelo on a regular basis without too much hassle and players having to negotiate versions when playing with friends. Just run the updater and everyone should be in sync.

Tuesday 13 April 2010

Tracking down memory leaks

After close checking of memory usage when boarding and exiting the Apache there's feedback saying that objects are getting freed and memory dumped, except it isn't. Only a small percentage. There are object references that are keeping the cockpit and avionic entities alive and preventing them from being released.

Going to take a little time to track each one down.

*edit*

The large memory leak located, was the TADS camera world not being released. It's been removed for now.

Monday 12 April 2010

On hold for a few days

I've just moved on to doing research into co-ordinates and floating point accuracy.
Going to make a few test projects to try different ideas. Dave has been posting updates on the greenzone development.

Welcome to Afghanistan

Friday 9 April 2010

Arming almost done

Not convinced this a a great way of arming the Apache. But what we will do I think is provide some quick defaults, option A and option B.

Only the client sees the weapons appear on the ground ready for selection. The crewman loading the weapons clicks the weapon which is then sent to the highlighted pylon. Internally the helicopter entity receives a message to load pylon x with missile y.

To do: Tooltips for the pods to say what they are and I think highlighting the selected pylon might be a good idea.

I can optimise memory usage a little by pre-loading the Apache stores and instancing then missiles which I meant to do earlier. Pre-caching some of these objects will reduce that awful machine lag that occurs when it needs to show a model for the first time.
TrippleHead2Go vision

Thursday 8 April 2010

Random thoughts and musings

Looking at the pieces we have and project roadmap. Our game, like football (soccer for American readers), is a game of two halves. Side A and Side B. One campaign is the thinking man's approach; counter insurgency. The other game is  the more familiar tank spanker; survival in a high-tech hostile environment against well armed self-sufficient mechanised infantry with air-defence units.

Compounds are anchor points of the campaigns, in groups they form the villages, strategic points you're tasked to provide security for. In the side-B campaign, the role is slightly different but as important.

I'm still a little bothered by LOD and shadow ranges, you can go mad tweaking these to find something that works well for different modes. Maybe I'm stupid but it only occurred to me last night to make the LOD settings dynamic. Which is ironic, as the very very first  multiplayer wargame I worked on back in the late 80s used an LOD system based on view height.

In the real world, at ground level the horizon is around 11km away, it's a mathematical function based on your height and the curvature of the earth.

1.17 times the square root of your height of eye = Distance to the horizon in nautical miles

So I'll be experimenting at some stage with adjusting the Leadwerks Engine LODs for shadows and vegetation based on player mode and viewer height.

Just using a depth of field filter on the far horizon seems to greatly improve visual quality, making hills blend a better into the haze, masking the smaller details.

First things first, we have to complete our Apache and it's operational systems. Arming is almost complete.
With breaks for Easter, familiy time and re-writing internal systems for handling weapons THREE times (it got better each time). It's taken a week longer than I said originally. The menu system is in place and the visual manifestation of the ordnance is left to do. Rocket pods will require one click per zone (3 zones or 3 kinds of rockets per pod).

Presently it permits arming in proximity to the Apache which is fine on the base. But we'll have to implement some object, like an ammo truck (hmm, seen that somewhere before), or  some invisible object we can attach to any entity via some LUA code (much like player spawn locations).

DOF blending the horizon.

Tuesday 6 April 2010

Easter Holiday Break

Just to let you know I'm taking a few days off Easter Holiday. Back up to speed in a couple of days.

Saturday 3 April 2010

IHADSS mode cycle and recent work progress.

Most of the IHADSS modes are complete except for a couple of elements in hover and bobup, and the flight-path indicator in TRANS mode.

Also added for Dave's benefit a small map which I'll use later as a background underlay for a tactical situation display (TSD) and easy nav mode.

RichP has supplied an authentic start-up sequence complete with appropriate caution and warning signalling that fits our bird nicely. Once we're done with the arming set-up I'll get back on the cockpit sequencing.

There will be an easy start option but you'll like the complexity of starting your own chopper. Modern helicopters with computers are pretty easy to start though.

A new version of the 3D engine is in the works which has a new improved Octree, vegetation culling and I think lets us do a little more with terrain texture blending. Might lets us squeeze out higher detailed areas.

So there's a lot of stuff being worked on at the same time. Not much time for big blog updates or making new videos. I suspect the next video will be the cockpit startup when it's ready followed by a short test flight

*edit* I also made some improvements over the past day or so to lift calculations, by no means complete but much better handling during turns. Managed a roll and a loop (unloaded helo, only hit the ground once). Blade stress isn't calculated yet. But you can get sucked out of the sky  if you descend too quickly.

Thursday 1 April 2010

Today I am officially unemployed. No joke.