The pain of an emulator developer

For several years I’ve been developing emulators for MMO games and the same issues keep re-occurring. At some point they are a total pain but they could have been avoided. So today I’ll share you the most common problems (well my complaints), some dos and don’ts which an emulator developer might run into or can use.

  1. The non-contributing contributors that want to help you but actually do nothing. We all have encountered these fan-boys at least once somewhere. These guys think they are pro developers and do something ‘good’ for the team but it’s the opposite. They actually slow down the programmer or real developer due to their ridiculous questions which are common sense for most of the programmers. A good tip to avoid these people is to make a simple ‘test’ or ‘exam’ to filter out these people. They aren’t an asset to you or your team and will only slow you down so keep this in mind! Do not PM someone that you want to help them if you don’t know anything about the topic, you’ll most likely end up on their people to ignore list.
  2. Keeping-up with the latest version of the game (it’s not a must but nothing wrong with that). All your dedicated fans of your server would most likely want all the latest features on your own server which are available on the game you’re emulating. I usually run into problems with packets changing their structure. Especially if you don’t know the full structure of that certain packet, I’ve lost many hours in logging packets and figuring out the structure. If you’re lucky enough you’ll encounter a string-based packet and it wouldn’t be hard to figure out but if it’s binary you’re in big trouble. I edited an existing tool to help me analyse the packets and I suggest you do that as well if you’re planning to make an emulator.
  3. The rivals (if you’ve got any). Oh god, this pissed me off the most during the years of development, you always have this guy or these teams which think they are better then you, especially the bodgers. These guys think they write an super stable emulator while it’s doomed to crash after a few hours once it’s started up, don’t listen to them, they are a waste of time. Just take a look at the problem and try to solve it your own way but keep in mind that you should be open to criticism because some people might actually be better as you and just want to help you out.
  4. There is a lovely source available released by mister XYZ or team XYZ , I should use it! STOP, using public source is not done. We all know this, there are some ‘good’ bodged server files available on RaGEZONE, do not use them unless they come from a good source and you have double checked them. I always re-write the public server files due to the mistakes that were made by the person who bodged the server together. Especially when it’s an inexperienced person who thinks he or she is a super programmer. There are many mistakes that can occur here but the most common ones are insecure servers, incorrect handling of the sockets and wrong usage of the database. Security is important, if you don’t know anything about it then look up a recent article about the thing you want to achieve.
  5. Waiting for the perfect team member(s) or helpers. I’m sorry to say this, I’ve done this for a long while and you’ll never find them. You should start on your project because I wasted 2 years just sitting and searching for the person. I eventually gave up because I knew my skill would be good enough. But what if I hadn’t had the skill what would I do? Well I would just try to learn the basics to bodge a server together. But but Bodging is bad right? Well yes, it’s bad but most great servers started by some bodged code that has been re-written. You just need a starting point. People will join in once you’ve got a base to show them, this doesn’t apply to emulator only but to all kind of projects.

Here are the 5 things that I just wanted to talk about for people who want to write or are writing an emulator, it’s up to you what you do with it. If you want to start a server and there are some sources available just play with them and have fun but just keep in mind that you have to check everything make sure it’s good to use these sources. Running into trouble? Well you can always use the help sections for the game to get support.

~ CodeDragon