Results 1 to 10 of 163

Hybrid View

  1. #1
    Player Vhailor's Avatar
    Join Date
    Feb 2012
    Posts
    761
    Character
    Deionarra Eidolon
    World
    Hyperion
    Main Class
    Conjurer Lv 50
    Quote Originally Posted by KisaiTenshi View Post
    You only get to pick 1:

    a) Tiny regional servers, low latency. Enjoy having servers of 32 players glued together by lobbies/hub worlds and finding out that everyone lives within 3 miles of each other, because the game is otherwise unplayable.

    b) Large global servers, high latency. Enjoy exploring large worlds with thousands of players, but in order for all players to not get an unfair advantage over each other, all commands are time synced to 3 seconds to allow even players in Russia, Brazil and Australia to play on servers in Japan and California.
    Or.... (c) don't excessively rely upon server-side execution of every action. Latency is 'felt' in FFXIV (and FFXI before it) far more than any other title I've ever played. This is something SE can change, and it's of particular importance since a key reason for GCDs in the first place is to minimize the feeling of latency. They're failing in that regard with FFXIV because of their network code. Making this change could also ease the amount of data transmitted between client and server, which could potentially allow SE the ability to reduce the actual GCD.

    Also, I should point out: FFXIV is a cooperative game, far more so than FPS titles or most ARPGs. There's absolutely no reason to implement a GCD for the purpose of player parity across a variety of internet connections, let alone a long one. Indeed, it's not even effective at this: players in Russia can't play on NA servers, nor even can people in central Europe, without noticeable latency-related issues arising. The GCD is a requirement because of the huge amount of data transferred; it eases the load on the server to cap the number of commands to be communicated and processed within each GCD time interval. It's the server capacity that really dictates how long the GCD is. SE could likely lower it to 1.5s, or even 1.0s, if they wanted to - but they'd likely need to either upgrade their servers, or diminish the amount of work done server-side. Hence, my suggestion above.
    (3)
    Last edited by Vhailor; 06-01-2018 at 03:45 PM.

  2. #2
    Player
    KisaiTenshi's Avatar
    Join Date
    Sep 2013
    Location
    Gridania
    Posts
    2,775
    Character
    Kisa Kisa
    World
    Excalibur
    Main Class
    White Mage Lv 100
    Quote Originally Posted by Vhailor View Post
    Or.... (c) don't excessively rely upon server-side execution of every action. Latency is 'felt' in FFXIV (and FFXI before it) far more than any other title I've ever played. This is something SE can change, and it's of particular importance since a key reason for GCDs in the first place is to minimize the feeling of latency. They're failing in that regard with FFXIV because of their network code. Making this change could also ease the amount of data transmitted between client and server, which could potentially allow SE the ability to reduce the actual GCD.
    A MMORPG is required to rely upon server-side execution of every action because otherwise players can just roll over other players and monsters in PvP and PvE content by turning nagle off. That is what happened in Mabinogi.

    The server has a timestep. The sever queues everything received, sorts it into half second timesteps, and sends player "update movement" steps every half second. Meanwhile it updates player stats, and the results of actions every 3 seconds. So a 2.5 second GCD is 5 timesteps on the server at microsecond precision to allow spell speed and skill speed adjustments. If the client commands could be trusted we wouldn't have a bot problem at all. So that is why everything is done on the server.

    And believe me, some companies have already tried and failed at the "render everything in the data center" already.

    http://iphome.hhi.de/eisert/papers/sigmap07.pdf

    And nVidia is also still pushing this cloud gaming stuff http://www.nvidia.ca/object/cloud-gaming.html

    The reason FFXIV is "laggy" at all has more to do with the nature of the north america internet. Korean and Japanese games aren't routed half way across the world, thus they don't experience anything like North America does. The fact that FFXIV works at all with the current choreographed battle dances is something of a miracle. Games with better "real time" play, simply don't work in North America because the NA's internet is rubbish-tier compared to Japan and Korea. All NA internet is good for is watching cat videos.
    (0)

  3. #3
    Player Vhailor's Avatar
    Join Date
    Feb 2012
    Posts
    761
    Character
    Deionarra Eidolon
    World
    Hyperion
    Main Class
    Conjurer Lv 50
    Quote Originally Posted by KisaiTenshi View Post
    The reason FFXIV is "laggy" at all has more to do with the nature of the north america internet. Korean and Japanese games aren't routed half way across the world, thus they don't experience anything like North America does. The fact that FFXIV works at all with the current choreographed battle dances is something of a miracle. Games with better "real time" play, simply don't work in North America because the NA's internet is rubbish-tier compared to Japan and Korea. All NA internet is good for is watching cat videos.
    A couple things.

    Firstly, don't disparage the NA quite so much. Japan and Korea are tiny countries; of course their internet performs better. Distance is a killer for internet quality. There are problems with NA's infrastructure, but to call it 'rubbish-tier' is a vile combination of arrogance and ignorance.

    Secondly, your comment about FFXIV's lag, and your attribution of this lag to NA's internet quality (or lack thereof), is kind of a cop-out. Ultra-low latency will, of course, 'solve' the problem of inefficient netcode - but blaming lag on people not living within a country the size of Montana and not having first-rate internet is a lazy sort of excuse, rather than a solution. Imagine if a new FF expansion releases, and is accompanied by an inefficient graphics engine requiring a 1080 Ti for solid 60FPS performance. Would it be fair to tell everyone running into problems that oh, well, the problem's your graphics card - and if you want to spend $3000 on a Titan V, you'll get some of the best visuals around? Ridiculous.

    Companies are obligated to build their game around the resources their average customer will have. That's true for the graphics engine, it's true for the control scheme, it's true for the player skill level, and it's true for the netcode. SE shouldn't be awarded a get-out-of-jail free card for building its netcode in a lazy fashion that begins breaking down as soon as someone hits a little bit of latency. Within this set of constraints, companies must also balance a variety of other concerns: their infrastructure limits, game fairness concerns (i.e. anti-cheating measures), etc. It's challenging, no doubt about it - but in my book, companies don't get to more or less ignore the user experience impacts of their netcode decisions. I find it astonishing that anyone would suggest this should just be accepted by people. It's very poor customer service, and makes for a poorer game experience than we could otherwise have. Which is why people request changes to this every so often.

    -----------------------

    Now for a concrete example of the sort of simple change SE could make to improve everyone's life. Let's examine what happens when I try to exit my house. I right-click on the 'Exit' door, and expect to see a very predictable response: a confirmation screen asking if I want to leave the estate hall. But wait! I have 300ms latency with the servers. So actually, there's a delay between my right-click, and this menu of options appearing. And a similar delay between when I close the menu, and when I can start moving / see the UI components again.

    There is absolutely no reason for a delay here. This is an example of where the Client can - and should - anticipate a positive server response. The menu snap-up should be instant. If I cancel out of the menu, it should instantly return my character to a usable state. The server isn't going to say 'whoa whoa whoa, wait, I don't think you right-clicked that door...', so why not allow the Client to anticipate the response for a snappier user experience? The server's only role should come when a meaningful option is selected: when someone tries to leave the house. When THAT button is clicked, it makes sense for the Client to hold off on an assumption of success. After all, you wouldn't want the graphics engine to start clearing out texture assets and loading the residential zone if the server comes back and says hey, wait, the player's position was 15 yalms from the door, they can't exit from there. But the dialogue option itself? Exiting it? Those calculations shouldn't involve the server in the slightest. It shouldn't even receive a notification! It shouldn't care until - and unless - someone presses the confirmation button to leave.

    Similarly, suppose I interact with my Junkmonger NPC. Did you know that the Client has to receive server authentication before displaying the Junkmonger's wares? Why? The only involvement of the server should come when someone tries to buy or sell something: the rest should be client-side. I should be able to view the Junkmonger wares, even if I'm in a state where I'm completely lagged out, neither sending nor receiving to the server. There's no reason to place this load on the servers. None. It creates a sluggish-feeling user interface, one in which my latency determines the basic responsiveness of NPCs.

    Let's not forget either that this places an undue load on FFXIV's servers. They really should be used only as necessary, so as to maximize the capabilities of the hardware. Why are they having to field little requests from clients to open a NPC menu? Shouldn't they just receive an 'FYI' notification? And suppose the server receives this FYI from a player character across the manor, say, someone who is cheating: that's fine. It'll do a position check based on character location when, and if, someone attempts to buy or sell an item. Before that, why should it concern itself with a potential hack that lets a player uselessly view an NPC's inventory from afar? That's harmless enough to not be worth the effort.

    -----------------------

    These might seem like small things, but they really add up. It's a large part of why FFXIV just feels generally... sluggish. And SE needs to improve it. It's not just me saying that. They've got all the tools available, there are virtually no downsides, and plenty of upside. Or, y'know, they can just blame NA, and its "rubbish-tier" internet.
    (4)

  4. #4
    Player
    KisaiTenshi's Avatar
    Join Date
    Sep 2013
    Location
    Gridania
    Posts
    2,775
    Character
    Kisa Kisa
    World
    Excalibur
    Main Class
    White Mage Lv 100
    Quote Originally Posted by Vhailor View Post

    Companies are obligated to build their game around the resources their average customer will have. That's true for the graphics engine, it's true for the control scheme, it's true for the player skill level, and it's true for the netcode. SE shouldn't be awarded a get-out-of-jail free card for building its netcode in a lazy fashion that begins breaking down as soon as someone hits a little bit of latency. Within this set of constraints, companies must also balance a variety of other concerns: their infrastructure limits, game fairness concerns (i.e. anti-cheating measures), etc. It's challenging, no doubt about it - but in my book, companies don't get to more or less ignore the user experience impacts of their netcode decisions. I find it astonishing that anyone would suggest this should just be accepted by people. It's very poor customer service, and makes for a poorer game experience than we could otherwise have. Which is why people request changes to this every so often.
    What the poster was asking for was essentially a single player experience in a MMORPG which would be impossible without literately sitting within a few miles of the data center. So "what resources are available" would be asking SE to build server shards in every city with at least one player, and then somehow managing to make them all communicate with each other at 0 latency. It's literately impossible in a MMO context. If the games were being rendered in the data center and the player simply got a video stream, that would actually generate even more data, but it would "fit" within the current assumption about how the internet is routed and optimized presently.

    Call it net neutrality, call it greedy ISP's unwilling to upgrade their infrastructure, but MMO games are not what ISP's prioritize. NA is a mashup of different networks, and those with the deepest wallet can pay for fast lanes by bypassing the last-mile ISP's, but at some point you have to ask yourself if it's worth moving to a city with a carrier hotel so you can lease an office for $5000/mo and paying 10,000/mo for a DS3 just to shave 20ms off the latency from the local ISP's. I once asked about this when I was considering moving one of my clients servers, and the cost in the SF area was closer to $1000/mo while the cost to move it here was closer to $10,000, without including the transit bandwidth cost itself. Now consider that a DS3 is 45Mbits, or the same as a VDSL2 line which at most costs $150.

    As to the other half about "anticipation", again you're kinda missing the issue. When was the last time FFXIV was "hacked" ? Recall the Ungarmax event from 3 months ago. THAT is why the client-server checks everything. The typical communication the game does is "client asks for something" -> "server figures out if it's legal and sends the results" -> Client updates. Repeat every 500ms. You can do this in this style of game because you have a 3 second window to update everything but player movement. What happened that allowed Ungarmax to be used outside the command mission was literately the server seeing it as a valid command because the command missions are literately the exact same instances as when they're run with player created parties. So somehow the developers didn't check this command, because presumably they thought it was only available in command missions.

    Other games have been wrecked by allowing the client to send tainted data and not checking everything. Sure you might get a snappier UI if you allow for it. The behavior of the game client<->server communication is not that different from V1.00, and quite honestly we need to move past "SE's netcode is rubbish" yes it looks a bit inefficient, but we're talking about maybe 32 bytes per packet. What prevents the game from operating at, say 250ms windows instead of 500ms, is that it would make players on Dial-up/ISDN,wireless(eg 3G) and satellite connections in places with no wireline access impossible to play. Australia is one of those places where the last mile is often with wireless cell phone tech, not wirelines.

    FFXIV is not going to be the game that gets ISP's to upgrade. Youtube/Netflix was the last thing that got ISP's to upgrade anything, and they optimized in the direction of downstream, and putting cache servers in the data centers of ISP's to reduce their own costs. We're still playing catchup as Twitch streamers now require that connection to be symmetric. Good luck streaming anything on a Gigabit-downlink and 2Mbit uplink. Ipv6 came out, and nothing happened. ISP's horde IPv4 addresses like Taxi companies horde taxi licenses. Artificial scarcity instead of upgrades to prop up the value of data.
    (0)
    Last edited by KisaiTenshi; 06-02-2018 at 08:02 AM.