Sunday 29 January 2012

Video Production

I've done a small video before lasting just a few seconds but now I have put together a longer sample.  The Alien in this clip is not scripted it does all the behaviour seen based on the AI of the game.

It still needs a lot of polishing but it is workable already.  I say already but I have been working on the Artificial Intelligence and the behaviours for a couple of months.


Slightly stepping away from the game I want a little moan about how difficult putting the video together was.  I'd captured video screenshots before and I assumed it would be fairly easy to edit out the bits that I didn't think people wanted to see, like the opening menus and the levels loading.

I used Microsoft Expression Encoder 4 SP1 to capture the video of the game.  That initial video capture works very well.  Simply select the region to capture and press the record button.  Easy.   The result of that capture needs to be transcoded in to something usable by YouTube.  To do that it is necessary to use a different programme in the Expression suite.  This is where is all goes wrong. 

Microsoft have so restricted the free version of the Expression programmes that they are a pain to use for editing.  It defeats the object of a free trial version because having used that and taken all afternoon to remove a few frames I am unlikely to buy the paid for version.

Firstly the version I was using could only have one section of the video selected at any one time.  Therefore to remove several sections it was necessary to do each cut one at a time and spend minutes in between encoding and then reloading each completed bit.  To make matters worse it only used the original file name so I had to rename each clip in between.  That all sounds easy enough but I had to work all that out before I came up with a workable production method.  Wasting several hours.

The most frustrating bit was that along the way several of the encoded videos ended up with bad artifacts at their starts and the Encoder programme hung once and corrupted the xml file used for saving the jobs.  I was not impressed.


Following on from the above I now use Windows Live Movie Maker.  It is still limited but for a free product it does a good job and is easy to use.  I still need the Expression Encoder to capture the video in the first place:
Microsoft Expression Encoder 4 to capture up to 10 minutes of video.
Windows Live Movie Maker to edit the video, add transitions and background music.


Sick Kreations said...

Hi John,
Its Kevin from Sick Kreations.

Nice video and congratulations on getting in AI.

I noticed the enemy taking cover and crouching, that's impressive.
The map seems to work well too, places for enemy to flank you, I thought i saw an enemy doing that.

I feel your pain on video editing, its a tedious task . I have Adobe Premier 1.5, an older version but works very well, i recommend it.

On the End Of Days forum you mentioned your having to partially re-write your projectile code, i know what that's like, i re-wrote the collision code in EOD 3 times! If your interested I'm willing to share how i do collision in EOD. I use highly optimized Segment Intersect Triangle code from 'Real Time Collision Detection' by Christer Ericson, it can easily test 34,000 triangles a frame when doing ray cast for weapon.
I your interested let me know and ill email you the code.

Thanks for help reviewing EOD, Kevin.

John C Brown said...

Kevin Thanks,

Yes, the Bot does flank, often. One of my design goals for the AI is that I must not be able to predict the Bots actions.

I want to be able to play the game without any advantage. To help with that I use a lot of fuzzy logic but very basic decisions. The overall combat goal for that Bot is to find the best cover to shoot you from.

I am working on getting rockets and non-line of sight projectile paths. That has dramatically increased the number of ray to triangle collisions I need to test!

At the moment I use a slightly modified version of the code from the Microsoft picking sample. It works with a couple of complications but I have to keep the number of triangle tests to a minimum. To do that I test a structure of larger bounding spheres containing smaller bounding spheres containing triangles.