


I feel like you just made the topic just to use the term Spaghetti Code lol.Do you think the game is still heavily plagued by spaghetti code?
What are the limitations caused by spaghetti codes that still exist to this day?
Do you think the game will one day be free of spaghetti codes?
Do you think spaghetti code is just an excuse made up by devs and not a real issue?



....
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 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.
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



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.....
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.
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
|
|
![]() |
![]() |
![]() |
|
|
Cookie Policy
This website uses cookies. If you do not wish us to set cookies on your device, please do not use the website. Please read the Square Enix cookies policy for more information. Your use of the website is also subject to the terms in the Square Enix website terms of use and privacy policy and by using the website you are accepting those terms. The Square Enix terms of use, privacy policy and cookies policy can also be found through links at the bottom of the page.


Reply With Quote


