Exploring 3D Game Programming: Languages, Techniques, and Differences from 2D Games