public void renderGame(Game game) {
		Ship ship = game.getShip();
		List<Bullet> bullets = game.getBullets();
		List<Asteroid> asteroids = game.getAsteroids();
		List<Alien> aliens = game.getAliens();
		List<Powerup> powerups = game.getPowerups();
		List<Particle> particles = game.getParticles();
		long points = game.getPoints();
		int level = game.getLevel();
		int accuracy = ship.getAccuracy();
		
		// Prepare buffer strategy and graphics
		BufferStrategy bufferStrategy = getBufferStrategy();

		if (bufferStrategy == null) {
			createBufferStrategy(2);
			return;
		}
		
		Graphics2D g = (Graphics2D)bufferStrategy.getDrawGraphics();
		
		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		super.paint(g);
		
		// Render entities
		Renderer.render(ship, g);
		
		for (Bullet b : bullets) {
			Renderer.render(b, g);
		}
		
		for (Asteroid asteroid : asteroids) {
			Renderer.render(asteroid, g);
		}
		
		for (Alien alien : aliens) {
			Renderer.render(alien, g);
		}
		
		for (Powerup p : powerups) {
			Renderer.render(p, g);
		}

		for (Particle p : particles) {
			Renderer.render(p, g);
		}
		
		// Render HUD
		Renderer.renderHUD(points, level, accuracy, g);
		
		// Clean up and show
		g.dispose();
		bufferStrategy.show();
	}