If the final calculated score is negative then the incorrect sign will be used. This should be modified to use + only if the value of score * multiplier is positive.
If the number of gaps exceeds the number of strings in scoreGapTexts the game crashes. There should be a fallback string or default to the last string if the number of gaps exceeds that.
When the shooter has spriteAnchor defined, the ball sprites no longer align if that value changes. The expectation is that when spriteAnchor changes, the next ball and ball firing position should adjust accordingly.
The game does not check if the colors in a level are valid colors in the game, so the game will crash when it attempts to draw a color that does not exist.
The game should do the following:
Discard invalid sphere colors in the level and write a warning in the log
Do not load the map and return an error if pathsBehavior.colors is an empty array or does not exist
UI1 does not have a specific order for drawing UI elements on the same layer, so a different layer needs to specified for each object to control drawing order.
Currently, hud_layer_order.json contains an array of strings that specify the order which layers are drawn, but this needs to be updated every time a new layer is specified that is not on the list.
A solution would be to grab all layer names in all UI elements and sort alphabetically to determine draw order, so elements in layer A would be drawn before B, B before C, and so on.
The level must explicitly define the shooter position and type, not the shooter. If shooter is not present in the level, then the level won't have one and the player cannot fire any balls (they still can interact with other elements in the level).
When gameSpeed is set to zero, time should appear to be frozen for everything. The shot sphere should not move as soon as it is fired, and the shooter should not be knocked back.
If a new sphere is added to the game and the map defines the new sphere, then the shooter won't automatically display the color of the sphere in the next ball sprite unless the sprite definition is added there. Most of the time a shooter won't need a custom next ball sprite so it should be moved to the Sphere definition.
Currently, the engine loads resources from .json files in the game directory, which is not sufficient when defining resources that are not known until runtime (such as being generated from script.lua or assets pulled from server).