Essential Lessons for Avoiding Crunch Time in Game Development