@Override
    public void init(GameContainer gc)
            throws SlickException
    {
        world = new World();
        
        try
        {
            AssetManager.getInstance().loadResources(new FileInputStream("assets.xml"));
        }
        catch (FileNotFoundException e)
        {
            throw new SlickException("Could not load assets.xml", e);
        }
        
        BlockMapGenerationDataPackage dataPackage = new BlockMapGenerationDataPackage(900, 900, 15);
        
        BlockMapGenerationOperator voronoiTesselator = new VoronoiTesselator();
        BlockMapGenerationOperator plasmaFractalPerturbator = new PlasmaFractalPerturbator();
        BlockMapGenerationOperator thermalEroder = new ThermalEroder();
        BlockMapGenerationOperator blockBuilder = new BlockBuilder();
        
        voronoiTesselator.operate(dataPackage);
        plasmaFractalPerturbator.operate(dataPackage);
        thermalEroder.operate(dataPackage);
        blockBuilder.operate(dataPackage);
        
        overworldMap = new BlockMap(dataPackage);
        
        SystemManager systemManager = world.getSystemManager();
        
        movementSystem = systemManager.setSystem(new MovementSystem());
        cameraSystem = systemManager.setSystem(new CameraSystem(gc));
        blockMapRenderSystem = systemManager.setSystem(new BlockMapRenderSystem(gc, overworldMap));
        
        systemManager.initializeAll();
    }