Tuesday 13 July 2010

Quick update

Monday was one of those email days.

Future Tech

As director I'm looking beyond Combat-Helo, the future of the game and where we want to make improvements. One major improvement I'd like to see is the terrain rendering part of the engine. Make it more flexible, scalable and efficient. We've been looking at different engines and technologies, none of them are suited for flight-simulation out of the box. As much as we'd like to license those for use in a future commercial project they are either not ready or unavailable for license.

To satisfy requirements post Combat-Helo we require the ability to model the whole of the earth and stream in data for ground detail. There's potential to do that with the current engine by paging in ground object data with  a curved terrain mesh (think of a skybox that's curved into a sphere, but used for terrain). There are several interpolated LOD methods. The Terrain Augmentation Program is to be an ongoing side-project and not to interfere with Combat-Helo development.


Vector Graphics and Display Lists

I was looking over our Apache MPD (multi-page display) code, there are items I left out simply because I didn't have a handy symbol or character. Also the amount of updating required is a little inefficient. MPD updates were scheduled to be part of an optimisation pass later in the project but since I was adding the FCR and TADS symbology I feel justified in bringing that forward to make it easier.

Currently the MPDs use a co-ordinate system with 0,0 in the centre of the screen, with -1.0 being the left edge, +1.0 the right side. With +1.0 and -1.0 top and bottom respectively. This allows for resolution independent rendering. However some elements such as the Leadwerks bitmap fonts required converting to a standard co-ordinate system. Bitmap fonts don't scale well.

I've just completed coding a complete alpha-numeric font with symbols that mimic closely the current Apache MPD looks. All using vectors and OpenGL Display Lists (which are sort of pre-compiled commands), runs pretty fast and looks not too shabby. The MPD text and symbols are now fully scalable, also being pure OpenGL they are freed from needing the 3D engine and will run on a modest laptop.

Things left to do,convert existing code to use new VectorFont class, use more Display Lists for page elements. I was adding the FCR (back) into the game while I was away last week but it's aged so much it's worth starting over.

Sensors and Equipment

Regardless of the current Apache capabilities which are not in the public-domain, our Apache will track and classify up to 256 objects (thank you AABB for making it so easy). It's currently magic, meaning instant and no regard for signal strength or LOS. This will be sorted out later. Just needed something to display on the TSD, FCR etc.

David has been looking at the crews survival equipment. Something you can whip out to find out where you are. We know we'll want to have at least one weapon (a sidearm) and smoke signal flares for dropping a coloured smoke emitter.


5 comments:

  1. That's a really nice compass model.

    Regarding your future terrain requirements, how important to you is the ability to model spherical earth horizon effects? I.e does the earth need to be a physical globe or can cheating go on so long as you have enough precision to smoothly stream from one area on a flat earth to the other?

    I could also imagine a hybrid solution where the earth streams in flat but the edges curve slightly away from you at all times to give you realistic horizon effects for radar etc.

    ReplyDelete
  2. Looking to achieve a full spherical earth, with curvature based on the height of the observer.

    See edit above showing YouTube video of an "adaptive sphere mesh".

    ReplyDelete
  3. That's not our video BTW, just an example of the concept.

    ReplyDelete
  4. Cool, I will keep your requirements in mind as I will probably be doing something similar myself.

    ReplyDelete
  5. Does the engines that are been used for flight-simulation uses current sensors?

    ReplyDelete