public Game() {
		GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
		device = env.getDefaultScreenDevice();

		try {
			this.cursorImage = ImageIO.read(this.getClass().getResource("/cursor.png"));
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		this.cursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImage, new Point(0, 0), "custom");
		this.setCursor(cursor);

		this.setSize(SIZE);

		frame = new JFrame(TITLE);

		try {
			frame.setIconImage(ImageIO.read(this.getClass().getResource("/cube.png")));
		} catch (IOException e) {
			e.printStackTrace();
		}

		frame.setUndecorated(fullscreen);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(new BorderLayout());
		frame.add(this, BorderLayout.CENTER);
		frame.pack();

		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setVisible(true);

		image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
		pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

		instance = this;

		if (fullscreen) {
			fullScreen(frame);
			setPixelSize(Toolkit.getDefaultToolkit().getScreenSize().width, WIDTH, Toolkit.getDefaultToolkit().getScreenSize().height, HEIGHT);
		} else {
			setPixelSize(WIDTH * SCALE, WIDTH, HEIGHT * SCALE, HEIGHT);
		}
	}