Merchant Seas

Top  Previous  Next

Mike D, one of our multiplayer experts, has created a good looking 2D MMO game.


Q: How much time did you spend working at the game until now and when do you plan to release it?

A: I started on Merchant Seas in early September, shortly after releasing the first version of my previous multiplayer project, Powerplay.  That puts it at close to 5 months.  I'm taking graduate classes and working 20 hours a week, so it hasn't been 5 months of non-stop development.


It's always hard to predict release dates, but I'd like to release a version of the game in March so that I can get some initial feedback and identify issues that are only going to show up with a decent number of people playing at the same time.  I can then add features and release newer versions as I continue to develop.


Q: One of your projects was featured in Aum only a few months ago. What is the secret of your productivity?

A: I feel lousy when I don't do something productive with my free time.  I can play video games for hours and have nothing to show for it when I'm done.  If I'm developing a game, though, I'm always learning new things and hopefully have a portfolio project when all is said and done.


I haven't always been so productive, though - I've been using GameStudio for around 7 years and I'm only now getting to the point where I can actually finish my projects.  I've learned to set realistic goals and milestones.


Q: Why did you decide to create a free 2D MMO game?

A: I guess there's actually three parts to that question.  I decided to make an MMO since I had been working with MySQL for a couple years and felt fairly confident that I could use it to make something large scale.  I also wanted to push myself farther after completing my previous multiplayer project.


I went with 2D for several reasons, but mostly out of necessity.  I wanted to create something with a consistent and professional look, and it's just really hard to do that in 3d with a very limited budget.  I found some free / cheap 2d resources ahead of time that were perfect for the style I was going for.


I'm making it free because I want as many people as possible to play the game and give me feedback.  It's hard enough to get people to try low-budget games even when they're free.


Q: How many players will be able to play Merchant Seas at the same time?

A: That's the big question, and I probably won't know for sure until the first release.  I'm optimistic though, because MySQL is more than capable of handling a lot of queries in very small intervals of time.  The game code is very friendly in handling queries that take a long time, so even users who are in a different country than the server may be able to play without being aware of lag. I've implemented an adjustable cap on the number of people allowed to be logged in at the same time, in case I do run into problems once > X number of people are playing.


Q: I know that you are using a database together with the free MySQL plugin created by Joozey. Did you have any problems with it?

A: Joozey's plugin was surprisingly functional from the first time I used it.  The one big problem we ran into was that Gamestudio was essentially "frozen" while the queries were executing, which caused the game to stutter.  Joozey started looking into a solution using separate threads for the MySQL queries, but we started getting random, unexplainable crashes.  After a lot of debugging and head-scratching, I was able to finish the idea that Joozey started, and Gamestudio no longer stutters while the query is being run.


Q: How do you do dynamic weather transitions (rain, clouds, day / night) in 2D?

A: I have a couple of fields in the database, one that holds the current game time, and another that holds the current weather.  Every few minutes, a cron job runs that increases the time and randomly changes the weather.  Everyone in the game will see the same changes - that means if it's nighttime and raining, it's that way for everyone.


The clouds, rain, and darkness are just screen-sized images that I fade in and out, and manually animate using loops.  It hasn't caused any frame rate issues for me, but I have options to turn these animations off if they cause problems for users with older computers.


Q: How does the “dynamic could layer” feature work?

A: In the database, the weather can be "clear", "light clouds", or "heavy clouds".  I use this setting to determine how transparent the cloud layer should be. To animate them, I have several images that I scroll from left to right across the screen.  When an image moves entirely off the right side of the screen, I simply place it back at the left and repeat.  It's completely seamless.


Q: What advice would you have for a beginner to game development?

A: Don't do an MMO!  Think of the smallest, simplest game idea you can possibly come up with, then try to do that really well.  It's always better to have a small project and finish it than to have a large project and abandon it.


Thank you a lot, Mike.