BillardGL is a very nice billiard simulation game in 3D. BillardGL allows you to play 8-Ball game or 9-Ball game.
8-Ball is played with 15 numbered object balls and the cue ball. One player tries to pocket numbers 1 to 7 (solid colors) and his opponent tries to pocket numbers 9 to 15 (stripes). The player pocketing his group first and then legally pocketing the 8-ball wins the game.
9-Ball is played with the nine object balls numbered with 1 to 9 and the cue ball. On each shot the first ball the cue ball contacts must be the lowest-numbered ball on the table. The object balls need not be pocketed in order. A player remains "at table" as long as he legally pockets object balls, doesn't commit a foul or wins the game by legally pocketing the 9-ball .