My job is only partly on software design but I see some patterns in this game that blatantly spill the beans they have to improve the outline of their code; I’m sure the more experienced that me can see this in even more detail; I will only mention the most blatant examples and the most obvious solution to them.
Examples:
- The latest bug that spilled the beans of the expansion was a blatant case of bad modularization of code; there was no robust variable “the expansion is released” that would prevent it; a very simplistic and game-wide “do not show this card in the Crafting pages if “expansion of card is not released”” would save them for all expansions going forward without having to manually exclude the cards every time.
- The UI glow of “a combo card is enabled” is just bugged in several cases; but at the same time it works on the server side; that shows their UI code is not even using shared libraries for the mechanics between the client and server which is not as simple to solve as the previous problem but still a rookie mistake in the grand scheme of things.
- This is more artistic but the UI design is just bad; why even have Arena inside another submenu and why are the BGs’ buttons extremely counterintuive; just group the main multiplayer formats of Constructed/Arena/BGs and demote Wild from being promoted to beginners indirectly etc.
The main solution to most of the problems is to just make better modular code; do not just throw “new cards” into the mix and then manually banning them from being crafted before release but just have a game-wide method of “do not show this card if expansion is not released” (as an example) and similarly start developing shared libraries so the UI does not contradict the server; get better UI designers too for the categorization of buttons pressed.