@Override
    protected void initialize() {
        if (testMode == true) {
            return;
        }

        // Erstellt ein GUI Objekt. Wenn die Konfigurationsdateien fehlen, exception.
        Gui.createInstance(this);
        gui = Gui.getInstance();
        try {
            // Hole den nächsten Level (oder eben den ersten) ...
            IGameData<GameElement> gd = levelManager.loadNextLevel();
            players = levelManager.getPlayers();
            if (gd == null || !(gd instanceof BombermanGameData)) {
                throw new InvalidLevelDataException("The game data passed from the level manager where either null or no instance of BombermanGameData.");
            }

            // ... und starte ihn!
            startNewGame((BombermanGameData) gd);
            logger.log(Level.INFO, "Loaded/active LevelFile: " + gd.getLevelFilename());
        } catch (NoNextLevelException ex) {
            logger.log(Level.SEVERE, null, ex);
        } catch (InvalidLevelDataException ex) {
            logger.log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            logger.log(Level.SEVERE, null, ex);
        }

        try {
            // register sounds
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.BACKGROUND,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.BACKGROUND));
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.BOMB,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.BOMB));
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.DIE,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.DIE));
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.GAME_END,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.GAME_END));
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.POWER_UP,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.POWER_UP));
            SoundManagerFactory.getSoundManager().registerSound(SoundManagerFactory.SoundLabel.WALK,
                    FrameworkUtils.loadFile(SoundManagerFactory.SoundPath.WALK));
            // start background sound
            SoundManagerFactory.getSoundManager().setLoop(SoundManagerFactory.SoundLabel.BACKGROUND, true);
            SoundManagerFactory.playWithoutAnnoyingExceptions(SoundManagerFactory.SoundLabel.BACKGROUND);
        } catch (ParameterOutOfRangeException ex) {
            Logger.getLogger(BombermanGame.class.getName()).log(Level.SEVERE, "Error while setting up the sounds", ex);
        } catch (UnsupportedAudioFileException ex) {
            Logger.getLogger(BombermanGame.class.getName()).log(Level.SEVERE, "Error while setting up the sounds", ex);
        } catch (IOException ex) {
            Logger.getLogger(BombermanGame.class.getName()).log(Level.SEVERE, "Error while setting up the sounds", ex);
        }
    }