This is because your classes are sometimes defined several times.
For example, MapView class is defined in package "a2" and in package "a2.views".
If you remove the declaration in package "a2", MapView class will appear in the right package
Here your (simplified) example :
@startuml
'skinparam classAttributeIconSize 0
skinparam defaultFontName Droid Sans Mono
skinparam defaultFontSize 14
'scale 1550 width
package "a2" #dedede {
class Starter
Starter *- " 1" Game
class Game
Game *-- " 1" GameWorld
class GameWorld
class Location
'Remove the two following lines
'class ScoreView
'class MapView
package a2.interfaces {
interface IObservable
interface IObserver
interface ISteerable
}
package a2.views {
class MapView extends IObserver
class ScoreView extends IObserver
}
package "a2.gameObject" #d2d2d2 {
ISteerable <|.. Vehicle
Location "1 " --* GameObject
GameWorld *-- " 2..*" GameObject
abstract class GameObject
}
}
@enduml