Results 1 to 10 of 31

Hybrid View

  1. #1
    Player
    Kranel_San's Avatar
    Join Date
    Aug 2021
    Location
    Gridania
    Posts
    1,045
    Character
    Krann Starwarden
    World
    Zodiark
    Main Class
    Reaper Lv 100
    Quote Originally Posted by Jybril View Post
    I feel like you just made the topic just to use the term Spaghetti Code lol.
    ....

    I have been detected xD

    Honestly though, that's the second reason. The main is actually understanding what's the spaghetti code of the game nowadays, to understand what's it referring to and what's not. Clarification since everyone are using the term but not all are using it correctly.
    And the third reason is discussing the spaghetti code of the game if there are any.
    (0)

  2. #2
    Player
    Jeeqbit's Avatar
    Join Date
    Mar 2016
    Posts
    7,817
    Character
    Oscarlet Oirellain
    World
    Jenova
    Main Class
    Warrior Lv 100
    Quote Originally Posted by Kranel_San View Post
    The main is actually understanding what's the spaghetti code of the game nowadays, to understand what's it referring to and what's not. Clarification since everyone are using the term but not all are using it correctly.
    The term spaghetti code is used incorrectly. A lot of the time it's being used to explain why something is not being done when we've actually been told by Yoshi-P that it's intentional. It was used to explain why the graphics were not good but we knew the engine was capable of a lot more because of other FF games that use it, so it's more about the assets being upgraded and increasing the system requirements. It was used to suggest that 1.0 code was hindering current development when this has been denied and we've been told in the past exactly what it was hindering (summoner, chocobos and player collision).

    Instead of it being "spaghetti code" it's a lot like building a house. Once you have built the house, if you decide a part of it is no longer fit for purpose, you have to knock a lot of it down and start over and that takes a lot of time.

    As time progresses, parts of the MMO house become redundant. What if parts of the MMO house that are not redundant are built on top of that redundant part of the house? It's going to be a lot of work to change it and this is a problem that every MMO is going to have to work with. The priority has to be the next patch which will give people a reason to login, not knocking down what they have built, so the redundant parts will usually get left behind, accepted as limitations or worked around.
    (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
    Larirawiel's Avatar
    Join Date
    Feb 2019
    Location
    Aldrassil
    Posts
    2,547
    Character
    Larirawiel Caennalys
    World
    Shiva
    Main Class
    White Mage Lv 100
    Quote Originally Posted by Kranel_San View Post
    ....

    I have been detected xD

    Honestly though, that's the second reason. The main is actually understanding what's the spaghetti code of the game nowadays, to understand what's it referring to and what's not. Clarification since everyone are using the term but not all are using it correctly.
    And the third reason is discussing the spaghetti code of the game if there are any.
    The topic "spaghetti code" is a huge one. Basically, it means, that it is hard to figure out what a piece of code does, even for experienced developers. And this is also highly subjective. And the reasons why a piece of code is considered as "spaghetti" are different. The common reasons are: many deep nested loops/if-else-constructs, bad naming of variables, methods, procedures, the usage of many mutable global-/static variables or a class, method, procedure does too much etc.

    Can you "fix" spaghetti code? The answer is: it depends. Because the reasons why the spaghetti code does what it does are also different.

    Are the calculations, which the spaghetti code has to do also very complex? If yes, then you will propably not be able to "fix" it with a rewrite. Maybe you can make the spaghetti code less spaghetti, but not more. This is mostly the reason for many deep nested loops/if-else-constructs. If you have ever wrote code, which calculates the salary of a employee based on taxcard, health insurance etc. then you propably know what i mean.

    Bad naming? The hardest thing is to find a good name. And yes, naming is hard. But if you have a good name for a variable or method then use the refactoring funcionality of your IDE. And bad naming can turn even trivial code into spaghetti code. If you name your method "calculateSpellCriticalHit" then the devs will know what this method does. But if you name it "calculateHit" then they will need to look into it because this name is too generic.

    But it seems to me, that "spaghetti code" is not the reason why they have often much pain to improve some things. I guess, they have really f*cked up the persistence layer. The persistence layer is the piece of code, which communicates with a database server. And because it is so fundamental, the chances are high that if you change something here then it will break some things in the software if you do not pay attention. And unfortunately nobody knows how the persistence layer of the game looks like. But there are also methods to mitigate the pain if you really need to make changes: use a statically typed programming language and use an ORM framework and write integration tests. Because there are many tools, which can help you identifying incompatible changes. If they do not use them then they have to analyse the whole code base manually (basically via CTRL+F) and identify the places, which could break with the change. If the codebase is huge then this is very personal ressources intensive.



    Cheers
    (0)