Google I/O is basically just Google AI. How about improving existing products? Is this why it took you so long to add dark mode to Calendar, you were too focused on milking Gemini?

MonoBehaviours DO support constructors

Oliver Oliver • Updated 2 years ago

Quite often, I come across people who are under the impression that a class which inherits MonoBehaviour cannot or should not define a constructor. If you are one of those people then buckle up. I'm going to dispel this myth once and for all.

Read more...


Something for me

Oliver Oliver • Updated 2 years ago

Dear friend

For the longest time, I was never able to find something to do for myself; for my own sake. My intentions are, and always have been, around what I can do for others.

Read more...


You're exposing state badly

Oliver Oliver • Updated 2 years ago

Every now and then - okay… pretty much every day - I encounter someone who has decided to publicly expose state with fields, and it hurts my core.

Let's talk about that.

Read more...


Unity lies to you about null

Oliver Oliver • Updated 2 years ago

What is the difference between component == null, component is null, and !component?

Read more...


C# 10 and the dangers of file-scoped namespaces

Oliver Oliver • Updated 2 years ago

Today I'll be stepping away from a Unity environment and focusing on one of the new features available in C#, and a very important note to keep in mind when using it. That is, the dangers of file-scoped namespaces.

Read more...


How I recreated Unity's coroutine system

Oliver Oliver • Updated 2 years ago

Early last year, I wrote a blog post which explained how Unity's coroutines work. In my conclusion, I expressed that I underestimated the level of wizardry they involved, so much so that it went far beyond the scope of the article. I figured it was time to perhaps elaborate on that, and show you a glimpse of Unity's game loop and how the coroutine system works in the engine (at least, my interpretation of it.)

Read more...


Writing a portable save & load system

Oliver Oliver • Updated 10 months ago

I recently wrote a post which explained how Brackeys' Save & Load system could be fixed so that it isn't victim to a major security flaw regarding BinaryFormatter, by instead using BinaryWriter and BinaryReader. This guide will explain how to write a better, portable, more scalable save & load system from the ground up.

Buckle your seatbelts, we have a lot to cover.

Read more...


How do Unity’s coroutines actually work?

Oliver Oliver • Updated 2 years ago

Coroutines in Unity are a way to run expensive loops, or delays in execution, without having to involve multithreading. That's right – although it's commonly believed that coroutines are multithreaded operations, they in fact run on the main thread. But have you ever asked yourself why coroutines return IEnumerator? What does that even mean? We'll take a look at how they work, and I hope to explain just how genius they are.

Read more...


Fixing Brackeys' save & load system

Oliver Oliver • Updated 2 years ago

Recent news has hit that BinaryFormatter has a major security flaw, and should be removed from production use as soon as possible. This guide will cover an alternative approach to creating a save & load system for your Unity game.

Read more...


The problem with UnityEngine.Random

Oliver Oliver • Updated 3 years ago

When it comes to game dev, random number generation is a subject that comes up a lot. With the advent of Minecraft, No Man's Sky, and other games with procedurally-generated environments, unique variation in your game is an attractive feature which increases replayability and enhances player experiences.

Read more...