@startuml GameEngine package Game { class Game { + name: String + levels[]: Level + currentLevel: Level + gameJSON: String + SetLevel(Level lvl) } class Level { + name: String + gameObjects[]: gameObject + load() + start() + draw() + update() + destroy(int id) } class GameObject { + id: int + x: double + y: double + width: double + height: double + img: Image + layer: int + load() + unload() + start() + draw() + update() } } package Frontend { } package Backend { } package Builder { } @enduml @startjson mainGame { "name":"GameName", "levels": ["Level1", "Level2"] } @endjson @startjson level1 { "name":"Level1", "objects": ["object1", { "name":"gameObject2", "X":0, "Y":0, "Width":100, "Height":100, "img":"Image", "layer":1, "load":"load()", "start":"start()", "update":"update()", "unload":"unload()" } ] } @endjson