It looks like you're new here. If you want to get involved, click one of these buttons!
I was wondering if there is hardware powerful enough to support MMO game which is HUGE in the terms of World and amount of players in the same server/area. By support I mean to make it run nice and smooth. Also, the game would be built using some advanced game engine like Frostbite 2 for example.
If you could provide me with some good material to read or a source about the most advanced servers then I would appreciate it!
i7@4.2Ghz, 12GB@1600Mhz, GTx580 SLi, 1920x1080@120Hz, 7.1 Creative Gigaworks S750
162 Original PC Game collection. Surprisingly not a virgin.
Comments
It depends what you are expecting and how much "twitch" there is in the game (network traffice relaying the twitches of each client out to all other clients in the area) and how much each object's presence affects each other object (affecting the "big O" of the calculation).
The folks in Eve for example are used to fleet battles with hundreds or even thousands of ships active in a single massive battle and have just introduced time-dialation mechanics that allow the server to fail gracefully by slowing time in the game to keep up with all the computations rather than just crashing and burning when there's more data to process than can be handled in a single tick of the game clock.
I understand.
So, if the game would be based on FPS aim and shoot combat system, this would be even more challenging. I would think that at one point in time the technology will be advanced enough to support even the largest "twitches".
Thank you for the reply.
i7@4.2Ghz, 12GB@1600Mhz, GTx580 SLi, 1920x1080@120Hz, 7.1 Creative Gigaworks S750
162 Original PC Game collection. Surprisingly not a virgin.
The question is whether its cost effective to support large complex events when they are uncommon and games where that happens may not be mainstream enough to afford the top servers if they commonly have large scale events.
Not everything in computing can be solved by throwing more CPUs at the problem. If a calculation is O(N2), such as a naive brute force count for each character calculating how many other characters it sees, then 10 times as many players requires 100 times as much computing power. You get nowhere near as much benefit from Moore's Law as you would expect.
A lot of times, you can take O(N2) problems and cleverly simplify them to O(N) problems (where 10 times as many players requires 10 times as much computing power) by tweaking the algorithms or mechanics of your game to get rid of complex interactions. However, in the end, you are going to be at the mercy of the single more complex interaction out of the whole game.
The worst algorithm I have personally have had to work with is a search of all the possible ways that a group of organisms could be related - it's a double-factorial calculation - takes a fraction of a second for 4 or 5 individuals, but by the time you get up to 100 or so, the combined computing power of every computer ever built couldn't do it even if given all the time the universe has existed.
lol
The hardware problem is usually not on the server side. It just has to take in account all the entities, which are merely codes and deliver it to all the different adresses ( clients/players ). Bassically this is ( just ? ) a ( huge )database.
Our computers ( the clients ) on the other hand have to take all the entities and put that on the screen, that is where the hardware has it's hard time. That is why lag is important, that is why FPS is measured.
EVE can have massive players because, for instance, it does not have an eleborate 3D background as does WoW, Rift, Lotro. And in huge battle, nobody will notice the system, diminish graddually the detail level of the objects. In other MMO every weapon, every armor changes the "naked" puppet of every players on the screen. All that has to be "draw" in the position on the right spot each time the camera ( player ) changes. You would not be surprised if the game engine took shortcuts, do you ? 3D which isn't 3D ( mipmapping ), background blurring, ...
If that entity consist of too many elements, the client will not be able to put that on the screen in a reasonable time and will hamper "smooth" playing. I was not surprised that SWTOR used that argument to answer the call for better graphics. I was surprised they admitted to have forced it on the client side.
Rated M for Mature - May contain content inappropriate for children
Typical bottlenecks are server cpu, server memory, server efficiency, dynamic load adaptation servers-side*, bandwidth, client CPU, client memory, client GPU and client GPU memory (VRAM). A failing in any of these areas will reduce perceived performance on the client.
I don't know much about modern engines designed for MMORPG use that can handle all of these well.
One aspect of this is game design. I doubt there is any engine technology out there that can keep up with poor design. It's always possible to produce a game that overloads server and/or client and performs poorly. Resource limitations have to be balanced with performance expectations. This is doubly true if the game is intended to run client-side on older hardware.
Sorry, I'm not more help. Possibly the best way to find out what's out there is to look at games which do meet your expectations and look into the technology they run, or look at games that fail in these areas and remove that tech from your list.
* a system where a server can bring online additional physical systems to handle load, and do so on the fly without interrupting gameplay.
The current way msot companies do it is with Points of interest, so you as a character only loads up world details (players, NPCs, building, and so on) within a certain distance of say two zones in every direction.. This helps reduce the load quite a bit.
Check out some of the below middleware network packages, some are jsut designed to work with Unity 3d but other work with anything. Might provide a bit of reading for you.
http://www.exitgames.com/
http://www.jenkinssoftware.com/index.html
http://muchdifferent.com/?page=game-unitypark
A huge open world is limeted by the client connected to it and db operations, anyone could make a RL sized world whitout any problems realy, its just ground textures .. problem is non-static items. the more you put into a world the worse the load becomes on both server AND client. were clients are depending on low tech hardware limmeds, servers are simply contrained by the amound of clients connecting.
nobody makes rl worlds in single player due to the freaking amound of work it takes to make it, you cant just auto generate everyting and its impossible in mmo's (due to client db interaction) you would need google's entire serverpark just to keep up.
dont focus on HUGE worlds..focus on interactive fair worlds. nobody realy wants a huge world, everyone wants next gen multi layer interactive open world.
I don't think this would be a good idea. Even creating such world would fall flat on it's face. Empty, barren ugly wasteland is all it would be.
Concentrated areas allow for more detailed environments to be implemented in a smaller scale with better graphics.
The "hugeness" of the world can be achieved through other ways, in my opinion. Clustered servers, shared content, world vs world interaction. Possibilities are many.
Realistically, I'd have to agree entirely with an earlier poster.
The biggest hurdle you'd have to handle is a player's own hardware.
The game would have to be 3D to support more than a small amount of players on screen at any one time, and the models would have to look somewhat decent, even at a "wow these are some awful graphics" level, which means a specific polycount and texture resolution.
The question isn't "Can the server handle that many players in a small area at one time?" but can the PLAYER handle that many MODELS on their screen at any one time?
If you see a massive army of 1000 players, you are either going to have to have some lower quality graphics or some genius programmers who can cram in performance. Even so, you are limiting the playerbase based on a minimum requirement for graphics. Whether it is GPU calculating all those polygons animating or the CPU calculating all those commands, you're looking at more of a problem on the player's end than the server's end, by far.
Can a single server hold [X] players on screen at one time? Absolutely, with ease, as there is no "screen".
Can a low end or high end computer maintain 30-60+ fps while [X] models are on screen at one time?
X will bottleneck on the player's end far before it bottlenecks on the server's.
You can gauge the technology by looking at Battlefield 3. As far as I know, it can still be playable with 64 people in the same server with vehicles and physics, but you already notice how less sharper the controls are and how "laggy" the aiming is compared to FPSs with less people in the same server (and optimized for smaller amount of people).
You can always ramp up the maximum players allowed in the server but then it becomes a matter of how far you can do that without making the game unplayable. For example FPS games are very allergic to performance issues.
On the other side of the spectrum, Eve Online has been optimized to have as much players in the same area as possible. You have no direct control of your ship, no physics, no real collision detection, no aiming and no action-combat elements like some of the newer MMORPG titles boast. You ship doesn't even care where it is facing. It only has a location in space and speed towards some direction (if any). In short, very simplified - because it has to be.
If you look at heavily instanced games such as DDO, Vindictus and Guild Wars, they can pull off many things in gameplay which are impossible for a game like Eve. Action combat, active blocking, active dodging, interrupting enemy skills, collision detection, physics, sharp controls... It is all possible because of the smaller player numbers.
I skate to where the puck is going to be, not where it has been -Wayne Gretzky
Related to this is network transport.
TCP connections are supposedly 100% reliable unless the connection drops. However, they are prone to lag spikes due to packet drops and network congestion issues. In adverse conditions it's very tough on a game connection, especially one that requires near to real-time sync (like FPS) because data may sit in a buffer for several seconds. In general TCP is terri-bad for realtime sync first person shooter games. It is also hard on tab-target combat games if the client is designed that it must stay in sync every server tick because that client will studder (freeze and pop) when sync isn't maintained. Only on games where client / server sync is loose (WoW is like this, sync can lapse for several seconds without effecting player movement) does TCP transport work very well.
UDP connections aren't even true connections. One side opens a sender, the other side a receiver, and the source throws packets to the receiver. Packets can come in out of order, or fragmented (broken into pieces that need assembled), and some packets never make it at all. This is fine for data that is very time sensitive because it gets there quickly, but it is not reliable meaning that important data might not ever get there. Also there are issues with traversal of NAT (network address translation) routers because the client side listener if behind a NAT won't work unless there are forwarding rules created, either automatically, via UPNP (client based router control), or manually.
In general UDP is good for first person shooter games, but the server side has lots of extra work and the client (or the player) has to be network saavy enough to setup port forwarding on their home network router if needed. Also, players with low ping connections to the server may have significant advantages due to their client being more closely in sync with the server.
Pardon slightly OT, but if considering an engine and the target application is a realtime sync shooter, this is something worth looking into.
Are there any issues packet or graphics overload that cannot be solved by simply waiting for the next generation of hardware / next round of upgrades to the network infrastructure?
Or are we on a treadmill of expectations where you can't animate more characters on a client's screen at a time because as the hardware improves, the customer expectations for per-character animation complexity rise to consume all the new resources?
I really don't understand what you are talking about with Battlefield 3.
The controlers and aiming are all based on your own computer, even if the server lags. Unless you get rubber-banding, it is as if you have 0 ping.
The hit detection also is client-based, so as you get 0 ping on your screen, your hits ALSO have a ping of 0. This creates a "perfect hit detection" for all clients, no matter the lag to the server.
The downside is that you can die AFTER you are safe, due to other people's lag to the server. You can die in ties quite often because on both player's screens they won, but the server is doesn't care who was *technically* faster. IMO it makes for a more realistic fight when you *tie* as in a normal server those 250ms (200ms for the lagger, 50ms for yourself) arent even a single second, so it's more realistic you both get riddled full of holes than the "faster" one.
So really, there isn't ANY lag when SHOOTING, aiming, or "controlling" your character. The lag is only intense when you die. As for the server? It just holds what other's do (walking, movement, animations) and barely that. It is irrelevant though how they walk, where they move, or what they animation-- because as long as you hit them on your screen, they die as if it's 0 ping.
So really, unless you mean a fps drop, I am confused. I don't get a fps drop because I have great performance on BF3.
It's quite innovative, even if a bit annoying sometimes.
Maybe back when TNT2 16MB graphic cards transformed into Radeon HD 5 series 1GB gpu monsters, yes.
Now? I don't really think so.
I've notice a very large hardware slowdown in development lately. It's now actually more a matter of developer and game performance more than it is about hardware. Some games actually look WORSE now than they did 5 years ago, because they are focusing on performance. (Also because they are porting everything from ugly consoles...yuck.)
IMO, Battlefield 3's innovative client-side hit detection is something worth looking into.
They have no more cheaters/hackers than any other game, yet do everything (hit detection) client-side. Sure it leads to dying in awkward places or "bullet ties" but it's actually, IMO, extremely innovative and a welcome technology.
I am not sure if FPS-style MMORPG's do this or not, but this is something they really need to look into. Even some of the laggier MMOFPS's could benefit EXTREMELY from client-side hit detection.
Also, I'm sure BF3 has a soft/hard cap for lag. If you lag more than 200-300ms, I'm sure it wont be pretty for anyone involved, and I am sure it detects cheaters abusing lag (1000+ ms) to play.
Here's a devblog of the hardware EVE Online was running in 2008: "my node was equipped with the following..."
Here's a Texas Instruments article on the drives EVE Onlien uses: http://www.ramsan.com/files/download/631
A Microsoft HPC article on EVE's server software: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000002990
A more recent devblog on the hardware: http://www.eveonline.com/devblog.asp?a=blog&bid=885
There isn't a "right" or "wrong" way to play, if you want to use a screwdriver to put nails into wood, have at it, simply don't complain when the guy next to you with the hammer is doing it much better and easier. - Allein
"Graphics are often supplied by Engines that (some) MMORPG's are built in" - Spuffyre
What I mean becomes apparent if you have played games like Counter Strike, Unreal Tournament and Quake which are "sharp" compared to BF. There is no lag to dying in these games. The faster guy wins. In BF, in a close range battle, you don't even aim at your target but where he will be 0,3 seconds from now. I am constantly anticipating lag. Significantly more than in other games.
I skate to where the puck is going to be, not where it has been -Wayne Gretzky
I read all of the posts in this thread and you guys brought some very good information. I will educate myself more on all of the subjects and look into some most advanced technology that is available.
As to BF3, yes - the system seems to work very well. I never have any issues with aim delay or lag, which is surprizing as all of the maps are extremely detailed, not to mention that most buildings and objects on the map are destructible, all this with amazing graphics and 64 players on the same map.
Thank you for your time.
i7@4.2Ghz, 12GB@1600Mhz, GTx580 SLi, 1920x1080@120Hz, 7.1 Creative Gigaworks S750
162 Original PC Game collection. Surprisingly not a virgin.