• Register

39 Days to Mars is a two player co-operative puzzle-adventure game. Step into the shoes of Sir Albert Wickes and The Right Honourable Clarence Baxter, two 19th century explorers who have chosen to pilot the HMS Fearful on its maiden voyage to Mars. When the steam engine runs out of coal, the ship's cat shreds the navigation chart, and the tea gets cold, it becomes clear that interstellar transportation isn't a walk in the park. It will take the talents of two players working together on the problems that arise to get to Mars in one piece.

Post news Report RSS Monogame and going Multi-platform

In this update I talk about how I took the plunge and got 39 Days to Mars running on Monogame. It's something I've been planning to do for a long time, but there have always been more important things to do. After a great reception on Steam Greenlight, I had enough motivation to dive into something technical.

Posted by on

In this update I talk about how I took the plunge and got 39 Days to Mars running on Monogame. It's something I've been planning to do for a long time, but there have always been more important things to do. After a great reception on Steam Greenlight, I had enough motivation to dive into something technical.

What's new this fortnight?

My aim is to release 39 Days to Mars on a number of different platforms, ranging from Windows to OUYA. To save re-writing the same code over and over for each different device, it's common to use a game engine to handle the low-level code. For various reasons, my engine of choice is Monogame.

The problem is, I started writing 39 Days to Mars in XNA. Hindsight is a wonderful thing, but from version 4.0 Microsoft dropped support for XNA. A lot of people, along with their experience, are slowly drifting away to other frameworks. It was time for me to do the same.

Was that all?

Porting a game to a new framework is usually a pretty messy and time consuming business. I was expecting an uphill battle with thousands of bugs and mis-matched function calls. I'd heard frustrated, hair-pulling stories about porting the content pipeline, and tales of woe about terrible framerates.

I downloaded Monogame, followed the setup instructions, and within 90 minutes I had 39 Days to Mars up and running on the new engine.

That was it?

Colour me surprised.

It looks pretty much identical.

Puzzles : 3 co-op / 2 stand-alone
Objects : 8 tutorial / 9 ship

The cracks appear.

Unfortunately my optimism was a little short lived. I'd forgotten about the level editor, which has been getting more feature rich (and more useful) each week. It looked a bit like this:

Now it looks like this:

The interface uses a library called Nuclex GUI, which is great to work with, but unfortunately has no support for Monogame. This means I'll have to find another interface library to use instead.

I also seem to have hit an obscure bug with the media player class, which causes the game to crash every so often when I try to play the background music. Apparently there's a recent patch for this issue, but that means compiling Monogame from source. It's not hard, just time consuming.

Overall, though, I'm very pleased with the switch to Monogame. For the most part it went smoothly, and it means I'll soon be able to get MacOS and Linux builds up and running!

Watch this Space

Over the coming weeks I'll be diving into the monogame repository to try and solve my audio issue, and looking into alternative GUIs. I've had a few suggested to me already, so I have somewhere to start.

If you'd like to keep up with the development, remember to follow @philipbuchanan on Twitter. You can also subscribe to this blog via RSS or watch for updates on Facebook. And as always, if you've got questions or comments just leave them below.

Post comment Comments
Gn0meSlice - - 568 comments

Your posts are always such great reads. Even as a non-developer I can appreciate them. Thanks for sharing!

As a side note, will you also be considering the PlayJam GameStick as a platform? Not sure how easy porting is from OUYA, but they're both android consoles.

Reply Good karma Bad karma+1 vote
PhilipBuchanan Author
PhilipBuchanan - - 17 comments

I'm glad you enjoy reading the updates, and that they're pitched at about the right level :).

I've never heard of the GameStick, but I'll certainly read up about it. At the moment I don't think I'll be adding any new platforms to the release list, but if it looks viable then I might consider it down the track.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: