computer science

7DRL Takeaway Lessons

I promise this will be my last 7DRL post, but I thought I should record some thoughts I’ve had about it now that it is over.

This post could alternately be called “Why I Will Not Use MonoGame in the Foreseeable Future.”

First, the motto of MonoGame is “Write Once, Play Everywhere.” This sounded promising to me, because my first game had issues deploying almost anywhere. Of course, what they mean is that you can play anywhere supported by Windows.

There are ways to get builds onto other platforms so that Mac and Linux users can play, but I only had 7 days, and I’m not a trained computer scientist, so that wasn’t going to happen. This was a little frustrating, and also one Windows user already complained they couldn’t get it installed.

Second, MonoGame is effectively a re-implementation of XNA 4. Unfortunately, some of the pipelines (especially with an up to date Visual Studio) are broken and require hacks to work. This caused major problems with sound. So much so that I scratched all sound from the game.

I know that with enough time, I probably could have gotten this working (because lots of games made with it have sound), but I couldn’t waste the time in those 7 days to fight with it. This was frustrating, because one of the main reasons to use MonoGame was to make all of that streamlined and easy.

I also felt trapped into using Visual Studio as an IDE. This is certainly a fine IDE, but I’m most comfortable with Sublime Text 2. Switching editors wastes a lot of time, especially when you “downgrade.”

By this I mean VS doesn’t have half the great features of ST2 (including my most used feature: multiple cursors). In retrospect, I should have edited in ST2 and built in VS.

All this being said, MonoGame was a good enough framework to produce a full working game in 7 days, so I can’t complain too much. Also, if I were part of a larger team with a longer time frame, many of these issues would disappear. So I admit these complaints come specifically from the 7 day issue.

If I do this again, I will almost certainly try Cocos2d-x. It looks like this will fix all the complaints I had. First, Cocos2d-x is open source. This means I can actually see what the engine is doing if I need to! What a concept.

Second, it is C++, so it will deploy across platforms much easier. Lastly, it isn’t in some transition period like MonoGame where content management seems to use outdated, unsupported pipelines. I’m also more familiar with C++ than C# which would have solved a few headaches.

2 thoughts on “7DRL Takeaway Lessons”

  1. Does Python not have a sufficient gaming framework? I know they have PyGame for board games.

    I can vouch for Wine not being enough on Linux to get the game working (very easily). Maybe with some struggling I could have gotten it booted. Booting into Win7 works though. Win XP didn’t, but that isn’t surprising.

    Also, I agree, VS is awful for writing, but great for building on Windows. I never write anything using it, but if I need it to build, I’ll just open it and do it with one click.

  2. You can try GradHack from my github page. I used PyGame, and never realized there would be issues when working with it, because it worked out of the box on Ubuntu, Mint, and CrunchBang.

    In retrospect, I did something dumb. PyGame uses SDL, so to make an ASCII/terminal roguelike I needed to emulate a terminal through this. This was done through a module called Pygcurses.

    To run a PyGame game, you already need both Python and PyGame in the appropriate paths. Which is a slight headache for someone that just wants to play a game.

    Stupidly, I also used Python 3 to make a few things cleaner. None of this posed an issue in Linux, which just knew where everything was and how to build it all. I think with Windows the pathing is stranger and it couldn’t figure out how to put all the pieces together.

    One way to simplify all of this would have been to use libtcod rather than PyGame which is basically a python ncurses. But I hadn’t researched that before starting.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s