Results 1 to 10 of 144

Hybrid View

  1. #1
    Player
    Katish's Avatar
    Join Date
    May 2022
    Posts
    353
    Character
    Cat Toy
    World
    Mateus
    Main Class
    White Mage Lv 100
    I remember they showed us a lot of random statistics one time, such as how many times someone had said Yoshi-P in the game and how many times the squadron NPCs had squat. They particularly record the battle log across all players so that they can gather mass statistics from it, such as the win and loss rate of each job in PvP.

    They tend to have a good idea of how many people main each job even though this game involves switching jobs a lot and how popular content is. They also know how popular FATEs are, because they told us the one in Azim Steppe was popular around the world and they wanted to copy the concept for Shadowbringers.

    All I can say about the housing is that they used an external server and I think I remember it being caused by a bottleneck. So the math did not function because it had no data with which to use the math on because the data had not reached the players at the expected time, or something like that.
    There should be no math done on a boolean check if there is math, they are doing it wrong lel. They should be checking yes or no, that's it. Assuming houses are objects and players are objects, which they should be...
    this will be somewhat pseudo, as this is pseudo will not follow an actual language but should be understandable...:"
    bidUI(); <---opens UI..handles which buttons are shown on UI generation...hides bid button if not isBiddableHouse...

    void houseConfirm(object house, object player){
    //fetch dynamic assigned housing dates and confirm it is a biddable house...would need to declare function that does that
    bool houseBool = isBiddableHouse(house);
    if(houseBool && buttonPress(specificBidButton)){
    onBid(player);
    } else {
    //fetch arraydata as you should implement a function to manipulate and get the player winner
    object winner = houseWinner();
    ---> Assign houseWinner to a newArray that will check if the player already owns a house...
    }

    }

    object houseWinner(){
    //this is where we would fetch our array data so let's assume we made that function...fetch data handles manipulation to read back into a new array;
    array myFetchData = manipulateData("...locationOfData");
    int rand = newrand(myFetchData.GetSize()-1); <--- this would get an int at random by our array size (i.e the maximum number), as arrays start at zero we would need to -1
    object playerWinner = myFetchData[rand];
    return playerWinner;
    }

    void onBid(object player, int date){
    //closeDate will need to be the date at which you can bid until, after bidding allow the houses to do nothing
    int closeDate;
    if(date < closeDate) {array bidArr = arrBid(player);} else {player.ShowMsg("The bidding for this house has passed");}
    }

    array arrBid(object player) {
    array myArray;
    //add player object to array if you cannot do that find player name and instead hold strings in an array then find player by that string...
    myArray.Add(player);
    return myArray;
    //convert array to string if you plan to save it to file, you will need to make a separate fetch function
    }

    this outlines the general idea...the logic might not be 100% sound as I have no way of testing unless I made a program and followed the instructions but again this was done out quickly.
    I don't trust the numbers they show if they can't do this much...
    (3)
    Last edited by Katish; 07-24-2023 at 05:04 AM.

  2. #2
    Player
    Koros's Avatar
    Join Date
    Jul 2023
    Posts
    304
    Character
    Koros Drakon
    World
    Siren
    Main Class
    Paladin Lv 100
    Quote Originally Posted by Katish View Post
    There should be no math done on a boolean check if there is math, they are doing it wrong lel. They should be checking yes or no, that's it. Assuming houses are objects and players are objects, which they should be...
    this will be somewhat pseudo, as this is pseudo will not follow an actual language but should be understandable...:"
    bidUI(); <---opens UI

    void houseConfirm(object house, object player){
    //fetch dynamic assigned housing dates and confirm it is a biddable house...would need to declare function that does that
    bool houseBool = isBiddableHouse(house);
    if(houseBool && buttonPress(specificBidButton)){
    onBid(player);
    } else {
    //fetch arraydata as you should implement a function to manipulate and get the player winner
    object winner = houseWinner();
    ---> Assign houseWinner to a newArray that will check if the player already owns a house...
    }

    }

    object houseWinner(){
    //this is where we would fetch our array data so let's assume we made that function...fetch data handles manipulation to read back into a new array;
    array myFetchData = manipulateData("...locationOfData");
    int rand = newrand(myFetchData.GetSize()-1); <--- this would get an int at random by our array size (i.e the maximum number), as arrays start at zero we would need to -1
    object playerWinner = myFetchData[rand];
    return playerWinner;
    }

    void onBid(object player, int date){
    //closeDate will need to be the date at which you can bid until, after bidding allow the houses to do nothing
    int closeDate;
    if(date < closeDate) {array bidArr = arrBid(player);} else {player.ShowMsg("The bidding for this house has passed");}
    }

    array arrBid(object player) {
    array myArray;
    //We assume server has a method to return to player name as this is quite a staple.
    myArray.Add(player.GetName());
    return myArray;
    //convert array to string if you plan to save it to file, you will need to make a separate fetch function
    }

    this outlines the general idea...the logic might not be 100% sound as I have no way of testing unless I made a program and followed the instructions but again this was done out quickly.
    I don't trust the numbers they show if they can't do this much...
    honestly people don't realize that outside of silicon valley and a select few top companies (of which game companies are not) most programmers are really bad.

    se can't hope to beat L5 salaries at Meta or Google.

    the median coder at a video game company never took algorithms and thought intro to python was a hard class, like no offense, the disparity is huge.

    of course, they have other comparative advantages like passion or having a good intuition for what makes good game design, but if management keeps overriding their ideas and if they get no funding, they can't do much
    (9)
    Last edited by Koros; 07-24-2023 at 04:38 AM.

  3. #3
    Player
    Katish's Avatar
    Join Date
    May 2022
    Posts
    353
    Character
    Cat Toy
    World
    Mateus
    Main Class
    White Mage Lv 100
    Quote Originally Posted by Koros View Post
    honestly people don't realize that outside of silicon valley and a select few top companies (of which game companies are not) most programmers are really bad.

    se can't hope to beat L5 salaries at Meta or Google.

    the median coder at a video game company never took algorithms and thought intro to python was a hard class
    Unfortunately that is the case.
    (0)

  4. #4
    Player
    Jeeqbit's Avatar
    Join Date
    Mar 2016
    Posts
    7,686
    Character
    Oscarlet Oirellain
    World
    Jenova
    Main Class
    Warrior Lv 100
    Quote Originally Posted by Katish View Post
    There should be no math done on a boolean check if there is math, they are doing it wrong lel. They should be checking yes or no, that's it.
    Again, the lottery was conducted on an external server. The external server did not communicate the data at the expected time, so it defaulted to no (you didn't win the house) even though you did.

    It's not about booleans but about how normally-working code can be inefficient on a large scale (like an MMO) and create a bottleneck.

    The issue was https://eu.finalfantasyxiv.com/lodes...d233a2ab8e17b6
    2. The lottery was conducted successfully, but the winning number was not communicated to the housing server

    After investigating this issue, we discovered that, while the server responsible for conducting the lottery is functioning as intended, the results are not being properly relayed to the servers responsible for managing housing-related data.

    Once this issue has been resolved, and lottery results can be relayed to the housing data servers without issue, it will be possible to confirm the lottery winners.

    The lottery data that exists on the server responsible for processing results will be used to overwrite the housing server so that the correct data is reflected.
    (2)
    Last edited by Jeeqbit; 07-24-2023 at 08:51 AM.
    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: