As the codebase grows, pains of bad practices accumulate. The fact that production gets slower with more code, is a sure sign there are abundant bad practices in the project. Eliminating all the impedance - the crud - will increase the speed to the point where production speed accumulates. Although counter-intuitive, this speedup comes from code re-use and established working pipeline.
I just found a piece of code that demonstrates what I'm talking about in these series. This is from Unity's standard assets, I somehow imported this old version with some asset for testing, and it started throwing errors. Looking in, this is what I've found.
Recently I was working on a rebindable input system for my upcoming game Disturbancy. I've discovered many interesting properties that emerge when working with inputs and controls, but I will share one.
This article is a personal opinion on the different use cases related to fields and properties. We all know that fields are data holders without logic, while properties look like fields from the user's point of view, but actually execute a method, usually storing/retrieving data from a backing field.
In the process of development it's important to stay on the cutting edge and be aware of how things are developing in our profession. Recently I've been researching one particular game dev code module. There were numerous open source solutions online, so I thought it would be good to start from there as rewriting from scratch seemed a bit excessive.
I have recently started using ReorderableList element. I've had to implement some kind of 'list of lists' and would like to share my ideas about improvements.
This article has been inspired by a recent show on Channel 9, which presents design patterns. While these have been around for a long time and certainly have had great influence on how we write code, the implementation can actually get more lightweight in modern programming languages such as C# and recent Java.
To me, engineering is for the most part about getting the desired result with the tools that we have available. It is not about theory, not about being exceptionally clever, it is about creating a system with the available resources and constraints that are present. It is also not about cobbling it up together, it is about advancing your craftsmanship and improving your skills and work ethic with regards to the big picture.
Code reviews and performance profiling is something you do every weekly right? Well, you should, because when the project grows unmonitored the changes will accumulate and cause an avalanche of refactoring later.