How to Add Layers of Challenge to Keep Players in Flow

One of the best ways to keep difficulty balanced for different skill levels between players is Challenge Layering. Challenge Layering is when games have multiple goals of different difficulty at a given time that players can choose to complete. If they become bored or frustrated, the player can make the game harder or easier for …

Coding for the Future: Making Code Readable and Extensible

In today’s world, software tends to live on and on with many features added over the course of its lifetime. To deal with perpetual software, software engineers must write code that is maintainable. Maintainable code has two properties we care about: readability, the ease of understanding code, and extensibility, the ease of extending code later. As …