Results 1 to 10 of 20

Hybrid View

  1. #1
    Player
    DaringDan's Avatar
    Join Date
    Jul 2022
    Posts
    9
    Character
    Niel Gawther
    World
    Gilgamesh
    Main Class
    Paladin Lv 90
    Part 1: The current system

    First off, I want to talk about how this current system works. Most of this will be guesswork, but it will include a certain amount of leeway from best to worst case scenarios. Also, I will be talking about this using bits, a simple data format that’s either 0 or 1, off or on. I just ask that you allow me this small indulgence as we move forward, since I need some setup for the second part.

    The current glamour system allows you to store items in the Glamour Dresser. To make a system like this, you need a reference to the item. In the case of an API like Universalis, it shows that those identifiers are simple numbers. What kind of numbers? This is where the guesswork comes in.

    If you're reading this part without programming knowledge, then here's a small piece of info you'll need for the next part: numbers in code are stored as a data type called INTEGER. There are a lot of terms I'll skip over for clarity's sake, like unsigned, but there are multiple types of these integers to handle different sizes, depending on server capacity.
    • The smallest size that could work would be a SMALLINT (small integer), which can go from 0 to 65 535.
    • A MEDIUMINT (medium integer) offers a bit more leeway, and can go from 0 to 16 777 215.
    • The usual format some people go for is an unoptimized use of the INTEGER itself, which can go from 0 to 4 294 967 295.

    Now, this was assuming a number was being used. Why is there doubt? That's because if you go look at an item on the Lodestone, you'll see a set of numbers and letters in the URL next to /db/item/[identifier here]. Letters are handled a bit differently in code. Each letter saved in ASCII (a format for defining letters in code) takes up space as a CHAR (character), so having a series of 11 letters ends up taking more space than the previous options.

    Below, you'll see a small table comparing the sizes. As of patch 6.2, there are 800 glamour slots. As such, the total size is the data size multiplied by the number of slots. For clarity's sake, I'll be ignoring the Armoire.

    Code:
    +----------------------+----------+-----------+---------+----------+
    | Data type            | SMALLINT | MEDIUMINT | INTEGER | CHAR(11) |
    +----------------------+----------+-----------+---------+----------+
    | Data Size (in bits)  |    16    |     24    |    32   |    88    |
    +----------------------+----------+-----------+---------+----------+
    | Total Size (in bits) |   12800  |   19200   |  25600  |   70400  |
    +----------------------+----------+-----------+---------+----------+
    TL:DR - This table above is the important part. These are my estimates for how much space (in bits) the current glamour system takes on the server per player. The reason it’s in bits will be explained in the next section.
    (1)

  2. #2
    Player
    Jeeqbit's Avatar
    Join Date
    Mar 2016
    Posts
    7,971
    Character
    Oscarlet Oirellain
    World
    Jenova
    Main Class
    Paladin Lv 100
    Quote Originally Posted by DaringDan View Post
    numbers in code are stored as a data type called INTEGER.
    Well, they could be floats/decimal numbers.

    Now, this was assuming a number was being used. Why is there doubt?
    They use a number. The ASCII is just a lodestone thing. Problem solved.

    The reason it’s in bits will be explained in the next section.
    Yes, bit tables are sometimes used for things like this. What makes you believe they aren't doing it as efficiently as they can?
    (2)
    In other news, there is no technical debt from 1.0.
    "We don't have ... a technological issue that was carried over from 1.0, because ARR was meant to kind of discard what we had from 1.0 and rebuild it from the engine."
    https://youtu.be/ge32wNPaJKk?t=560

    Quote Originally Posted by Jeeqbit View Post
    Want to know why new content will never last more than 20 minutes? Full breakdown:

  3. #3
    Player
    DaringDan's Avatar
    Join Date
    Jul 2022
    Posts
    9
    Character
    Niel Gawther
    World
    Gilgamesh
    Main Class
    Paladin Lv 90
    Quote Originally Posted by Jeeqbit View Post
    Well, they could be floats/decimal numbers.
    That's my bad. I should have specified I meant numbers for identifiers.

    Quote Originally Posted by Jeeqbit View Post
    They use a number. The ASCII is just a lodestone thing. Problem solved.
    Good to know. It was more of a passing thought when I looked at the Lodestone, but I should have looked into it.

    Quote Originally Posted by Jeeqbit View Post
    Yes, bit tables are sometimes used for things like this. What makes you believe they aren't doing it as efficiently as they can?
    I guess I just looked at the different systems in the game, and wondered why the glamour system works the way it does. If you take into account that ARR was made while half the team was maintaining 1.0, it makes sense that a N-to-N solution would be taken, which would be easier to implement, but come with the limitations of the current glamour dresser. This is also why I added that last section, talking about how the solution makes sense on paper, but maybe not in practice, and that it may require some important changes. But, more than anything, I just wanted to try and get the ball rolling on a conversation about potential solutions.
    (1)

  4. #4
    Player
    Jeeqbit's Avatar
    Join Date
    Mar 2016
    Posts
    7,971
    Character
    Oscarlet Oirellain
    World
    Jenova
    Main Class
    Paladin Lv 100
    Quote Originally Posted by DaringDan View Post
    I guess I just looked at the different systems in the game, and wondered why the glamour system works the way it does.
    1. They use physical machines rather than cloud servers. That means it's not really easily scalable like a cloud server. They decided against cloud servers because they are slower, despite the advantage of them being able to scale.
    2. Having to transfer inventories to different physical servers seems a real challenge for them, so for example you don't carry your chocobo saddlebag into a duty server or your retainers to other worlds.
    3. They are most likely taking into account network or database transfers over a large number of players at a given time as well.
    I don't fully understand their reasons, because as an earlier poster stated, modern hardware is extremely good and it was even extremely good when I was doing tasks like this a decade ago. But they deal with a lot of users and seem to have their reasons.

    As far as UI goes, we have experienced evidence of a disconnect between the UI team and... anyone else that knows how to code, in the past. They said it's "impossible" to show on tooltips when you have obtained items already, but there was definitely a way to do it if you really wanted to, even if the client got the information from the lodestone instead of directly from the server. And shortly after, they did it, proving their own argument wrong.

    Maybe it is the UI team not working closely enough with programmers, but this really dented my confidence in how the UI team was being managed.

    If you take into account that ARR was made while half the team was maintaining 1.0
    The glamour dresser itself was added after a few expansions, I recall, so it wasn't something we had in ARR. But we did have glamour prisms for as long as I can remember (although there used to be different types).

    Quote Originally Posted by DaringDan View Post
    Honestly, I wasn't aware of that. If you don't mind, could you link those?
    Nobody is going to link that sort of thing on the official forums. It's against the rules.
    (3)
    In other news, there is no technical debt from 1.0.
    "We don't have ... a technological issue that was carried over from 1.0, because ARR was meant to kind of discard what we had from 1.0 and rebuild it from the engine."
    https://youtu.be/ge32wNPaJKk?t=560

    Quote Originally Posted by Jeeqbit View Post
    Want to know why new content will never last more than 20 minutes? Full breakdown:

  5. #5
    Player
    AmiableApkallu's Avatar
    Join Date
    Nov 2021
    Posts
    1,190
    Character
    Tatanpa Nononpa
    World
    Zalera
    Main Class
    White Mage Lv 100
    Quote Originally Posted by DaringDan View Post
    Now, this was assuming a number was being used. Why is there doubt? That's because if you go look at an item on the Lodestone, you'll see a set of numbers and letters in the URL next to /db/item/[identifier here].
    If those numbers and letters fall in the range [0-9A-F], then what you're looking at is most likely the hexadecimal representation of an N-byte value. (See also: Base 64.)
    (3)