@Override
    public void render(Graphics2D g2d, int width, int height) {

	if(this.width != width || this.height != height)
	    Client.instance.mapren.render(g2d, width, height);
	g2d.drawImage(Client.instance.mapren.getMapBackground(), 0, 0, null);
	Font f = Client.instance.translation.font.deriveFont(Font.BOLD, 120F);
	g2d.setFont(f);
	Rectangle2D bounds = g2d.getFontMetrics().getStringBounds(Client.instance.translation.translate("game.title"), g2d);
	int titleX = (int) (width / 2 - bounds.getCenterX());
	int titleY = (int) (height / 3 - 50 + bounds.getCenterY());
	GlyphVector gv = f.createGlyphVector(g2d.getFontRenderContext(), Client.instance.translation.translate("game.title"));
	Shape outline = gv.getOutline();
	g2d.translate(titleX, titleY);
	{
	    g2d.setColor(new Color(0x6C4824));
	    g2d.setStroke(new BasicStroke(6F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
	    g2d.draw(outline);
	    g2d.setColor(new Color(0xc69c6d));
	    g2d.setStroke(new BasicStroke(1));
	    g2d.fill(outline);
	}
	g2d.translate(-titleX, -titleY);

	int topMargin = height / 3;
	int buttonWidth = width - width / 4;
	int buttonHeight = height / 10;
	int buttonSpacing = buttonHeight / 4;
	int leftMargin = width / 2 - buttonWidth / 2;
	continueGame.setX(leftMargin);
	continueGame.setY(topMargin);
	continueGame.setWidth(buttonWidth);
	continueGame.setHeight(buttonHeight);

	options.setX(leftMargin);
	options.setY(topMargin + (buttonHeight + buttonSpacing));
	options.setWidth(buttonWidth);
	options.setHeight(buttonHeight);

	mainMenu.setX(leftMargin);
	mainMenu.setY(topMargin + (buttonHeight + buttonSpacing) * 2);
	mainMenu.setWidth(buttonWidth);
	mainMenu.setHeight(buttonHeight);
	
	g2d.setColor(Color.WHITE);
	g2d.setFont(Client.instance.translation.font.deriveFont(Font.BOLD, 12));
	g2d.drawString("Seed: " + Client.instance.mapgen.getSeed(), buttonWidth, height - height/16);
	super.render(g2d, width, height);
    }