Monday, 30 November 2015

C#/DX9 to C++/DX11

Apologies it's been a while since my last post but I've been locked away in a small, dark room converting the ~90k lines of the CAP2 codebase.

Previously CAP2 was XNA based, written in C# and using a DX9 level graphics API. By converting to C++ and using DX11 we get a slight CPU performance bump and a major graphics performance boost through efficient graphics buffer reuse and improved shader capabilities. Basically we can eliminate some duplicated draw calls and shader workarounds we'd previously employed.

The other major benefit to the conversion is much simpler and more efficient integration with API's such as:

  1. TrackIR
  2. Oculus
  3. FMOD (3D Audio)
  4. RakNet (Multiplayer)
  5. Steam

We'll release to Early Access with TrackIR, Steam integration and FMOD. Oculus then multiplayer will follow.

As for release dates I've been burned a couple of times in the past with those so we'll give one when we have a release build in hand with just marketing & Steam store tasks to complete. I won't be adding any new features before then, so no Zeppelins or other crazy requests to delay things :)

So, having taken a bit of pain with the time taken for the conversion it puts us in much better shape for the future with improved performance and API integration.

Wednesday, 7 October 2015

F4 Update

Here's a short post re the F4 Phantom II from CAP2. 'IanH' has updated the drone model used in some training scenarios with the opponent IRIAF model to be added this week. And no, you can't fly it. Yet :)

Sunday, 20 September 2015

Dynamic Campaign

CAP2's dynamic campaign seems to have piqued the interest of a few people so I thought it was time to post some information about it.

A basic feature of CAP2's dynamic campaign is persistent world state between missions. This state includes unit positions, orders, armament levels, damage, fleet waypoints etc and is saved after each mission.

A major feature of the campaign is dynamic mission generation. This is reactive to enemy actions, previous mission results and your overall strategy, e.g. if you move your fleet closer to the Strait to be closer to the action then more of your missions will involve fleet protection from air and surface attacks. In addition to the dynamic campaign missions there are predefined missions which are 'blended' into the mission cycle.

Before each mission you can access the mission planner which allows you to adjust the number of aircraft in the mission package, weapon loads and the auto generated aircraft waypoints.
You can also alter your persistent fleet waypoints. This includes assignments to individual ships so if you want to send a couple of frigates out as 'radar pickets' or take part in a combined air and sea bombardment of an island then you have that capability.

Here are a couple of shots of the mission planner..

You can see the merchant maritime traffic following sea lanes through the Straits. You must protect these throughout the campaign. If you cannot protect them and declare the Straits closed this will count towards campaign failure.

There are numerous strategies you can follow within the campaign which leads to a significant amount of replayability(is that a word?). So, do you close the Straits on day one? Focus on the islands? Send the fleet to the Straits? Keep the fleet together? It's up to you.

Wednesday, 19 August 2015

Custom Engine...

I've recently been asked which 3D or game engine CAP2 uses so thought I'd post on that topic.

CAP2 uses a custom engine incorporating features such as:

  • 80km draw distance (a prerequisite for a flight simulator)
  • large scale tileable terrain system
  • water rendering system with variable sea states
  • accurate lighting based on world position, date and time
  • accurate star display
  • 3D audio sytem with doppler effect
  • aircraft & watercraft physics systems
  • flexible hierarchical object system

The hierarchical object system allows me to simply add functional components to objects & vehicles so for instance you'll see a wind vane just ahead of the Harrier cockpit showing relative wind motion. This helps during landing, especially with any degree of turbulence.

The physics system allows aircraft to react to a pitching deck through their gear suspension rather than being 'glued' to the deck and ships to have compartments flooded then showing a list or being bow or stern down in the water.

The rendering engine currently uses DX9 though I have an upgrade to DX11 due in the coming months. I'll be adding SSAO (a lighting effect simulating ambient light occlusion) and depth of field effects. SSAO will make the game look a tad prettier while DOF will be used very subtly so that you might not actually be sure it's being used :)

These are all individually simple things which I think add up to a more immersive experience. I do hope you'll agree. Or else!

BTW I read a comment somewhere that stated if a flight sim looked good it must be an arcade sim with 100 missiles per plane, the GPU would be maxed out so the simulation would be rubbish (how?) etc, etc. Well, that's complete bollocks. Pretty much any developer will use or develop an engine where rendering, AI, physics, particles etc exist in separate threads. Rendering should have zero impact on AI depth. Looking good and incorporating a 'non arcade' level sim are not mutually exclusive.
For people wanting a more arcade level experience I've previously posted regarding variable difficulty flight models where landing the Harrier ranges from 'pretty easy' to 'requires attention' to 'a total bitch' :)

Thursday, 13 August 2015

To 'VIFF' or not to 'VIFF'...

...that is the question :)

One of the (many) unique capabilities of the Harrier is it's ability to vector it's thrust nozzles during forward flight ( hence VIFF = VectorInForwardFlight ). In a close-in dogfight the Harrier being able to vector more than 23000 lbs of thrust through 98.5 degrees from aft gives an opposing pilot a serious problem most probably resulting in an overshoot and a switch to a defensive posture.

Naturally CAP2 implements this capability. If you fly with a split throttle HOTAS controller or flight stick with two extra analogue inputs you have full control over nozzle position and thrust. Additionally you can map nozzle position increments or absolute positions to other buttons or keys.

Happy VIFFing!

Sunday, 9 August 2015

CAP2 Flight Models

There's been a few questions regarding the flight model(s) and simulation level of CAP2 so I thought I'd post regarding flight model difficulty levels.

Basically, I play CAP2 on medium difficulty.

In hard difficulty level, when you attempt a vertical landing on a pitching, crowded deck, managing your throttle, nozzle position whilst monitoring the windvane you get an idea of just how skilled real life Harrier pilots are. It's tough but that's the point isn't it? Playing with TrackIR or a VR headset should help in this mode so I'll post on this once those features are added.

In medium difficulty level your throttle position becomes a climb/descent rate request with engine control logic computing the actual throttle position. It's still demanding but I complete 9 out 10 landings safely.

In easy mode you enter vertical flight mode, set climb/descent rate with your throttle and request longitudinal and lateral movement with your flight stick. Easy.

Why 'SIM155' ?

We intend to write a series of sims and we're located at 1 west, 55 north so we chose 'SIM155'. Actually we're nearer 1w54n but 'SIM154' didn't quite cut it :)


Welcome to my dev blog for everything Sim155 and 'Combat Air Patrol 2' related.

I'll keep you informed about CAP2 development progress, answer any questions and hopefully not swear unless it's entirely justified :)