Tuesday, 12 June 2012

Weather clearing up - sunny spells in the afternoon

Last month I didn't have a clue exactly what was going to happen with regard to the project and work etc. As it happens I'm grateful things worked out as well as they did. My book is well under way and on schedule, new job starting shortly and thank goodness; not one but TWO replacement couches. If you didn't know I've been sitting in a hole padded with cushions for two years, a glamorous life but on the plus side visitors didn't want to stay long. However come the end of July I have some guests from Denmark coming over to show me how to build an AR table. Using a piece of target tracking software called "Bullseye" and Unity3D here's some footage of a music table in action courtesy of LEGO.


As it's going open source soon and I have a TON of painted Battletech figures and helicopters sitting in a box I'm hoping we can jam a prototype AR tabletop mech game in a week for not much expense. I haven't told him yet but it's too late for them to cancel the holiday. Sorry Lena :)

He's also quite keen to get some stick time on Combat-Helo so it's a good opportunity to get it fixed up for another public outing. Dave and I have been working on a rescue plan which I'm happy with. Currently I still only have a few hours during the week to work on the project, this will increase around mid-July.

Gunfighter6 just stepped and delivered a script full of stand-in speech files. So big thank you for that. What I did for the script was generate a cut-down version for the gunnery range and have just 3 parts, the range officer and two crewmen. The trick is to turn unfiltered speech into multiple parts by mixing radio noise, if that doesn't work then I'll have to batch process noise into the audio fragments using Audacity. It's now capable of running scripts.

Audacity 2.0  - great program.

The Leadwerks Community Project is picking up pace but some of the guys working on it have pulled out all the stops to put in some awesome work and I'm learning a thing or two from every update. Here's the third video blog of what's going on behind the scenes. Roll the tape Johhny....



I just watched Indie Game - The Movie  (www.indiegamethemovie.com/), a highly emotional experience and my heart goes out to all developers out there who feel the same level of frustration and conviction. In the darker moments when the pressure is on and you can only see the problems, that's when you want to give up. Some of those guys were working for 5 years, without support. As a movie it's beautifully shot and scored. If you want some insight into what it's like being the little guy trying to code your 'big idea' this is spot on...except for most it doesn't have the good bit at the end.

I'm thankful for Dave's patience and continued support from folks. Next update will be in about two weeks, until then have fun.

Monday, 21 May 2012

Flying a desk in bad weather

I don't like this new "blogger" interface at all. Nonetheless. This is a post I kept putting off but it's not all bad news so I'm comfortable making it now.

As some of you are already aware my funds for this venture expired at the end of March when it ceased to be a full time enterprise. All time on the project is whatever I can scrape together (and justify) between other work. Currently I'm under contract to finish a book on terrain modeling for programmers and artists using GROME 3.1 for Unity, UDK, iPhone and Ogre3D. I have to say it's been a blast working on this. A wise man one put in his forum sig "Best way to learn is to teach others."

In it I'll be covering diverse topics such as world scales, FPS engines, terrain tiling and LOD, procedural generation of topography, textures, importing DEMs and exporting terrain so it will run on Unity iPhone and more.

Asynchronous terrain tile loading was something I was researching for the next iteration of the Combat-Helo engine which is why I ended up being asked to write the book. Hopefully I'll be in a better position to put it into practice (beyond the examples in the book) later in the year. Expect publication around end of August/September, if only for my terrible puns. Too bad nobody seems to be hiring to do this stuff.

Watch out for: Grome 3.1 Terrain Modeling with Ogre3D, UDK and Unity3D
ISBN# 978-2-849529-18-2

Coming to a bookstore this Fall.

But what about Combat-freeking-Helo?

Only getting a few hours a week to tinker is not enough. The problem is interest from debts incurred during development can no longer be supported out of my own pocket. Costs of hardware and licenses not to mention time (Dave didn't get paid at all, I owe him a massive beer tab and a luxury foot-massage - at least) need to be addressed. In addition legal costs of releasing can't be met, and they are necessary today, more so than ever.

It is a frustrating situation. Kickstarter has been mentioned by some readers. They are popular atm, seems every man and his dog is funding re-makes on it. Unless I can find a business development manager to set-up a US based entity it's not going to be an option for us. I don't have the time or experience of US business law to set one up. One UK developer (Carmageddon) recently had to do just that, I envy them.

From the start I clearly said I wouldn't work on the project unless it was funded, when that funding didn't appear I went ahead out of my own pocket but knew time was limited. If we could literally kickstart this thing and give it what it needs (business development, professional audio, animation library, second programmer, Dave's beer tab) to the tune of about $20,000 we're good. That's the sit-rep. When I get current commitments out of the way I can devote a little more time to fix pressing issues.

As for the work that is being done:


  • I redeveloped the audio script for the Firing Range. It would be nice if we can at least get the minimum amount of voice work done to bring life to the cockpit.
  • LUA scripting of mobiles is partly complete. Need to create nav-grid data, still outstanding.
  • Flight model still down, forces are not getting updated and attempts to debug have not met with success. Will be something simple but like finding needle in a haystack, time intensive. Came up with strategy to deal with this thanks in part to the Leadwerks Community Project guys.

Mossie - "Victory Stings the Loser"

Paolo has been busy with his own family commitments and found time to finish off the game's mascot, looking excellent in my opinion. I hope to have some made up into squad patches for a limited edition release (if only because I want one on my jacket so I might as well get a bunch made up).

He's been brainstorming game-play record keeping ideas, some of which will make it into the game as they are way better than mine and as it turned out, easier to implement from an art point of view.



Moving on to other things. It's my personal blog so I might as well indulge myself and write about what else I've been doing.


Dungeon Crawlers

I started a small series on "Procedural Content Generation". A tutorial on building an old-school dynamic Dungeon crawler in LUA. When creating the combat-helo vehicle scripts I realised I was missing some subtitles of LUA, this has been a good opportunity to explore it. Here's links to the first 3 parts. The final two parts will be posted after I get my current book chapter off to the publisher.

  - Procedural Content Creation Part 1
  - Procedural Content Creation Part 2
  - Procedural Content Creation Part 3


Proland 4.0 goes OpenSource

Back on the subject of terrain, some great news this month as Proland 4.0 went opensource under a dual commercial GPL3 license. If you're not familiar with Proland it's the work headed up by French researchers Eric Bruneton and Fabrice Neyret. While they were at the time reluctant to license for militaristic applications we were quite interested in using it for a Search and Rescue application (the project later became tied to Unity and using GROME as a world data import tool).


Here's the text of the announcement:

INRIA is pleased to announce that Proland has been released in Open Source:

http://proland.inrialpes.fr

Proland is a C++/OpenGL library for the real-time realistic rendering of very large and detailed 3D natural scenes on GPU. It is capable of rendering entire planets from ground to space. Proland is released under a dual GPLv3/commercial license. You can try it by downloading the precompiled Windows demo at http://proland.inria...r/download.html.



ZOMBIES

The Leadwerks community recently got together to start building a Zombie FPS. I'm not doing much of anything except this time I'm doing it in C++ and using TinyXML to do all the game loading and saving. Just watching some of the guys put down animation code here, subway level designs, weapon code. Quite inspiring. Everyone seems to have something to bring to the party, even if it's just my two tins of Dutch lager.

I think the "Worst Case Scenario" game idea is a good one. Giant ants, a 53.5ft tall woman, amorphous blobs, zombies, walking plants and secret nuclear tests all thrown into one bad day in Smalltown USA is a Steam classic waiting to happen. Did I leave out the alien robot and killer rabbits? How foolish. I look forward to playing the LCP (Leadwerks Community Project) game which is already taking shape.


Parting Shot

As usual, if there's any major announcement it will be made here. My twitter feed tends to have a high signal to noise ratio.

Wednesday, 4 April 2012

Mobiles, mobs and states

While waiting on fixes for the flight-model and control inputs, putting some game into the game we talked about ranges and how performance measuring was going to work. In addition we wanted to add a little variety which required working mob AI.

So nothing fancy but I managed to rustle up a simple finite state machine FSM to get some tanks and cars running around. Our design uses a group formation system (a group is a number of individual units that share common logic, e.g a tank platoon) and if you've ever used Missioneer you'll be familiar with the concept. 

Currently tanks are driving around a small test tool I'm using to test the module, switching formations, revving engines, exhaust smoke. Performance is king so updates are interlaced, no vehicle physics are required so animation suffices.



Each group member has a goal pivot, when the formation changes the individual vehicles seek their pilot according to their driving behaviour. All the pivots are parented to a master pivot controlled by the group. This way you just need to update the group position (e.g movement orders to x/y) and the rest takes care of itself.

We can look into expanding the states later when we want them to do more complicated things, and do that on a per unit basis. Tank gunners will want to turret to target when attacking, manpads will simply turn to face. Same state but slightly different logic per unit. And this can be done in LUA level by setting the models "fsm_mode" key. That makes less work for me and gives Dave the artist some nice toys to play with. At the end of the day I at least have a tile based tank engine to play with. I'll throw up a video.

For the gunnery range we don't need anything demanding; some AI road following traffic, people in groups and the odd vehicle following a set of waypoints. Nothing spectacular or difficult there. That hardest part is turning the 3D geometry of the road network into a navigation grid. Then your mob groups need to know if they are supposed to be following the road or their own formation (switching as they move from one to the other).


Roads

The one problem I have in getting AI traffic running around is putting together a nav-grid I can work with. Our roads are large models (2 or 3 assorted) that are built in 3D Max using a height deformation modifier (the same height-map used to build terrain layers). And it mostly fits. I think we need to flatten it out so only the surface triangles can be read and turned into usable data.

Speaking of art, "Mossie" has been given some love.




Further reading:
    FSM gate scandal - Why they are old hat

Friday, 23 March 2012

Mossie Mascot update...

Meanwhile in Comknat-Helo...colouring update for Mossie...



In other news

Caught this video a few days ago but made it to the BBC today courtesy of Military.com

A demonstration of the dangers of thin mountain air in Afghanistan. Someone should check oxygen levels and how it can effect judgement at those altitudes. Performing a "return-to-target" turn in low density air.

Tuesday, 13 March 2012

More vintage helicopter material and custom dynamics

Struggling to find some progress to demo, the past week has been picking up threads and licking Combat-Helo back into shape with a HTR flight model update and repairs from my aggressive (frantic?) debugging sessions from a while back (mostly sorted now). Almost done with the HTR update, some small things came out while doing it which I might as well share.

During a recent visit into the attic to dig out research material I came upon some of the more interesting clippings from World Air Power and assorted journals. Including one glossy sales leaflet from Boeing which I've scanned in and posted below (showing rear page). Bypassing the somewhat aggressive tone, if you examine the "Baseline Performance Specification" table it does illustrate the effect of temperature on performance. It's worth noting that published data like this varied greatly especially after upgrades to engines and rotor system. This leaflet from an air-show is a little old.


One of the cool aspects Helicopter Total Realism (HTR) for FSX is it enables pilots to tweak and test how their helicopter flies in a simple manner. For example

[Helicopter] 
helicopterType= 1
simType = 0
length = 50.74
velocityNeverExceed = 172
emptyWeight = 10670
simEmptyWeight = 10670
maxGrossWeight = 14415
meanAerodynamicChord= 6
emptyWeightCOG = 0.48
...
...

The dynamics of each helicopter are edited easily enough with HTR by changing values in the .CFG file that lives in each helicopters "dynamics" directory. As this file is likely to updated at our end and therefore updated during any pushed game update it was prudent to add a check for a "aircraft_user.cfg" file so any edits should be saved into this file which should remain untouched. Good news if you want to plug in WHA-64 specs.

It should be possible to hot-swap between the two in game via the chat/command console to make comparisons.


A quick shout out to "Pixel Perfect" who has been working on his own flavour of lip-sync in Leadwerks (Facial animation test) which I think would be a really nice touch for our crewmen and seems pretty simple enough once you have the datafile containing all the phonemes and timing data. It does require some extra bones in the heads (Leadwerks does bone animation not vertex). That hard part I think is sorting out the model conversion but the concept seems to work. And it has to be slightly better than flapping heads. Although I'll have to run the details past Dave since it's his dept. see if we can't shoehorn that into the roadmap somewhere.



And now, from Fort Rucker a sweet introduction film (and rare in that it's been encoded in HD)


United States Army Presents: Sikorsky H-19 Helicopter Flight Training (30mins)




Parting Shot

Thanks for the feedback on last weeks video, the mini-tutorial on using the KBU Keyboard Unit (I keep wanting to type Unity which is another 3D engine I use from time to time). I've since found FOUR functions for it, the altitude bugs low and high, manual range input and .... barometric pressure. Which is right next to the bug settings. See the default pressure of 29.92 which represent inches of mercury inHg at sea level. You shouldn't need to set this at all as boarding the aircraft sets the value to the ambient pressure outside (we use the standard atmospheric model in Combat-Helo).

Also in the video I set the high bug to 3,000 feet. I realised a couple of days later that this setting is for the RADAR altimeter....and at what altitude does the radar alt disappear? (AH64 trivia question there for you Janes junkies) Answer, about half that. So 3,000 didn't make a lot of sense however if you want to enter silly values you can. I decided to leave it unless I find data that says otherwise.

Wednesday, 7 March 2012

Mossie concept art

Just a short post since I'm busy being pulled in a dozen different directions; I got roped into helping someone create a short health and safety film, drafting a project proposal, raising finances and even managed to fix a long standing bug in Combat-Helo. Now the sensors, line of sight and all that guff is now WORKING again,  Hooray. A quick background on that, an engine update needed to fix some occlusion issues slightly changed the Model hierarchy in a subtle way that changed how actual filenames of models were retrieved, long story short, they no longer matched the ones in the vehicle database as they had "lod1" suffixed to everything . But hey it was a quick fix once traced, I digress as usual.

Talented Paolo, creator of many a fine mascot has been working on some fictional nose-art and patches for the squad mascot in Combat-Helo. We knew we wanted it to feature a mosquito, the mosquito is the nickname allegedly given to the AH-64D by Taliban forces. Incidentally it was also the aircraft my father was attached to during World War II so I felt it had a double meaning.

The character will be visible on squad patches and eventually be available as nose-art.

"Mossie" copyright 2012 Paolo Pomes

Below is an earlier draft of "Mossie" to help decide on nose style, the nose later became the Apache's signature Bushmaster cannon.


Please post your thoughts and comments on "mossie", suggestions for what he can hold in his left hand are invited.


*edit*


Finished adding additional features of the KBU, namely auto pop-up and closure of the unit when you click on an MPD function that requires entry; setting hi and lo bug. And manual range entry. Now comes complete with blinky cursor and key highlight when you move the mouse over the keys. All command entries are pushed back into the TAvionics message handler, there's an optional message history buffer (currently inactive).

Friday, 24 February 2012

US Army presents "Mast Bumping"

I know it's a little late for Valentines Day. Excessive flapping, bumping and separation is discussed in this priceless US Army video from 1980. If only they had "RotorCam (tm)". The Apache has a fixed rotor, mast bumping isn't an issue but it's all part of helicopter theory.




I've been forced to continue hunting for other employment to deal with a mounting debt crisis. As a result  work was put on hold the past two weeks (hence the lack of updates). I apologise for letting my post slide, the project really is taking a toll. I've been ordered to get back to Combat-Helo ASAP (taxes and all that business stuff needed to be done too), I'll be updating as well as I can. There's an engine update to finish rolling into the project (I started on that earlier in the week, this fixes a problem with terrain and I hope the EntityUserData and hierarchy problem).

A Twitter follower suggested I post some Gun Cam footage, I had a look at that and found vegetation range/LOD issues in the MTADS camera need dynamic adjusting (not sure what the most efficient method will be yet).

I'll just round this entry off by stating that raising funds in the UK for technical entertainment projects is very difficult if not near impossible. Bank staff/accountants take one look at video of Apache cockpits and give you funny looks like you're some kind of gun nut (that actually happened).

In the meantime, enjoy the technical detail of the above video.

Another Example

Here's a great example of ground resonance, link provided by reader Christian.