← Back to All Blog Posts
Posted: 5/30/2022

Game Dev Dilemma

The main reasons why I want to make games:

(I also like writing code and thinking of systems)

Often, I feel that these things are at odds with each other depending how interested I am in learning a particular discipline.

For example, I am interested in developing my 3D modeling skills including making things like textures and shaders.

This is a whole rabbit hole on its own that could be traversed to any level of depth and complexity. However, in this instance, I am interested in learning for the purpose of being able to create art assets for games so if I want to actually make a game, I have to put a limit somewhere reasonable.

On the other hand, I could download an asset pack and use those instead of making them myself. That would dramatically speed up development time, but I wouldn’t really be learning as much compared to if I just dove in and started poking around.

In the most extreme case, I could be attempting to create my own game engine, but that’s not really a thing that I’m particularly interested in.

I think that there is some happy medium where I use and learn from assets, modify them using what I’ve learned, and use them in my projects.

Though, I am still subscribing to a lot of invisible decisions that the creator of the asset has made which I feel may make it harder to get a broader understanding of the field.

This is why I’m more reluctant to directly copy code from some tutorial just to get things working fast. To me, I want to learn less about the actual code but more about the methodology and design considerations that led to the code being developed in the way that it is. That way, I actually know how to modify things if need be. I’m not just solving one design problem, but developing a framework that allows me to work through all problems.

(This doesn’t apply to things like using libraries for external functions because I want the functionality of the library more than to understand how it works)

If I’m going to be frequently working at the code level, then I want to actually understand what I’m getting into and how to modify it. Also, thinking of systems and how flexible they are to modification is just sort of fun to me anyways.

Ultimately, I think that I value the process of learning very slightly more than the value of having a finished product, so I tend to err on the side of learning from scratch and soaking up everything the discipline has to offer. This might come at the risk of never creating a finished product, but I think that the learning is worth it.