🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

MW:Mac, The Patch and Theora

posted in A Keyboard and the Truth for project 96 Mill
Published October 10, 2006
Advertisement
Lots 'o' news today folks, so let's get to it.

MW:Mac

While not much has been said about it, over the past few months Morning's Wrath for the Mac (OS X) has been in production and is now in testing. It is an experiment to probe the supposedly untapped indie game market on Mac. More on this later.


The Patch

Development has started on the final Morning's Wrath patch, One Patch to Rule Them All!

It will offically bring Morning's Wrath to version 2.0, and is primarily a technology patch (performance and usability improvements). We hope to address
many of the shortcomings that players have voiced with Morning's Wrath, mainly concerning video hardware compatibility, control responsiveness and pathfinding improvement, enemy AI and no respawn, and an overall more performant and pleasurable user experience.

While this is virtually another games worth of engine changes this patch will be offered for free and will come pre-loaded on all new purchases after the patch has been released.


Theora

When thinking about Malathedra I knew we needed a good intro. Morning's Wrath used a scripted intro which was a bit dull, as such somthing needed to change.

When dealing with an intro you have about three choices:


  • 1. In-Game cinematic, using the game to do the intro

  • 2. Scriptable cinematic system, displaying pictures and text

  • 3. Full motion video



Now for those of you who don't know, Malathedra has to be good.. REAL good, which means when it comes to an intro we need the best.

So I had made up my mind, we were using full motion video for an intro, but then the question was, what format to use and how to display it.


After a bit of investigation it seemd my two main choices were DirectShow, and avi or some other format, or a new video technology called Theora, I had heard about Theora from coldacid's journal a while back and tucked it away until the time was right.

From the looks of things theora is still very new (listed as alpha) which would make us an early adopter which I personally like.

Pros and Cons

DirectShow Pros
-We're already using DirectX
-It handles display of the video
-Technically mature

DirectShow Cons
-Limited to windows
-Requires external codec for certain video
-Overly complex (COM based and more features that we need)

Theora Pros
-OpenSource
-No need for external codec
-Compact and straight forward to use (much like vorbis)

Theora Cons
-Requires you stream and display the data yourself
-Complex YUV to RGB conversion
-Very limited real-world usage as of yet


Since one of our potential goals is porting the S3Engine 1.0 to Mac, I wanted to not rely on a windows-centric format, also the potential nightmares of improper or non-present external codecs did not thrill me. Given this coupled with adding to our list of open-source middleware I decided to give theora a whirl.

Overall implementation was painless, and the harder things were getting the libraries built to static libs, which was in the grand scheme relatively painless.

The hardest thing was the YUV to RGB conversion code, the straight up color conversion from YUV to RGB is trivial, however theora organizes it's data (possibly the standard I dunno) so that the Y plane and the UV planes can have different dimensions.

In this case the Y(luminance) data may be 320x240 pixels, and the U and V data may be 160x120 (1/4 the video size), this subsampled data must be 'stretched' when you convert the frame into a planner RGB format (a dynamic texture) for display, I had limited success trying to do the conversions myself, as writing software 'blitter' functoins are both cumbersome and easy to make mistakes with, however I was able to find some sample code which did the conversion for me, so with a little fustration and a little googling I was able to get a theora video rendering in the S3Engine in about 6 hours worth of effort.

With this addition the S3Engine now can play a theora ogg file which switches the engine into 'video mode' and displays the video full-frame (with aspect ratio correction), videos can be played via the scripting system with the playVideo("data/video1.ogg"); command.

This was a great feature to add and will add just a bit more to the Malathedra experience, and if we're going to succeed we need every bit we can get :)

Comments?



Next Entry Ouch
0 likes 5 comments

Comments

Twisol
Sounds awesome, although I'm going to miss the hand-drawn 'slideshow' pictures from MW.
October 10, 2006 02:11 PM
ShoeStringGames
Its nice to see that your still giving support to MW, shaweet!
October 10, 2006 02:48 PM
nolongerhere
Maybe Ill buy MW after all!
October 10, 2006 04:07 PM
Ravuya
I did tell trapdoor that I'd help test. I'd start advertising on Inside Mac Games and the like.
October 10, 2006 04:22 PM
dgreen02
Hey Raymond it's been a while since I've commented in your journal, I just wanted to wish you good luck on Malathedra, it looks like it's progressing very well.

I saw some of the videos on IGN a few days ago, in the PC Games section.

- Dan
October 10, 2006 09:22 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement