Hacker News new | past | comments | ask | show | jobs | submit login

> but when you create your own engine you are _fiercely_ aware of _everything_ it can and can't do

The problem is that if you start gamedev by making engines, then you aren't aware of what you need to do.

To give an example, if you make font rendering and looks blurry/pixelated, what now? Oh, and a simple 2D game takes 8 seconds to load, wonder why?

Meanwhile, if you have ever made a Unity game, chances are you already know the keywords "SDF" and "Texture compression", because you tore down an already big engine for optimizing your game and accidentally learned about what features a game needs.




> What now? > wonder why?

What now is you have a fantastic opportunity to learn some topics in depth. Using Unity is also no guarantee that you'll come across those terms. And even if you do, if the Unity solution is to check the correct boxes you're exactly better off from a knowledge point of view.

I'm not advocating for not using Unity, but I am advocating for learning, increasing the depth of your understanding, and just a general approach of curiosity and problem solving.


This was my experience.

I dove into writing a niche game engine and stumbled over every hurdle that modern game engines solve.

Been learning Godot lately and going back to writing an engine I'm confident I could trivally solve a lot of those hurdles.

Additionally, if im trying to make a basic editor I can now see what is tenfold easier graphically (animations) and what I don't mind programming in.


Writing an engine also has made more so much more aware of the implicit decisions of other engines and the "why" behind them. Largely I've come out of the process with much more respect for what they've done so far to get to where they're at.


I will say that you definitely shouldn't start gamedev by making your own engine. To your point, you need to learn the language of game development to actually understand how game development works and is different from other fields of software development.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: