Code Quality Chronicles Vol 3: A handful of practices Unity
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.
Code Quality Chronicles Vol 2 - What not to do
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.
Two Interesting Performance Characteristics in #Unity
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.
Properties vs Fields in Unity What When and Why
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.
Code Quality Tips Vol. 1
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.
Suggestions for improving ReorderableList element in the UnityEditorInternal
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.
Design Patterns Revisit in modern C#
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.
UnityTips: How to use interfaces in Unity scripts (part 3)
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.
Avoiding Memory allocation for strings - FPS Counter Example
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.