From: Frederick W. <fre...@go...> - 2012-02-19 09:03:06
|
Stefan: Thanks for wanting to get into the details of what has been done - I'm also feeling more comfortable if the four-eye principle is applied for such critical change. Core rails objects are created in game.setup and game.load respectively - both called within the init thread. GameUIManager's gameUIInit is only called once this is done (as there is no parallelization up that point in time - it's also called by the init thread). This gameUIInit calls constructors and init method for all UI components (eg., leading to the creation of GUITile and so on). By this means, the game core layer is ensured to be fully available before the UI layer begins to be set up. As a further explanation, there is really much more potential of parallelization / speed-up, but I had opted against that because ensuring correct ordering would have been cumbersome (synch-points) or not reliable enough. So there is really not much "magic" in the changes - just putting the (isolated) last steps of UI component initialization into a separate thread (EDT) and continuing with the next UI component in the meantime. -- Frederick |