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 …

My Best Games of 2017

For me, this was an incredible year for games. As a 3D platformer and JRPG fan, this year was much-needed candy to my palette. Let’s do this by category: Adventure/Action RPGs Zelda: Breath of the Wild– Quite the experience. Probably the ultimate form of adventure we’ve seen in any video game to date. Buy this …

Combat Strategy Analysis – Xenoblade 2

Xenoblade Chronicles 2 is an outstanding JRPG and one of my favorite games of the year. with a strategic battle system that anyone interested in battle mechanics must examine. Battles focus on forcing the player to make quick decisions with risks and rewards keeping players captivated. Players feel accomplished and satisfied after achieving goals they …

Mario Odyssey Summary Post

Here are my blog posts related to this outstanding game: Where did Mario Odyssey’s Level Design Come From? How Unordered Challenges make Mario Odyssey Special The importance of linearity in Mario Odyssey Super Mario Odyssey is outstanding! Here are some notable thoughts I had at the end of the game: The many different ways to …

How to Keep Players in Their Flow Channel

When we create games, our goal is to create an experience enjoyable enough that it holds the player’s focus as long and as intensely as possible. When something captures our complete attention and imagination for an extended period, we enter an exciting mental state. The rest of the world seems to fall away, and we …

How Final Fantasy X uses Challenge Layering to Keep Players Immersed

Final Fantasy X (FFX) is a turn-based RPG originally released by Squaresoft in 2001 for Playstation 2 and remastered on PS3, PS4, PC, and now on Nintendo Switch, thank Yevon! Why is FFX so well loved and engaging? One reason is the use of challenge layering to keep players in flow. Challenge layering is the idea of …

Prefer Composition over Implementation Inheritance

In a previous post, we learned implementation inheritance should be avoided. But, what can we do instead? Composition to the Rescue We want to be able to share code while allowing us to switch out different functionalities on the fly keeping us extensible. Without inheritance, what could we do to share code? Let’s use composition! …

Implementation Inheritance Is Evil

Inheritance is an Object-Oriented Programming concept near and dear to my heart. Early on I recognized it as a godsend to programmers. Over time, I found myself realizing its destructive nature in my projects. In programs where I began to crave extensibility, I noticed that inheritance started limiting me to due to its tightly coupled …