MMO viability
#1 Members - Reputation: 671
Posted 30 August 2012 - 05:03 PM
Is it possible on an Amazon Web Service EC2 Micro-instance?
Specs:
613 MB memory
1 EC2 Compute Unit (?)
I/O Performance: Low
And $0.020/hour ($14.4/month) after first year free.
Y̞͎̗̏ͨ̂͠o͎̩͓̠͗͘u̠̠̼̪̱̲̓̆͆̌̓̑ͦ
ͨ̌̀w̫̟̖̖̞ǐ̯̱̪͖l͂ͧ̈́͂́ͯ҉̹̘͔ͅl̜̲̘͍͖̈́̇̑͐͑͋
̝̖͐̎͊ͅb̠̟̭͉̘̭ͭ͜ͅe̙͇̝̖ͫ
#2 Members - Reputation: 671
Posted 30 August 2012 - 05:07 PM
Edited by polyfrag, 30 August 2012 - 05:07 PM.
Y̞͎̗̏ͨ̂͠o͎̩͓̠͗͘u̠̠̼̪̱̲̓̆͆̌̓̑ͦ
ͨ̌̀w̫̟̖̖̞ǐ̯̱̪͖l͂ͧ̈́͂́ͯ҉̹̘͔ͅl̜̲̘͍͖̈́̇̑͐͑͋
̝̖͐̎͊ͅb̠̟̭͉̘̭ͭ͜ͅe̙͇̝̖ͫ
#3 Moderators - Reputation: 7496
Posted 30 August 2012 - 06:07 PM
In other words: you're leaving out basically all of the relevant details that we'd need to know to answer your question.
Some "MMO" games could probably live on a single micro instance, because nobody plays them and nothing computationally intensive is done in the game. Some MMO games have entire floors of major datacenters to themselves because they pull so much traffic and computational power.
Basically, we need to know if you're trying to hitchhike 15 miles or circumnavigate the globe on your own yacht.
[Work - ArenaNet] [Epoch Language] [Scribblings] [Journal - peek into my shattered mind]
#4 Members - Reputation: 671
Posted 30 August 2012 - 06:28 PM


There will be no pathfinding. Units will turn left to walk around obstacles.
The units and buildings will be divided up based on their tiles for quick look-up collision detection.
[edit] I think it won't have more than 32 players at a time.
Edited by polyfrag, 30 August 2012 - 06:42 PM.
Y̞͎̗̏ͨ̂͠o͎̩͓̠͗͘u̠̠̼̪̱̲̓̆͆̌̓̑ͦ
ͨ̌̀w̫̟̖̖̞ǐ̯̱̪͖l͂ͧ̈́͂́ͯ҉̹̘͔ͅl̜̲̘͍͖̈́̇̑͐͑͋
̝̖͐̎͊ͅb̠̟̭͉̘̭ͭ͜ͅe̙͇̝̖ͫ
#5 Moderators - Reputation: 7496
Posted 30 August 2012 - 06:43 PM
[Work - ArenaNet] [Epoch Language] [Scribblings] [Journal - peek into my shattered mind]
#6 Members - Reputation: 1565
Posted 31 August 2012 - 05:18 AM
[edit] I think it won't have more than 32 players at a time.
32 players isn't particularly massive. Do you mean 32 players can interact in realtime, but the game is 'massively multiplayer' in that is has non-realtime stats / game elements that allow more than 32 players to interact in some way?
#7 Members - Reputation: 1938
Posted 31 August 2012 - 07:10 AM
In other words, they are exactly the opposite of what one wants in a game with tanks shooting one at another. You may be able to get a big CPU burst for some hefty compute task that you need to do, but it may take half a second or so before your instance gets scheduled. This is not something the normal users of a micro instance worry about, and most of the time instances do nothing, so it's no issue (that's how Amazon can keep the prize low and offer a 1-year free trial).
If you do (and expect) the opposite of that, not only you will be unhappy, but Amazon will be unhappy too, which might result in them pulling the plug without telling you.
Edited by samoth, 31 August 2012 - 07:13 AM.
#9 Members - Reputation: 629
Posted 31 August 2012 - 11:13 PM
#10 Members - Reputation: 1050
Posted 01 September 2012 - 01:53 PM
And just specifying that your internet is cable means nothing. That could be 0.2mbit/s down or it could be 20mbit/sec down, you could have a 20ms ping, you could have 300 (which would be very very bad for lag free). You do seem the be the master of asking questions that need numeric data and not giving us that data... Hell you still haven't given us information on if its just 32 players having a skirmish or theres a huge list of player stats etc, what is the server for?
Edited by 6677, 01 September 2012 - 01:57 PM.
#12 Members - Reputation: 1938
Posted 03 September 2012 - 08:12 AM
What you want is a more or less predictable, constant simulation rate and a more or less predictable network load (and latency). It does not need to be hard realtime, it does not need to perfect, but you should be sure that your server doesn't have hiccups of 0.2 to 0.5 seconds every 2-3 minutes (as a virtual server may very well have). The cheapest available root server can handle that for 32 players (for 320, or even 3200, if you want).
With a virtual server, you usually have something like 50 virtual servers (of which probably 30 are porn websites) running on a 8-core machine under the assumption that nobody will be needing big power anyway, and if someone needs a burst, it's ok for the others to be stalled for half a second or so. That stall doesn't really matter when you run a (porn) webserver, but in return the service is very cheap, which is good.
Now if you run a game where one player fires at and kills another during that period, it matters big time. That's why you do not want a virtual server.
You also want to be sure that when a lot of updates need to be sent (when 10 tanks dogfight in a small region) your network bandwidth isn't suddenly filled up. Again, the cheapest root server can normally handle this. If your game is kind of reasonable (say, sending 1-2 kiB/s to each client) then that is just ridiculously little compared to what fits onto an ethernet wire -- assuming a kind of poor MTU of 768, that's around 86 packets on the wire. On a modem or a cheap DSL with an upstream speed of anywhere from 50 to 500 kIB (and multiplexing into ATM or PPP or PPPoE or both), this is another story.
You will need some form of lag compensation anyway, since even under optimal conditions you have round trip times anywhere from 50 to 100 milliseconds on the internet. Now imagine how unplayable it becomes when your dialup chokes and adds another 500-600 ms.
Edited by samoth, 03 September 2012 - 08:15 AM.
#14 Members - Reputation: 1565
Posted 03 September 2012 - 12:10 PM
There's nothing wrong with asking for ballpark estimates, especially early in a project and even more especially in a subject area you aren't deeply familiar with. But yes - the more information the better. I suspect though that the OP is trying to decide what direction to take the game design in based on what's feasible for him to run - which is perfectly sensible.Where are the players that are not ingame. You've still not given us ANYTHING to work with
OP: turn-based could work fine with virtualized hosting - I'm thinking of the server being a php script and a database. For turn-based, you can avoid most of the complexities Samoth has kindly explained for you above.
#15 Members - Reputation: 629
Posted 03 September 2012 - 02:51 PM
With a virtual server, you usually have something like 50 virtual servers (of which probably 30 are porn websites) running on a 8-core machine under the assumption that nobody will be needing big power anyway, and if someone needs a burst, it's ok for the others to be stalled for half a second or so.
This was true several years ago, but not any more. CPUs now have virtualization support built into the hardware and much better operating system support. On a decent VPS you typically get a certain amount of dedicated CPU power/time as long as it is being used (often you will get a dedicated CPU core) with the ability to burst beyond the dedicated when the other virtual servers are idle. If your server is using a lot of CPU, none of it's power is available for bursting to the other servers. So while there is the potential for some short delays, it would typically happen when a game starts, not while a game is running.
The only real issue is disk IO which is not likely to be a big problem for a game like this.
I wouldnt suggest trying to run a Counter-Strike server on one, but it should work okay for an RTS. RTS games are usually fine with an occasional blip anyway.






