No one likes documentation until they can understand documentation. It is therefore that most of us have a standing dislike with all the various kinds of documentation in the world. In our search for specific answers we often find that in its attempt to explain everything, documentation seems to explain nothing. In spite of this, it is this very process of interpreting documentation that causes its undertakers to vouch for its essentiality, however painful it may be.

A good demonstration of this is the basic integration of PayPal into Unity. …


Cellular automata procedurally generating, through Perlin noise, that which looks to be a landscape

Procedural generation — a broad and massive topic that can seem intimidating at first, but whose fundamentals can easily be grasped and replicated. It is the algorithmic creation of data, or more simply, an automated process with a set of governing rules.

You will have seen this via landmass or level generation in popular video games like Minecraft, Spelunky, and No Man’s Sky, to name a few. In animation, Lord of the Rings used proc-gen to simulate its armies, and the Mandalorian uses it to produce landscapes. …


Reduce memory usage, organize, and make your project easily designable with Scriptable Objects!

As grows the size of any system, so grows the complexity, and so the accompanying inconvenience of additions or adjustments made to it. You will find that the deeper you delve, the higher the likelihood that one small tweak can corrupt your entire structure. Complexity cannot be avoided, but it can and should be handcuffed to its sober sponsor, Modularity.

Modularity is “the degree to which a system is made up of relatively independent but interacting elements, with each module typically carrying an isolated set of functionality. It is a mechanism for complexity redistribution.”¹

Simply put, a good complex system…


Over the weekend, Austin Mackrell and I wanted to try out implementing the prediction and visualization of a trajectory in 2-D before it fires. Simply put, we’re firing an object through a gravity affected scene with a certain force, and we want to predict and show the path it would take before we fire it. We saw a ton of articles about it and have seen a number of games implement it in some way. There seemed to be two popular ways to do it, each having its own strengths and weaknesses.

Basic intention of Trajectory Prediction
  • Option One is to manually calculate how each…

Extending on previous RayCast2D Article

Because I will never have done enough of it, today I’d like again to stress the importance of slow, simple, and attentive debugging. Fortunately, I can stress the importance of this by illustrating the use of a few new and useful features.

If you’ve grasped RayCast2D from the referenced article above, you might notice there are some limitations to detecting colliders via casting a single straight line. Eventually you’ll realize there are situations in which it’s more beneficial to detect colliders in an entire area, and not just a line.

Enter ShapeCasting.

Instead of measuring colliders in a straight line, it’s often more useful to measure in an area

ShapeCasting is just…


A simple but powerful implementation of Raycasting can be used to determine how one object behaves toward another. Notice the Orb at the top decides not to fire at the asteroid on the left or the red ship on the right. He only fires at the Player in the middle.

If you’re a human on Planet Earth, there are dozens if not hundreds and thousands of features in Unity and C# that you do not understand.

That includes every professional full-time software developer, every person who’s never even made an attempt at coding, and every person in between. As Jonathan Weinberger has said many times, a good software developer is just good at Googling things. It’s for this reason I want to highlight good practice when learning (or relearning!) any feature in Unity.

There are two invaluable resources to help you understand every small part of any new process in…


Through a few simple formulas, you can communicate some very useful information through script. PLEASE FORGIVE MY SCRIPT IS NOT OPTIMAL

Per usual, I spent too much time on one feature, and while I don’t have much to show for it, I feel as though understanding the feature and being able to explain it will help me down the road. On days like these, I like to think I’m investing.

With what limited time I had today I focused on my revamping my Ammo display. For now I’ve decided on an Ammo maximum of 150. This amount will essentially be shown by 15 laser icons, each of which will gradually disappear as the Ammo amount grows lower.

The way I’ve done…


I spent ten hours today trying to get a game object to rotate to my liking.

The hours of troubleshooting spent on this one definitely feel as though they’ve caused me some brain damage. I did a ton of google searching, and I’d like to give a shout out to the guy in 2017 who asked a question like mine and then answered his own question six hours later. I replicated his formula and it worked. …


Methodizing repetitive commands makes your code more legible and less error prone.

A wonderful piece of advice from GameDevHQ so far has been: if feeling any difficulty, to brute force your implementation on the first iteration of code. First things first, make your code work. You don’t have to be perfect right away. Expensive and sloppy code is better than nonoperative code. Once your code works the way you want, you have the opportunity to come back later and clean things up.

A good lesson in cleaner code is: if you’re duplicating lines of code, there’s likely an opportunity to save space and time by combining them into a Method. In my…


Learning Unity in a hands-off environment can be downright exhausting. You can fully expect to spend an hour double and triple checking your code, wondering what phantom change along the way broke your entire project, only to find that a single letter was miscapitalized, sending everything into mayhem.

Of course, the silver lining to GameDevHQ’s hands-off approach to Unity instruction is the pay-off when you type a few lines of code, knowing it’ll work, and it just works. …

Dan Schatzeder

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store