running server for browser mmorts in php or c++

Started by
4 comments, last by Tribad 11 years, 11 months ago
Hi all,

I want to write a simple mmo browser game. The problem that is currently troubling me is deciding on the programming language to code the core of the server -> the part that keeps track of everything that is going on in the game(such as when the attacks are arriving) Ideally, I would like to have it in php since all hosting providers run it. The problem is that php is a scripting language and I don't know how the speed limitations are going to affect it when it comes under heavy load -> I want to support as many users as possible. On the other hand, If I decided to use c++, I don't know if hosting companies would actually allow me to install it on their machines.

Please help me if you know what is usually used for such problems.

Regards,

Dan
Advertisement
You can most definitely run your custom executable on a hosted server. You would either rent a shell (allows you your own restricted portion of the server), or you would more likely simply rent a co-located box, meanining you rent the whole server itself for like $100-200 a month, in which case you can do whatever the heck you want on it.

I dont want to be discouraging at all, I wish you the best of luck, but if you arent aware of these rather simple concepts, I think you might want to work on the basicssome more before tackling an MMO.
You certainly can get hosting that allows C++ executables, but it'll probably cost you (potentially quite a bit) more than a simple web-host.

Can you be a bit more specific about your requirements?

  • How many players are you hoping to support? How many of them concurrently, and how many in total?
  • You've said the game will be an RTS, but how many units are likely to be in a battle? In the whole game? How complex are the actions they can take?
  • Do you have an idea of how much data you'll actually need to send to and from the server?

I would suggest that if you're having trouble answering these questions and don't have a good idea of where to start with solving them that you might want to try something a bit simpler first -- restrict the number of players, and only give them a couple of units each -- once you've solved a smaller scale problem of the same type you'll likely be in a much better position to try to implement this type of game.


Hope that's helpful! smile.png

- Jason Astle-Adams

In the world of cloud based computing, you can do a ton of on demand computing for very reasonable pricing.

You can go with a micro edition of Amazon EC2 which is a virtual computer, just as if you had your own server. It's effectively free for a year.

Then there is Microsofts Azure or Google App Engine, which are cloud based as well, but are more like app servers than virtual servers. You deploy your code into the cloud, and the cloud grows or shrinks based on the requirements. Neither supports C++ however. And if I was to interject a personal opinion, Google have really done a crap job running GAE, so stay the hell away.

Then there are the cloud hosting environments like Heroku and Joyent Cloud, both of which can be started for free.


Then of course there are literally thousands of dedicated hosting companies, as well as VPS ( Virtual Private Servers ), which sell you a portion of a running server. My experience with VPS's have been freaking awful. Whenever I had a spike in resource usage, they choked or throttled. Your mileage may very. This end of the spectrum however starts requiring a bit more of a pricetag commitment. Until you get a certain amount of traffic, these are going to be much more expensive than usage based servers. As traffic scales up however, the cost equation can often swing in favour of dedicated hosting.


You will not find shared hosting ( you know, the 5.99$ a month GoDaddy type stuff ) that supports C++, or any console/root level access.


Coincidentally, C++ for the server side is probably a very bad idea. Perhaps you should read this post, about a Node ( Javascript ) based server, coupled with an HTML5 based client used to create a browser based MMO. That would probably be a very good place to start, given you have a full body of source code to work from. There are a number of services ( like the one linked above ), that enable you to host Node, many of them freely available for now.
Oh, I suppose I can/should add.

Personally, for all my server needs I use SoftLayer cloud computing. It's a lot like EC2, but a hell of a lot more simple, both in terms of setup and billing ( trying to figure out your EC2/S3 costs with Amazon requires a 5 year degree in accounting! ).

This solution is probably over kill for you, at least to get started, but once you start scaling up they are a very good option.

I have 8 different custom application servers, a custom email server as well as multiple websites running through softlayer and haven't had a single hitch on their end. Plus is comes with something like 2TB outbound traffic a month, so I can weather massive traffic spikes ( like Lifehacker or Slashdot mentions ) without batting an eye. Plus there support has been astounding. Every single time I have called support ( perhaps 6 times in 3 years ), I have had a first line tech on the phone within minutes, even at 4am. Only once was did my call require escalation, and in that case I had a senior tech on the line within 2 hours, who spent 3 or 4 hours with me resolving the issue, all without charge to me. Their service is astonishingly good. Of course, they aren't the cheapest option, but then from experience, I rarely find the cheapest option to be the best choice.

Just thought I'd put that out there for others looking for dedicated hosting advice.
I rent a root-server where I can install whatever i want.
I build a web-server from scratch that should later directly communicate with the simulation process. So I have a direct communication from Web-Pages to the simulation.
All is and shall be written in C++ and runs under Windows and Linux.

So I can say. Yes it is possible and it is fast.

Now I am on the way to create the simulation core. But that will even take some time to complete.

This topic is closed to new replies.

Advertisement