Jump to content
  • entries
    503
  • comments
    1888
  • views
    335290

MW:Mac, The Patch and Theora

Sign in to follow this  
EDI

115 views

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?



Sign in to follow this  


5 Comments


Recommended Comments

Sounds awesome, although I'm going to miss the hand-drawn 'slideshow' pictures from MW.

Share this comment


Link to comment
I did tell trapdoor that I'd help test. I'd start advertising on Inside Mac Games and the like.

Share this comment


Link to comment
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

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!