Game Development Essentials: An Introduction