Hacker News new | ask | show | jobs
by _gabe_ 1008 days ago
> Again, I predict a couple weeks.

I’ve made similar predictions in the past… these days, I predict that a couple years actually makes a lot more sense. Especially if you’re not familiar with game engines, and especially if you have to figure out: physics, input mapping, window systems, graphics pipelines, audio systems, game logic component systems (basically the game loop), level systems, transitions, platform support (switch, PC, PS5, Xbox, …), level editors, serialization, animation systems, particle systems, and more!

I have a big fat book sitting on my bookshelf called Game Engine Architecture by some of the developers at Naughty Dog. That bad boy is 1,000 pages and just gives a high level overview. It does not teach you how to set up a graphics pipeline, open a window or write a shader. I have other big fat 1,000 page books for those. Those do not teach you the mathematics needed to fully grasp linear algebra. I have yet more big fat 1,000 page books for that. Those books do not teach you C++, I don’t believe any book is sufficient for that big fat language, but I have a few anyways.

It’s cool if you enjoy tinkering on engine stuff, but boy am I glad that the Hollow Knight devs (I believe there were only 2 people) just used an engine. It’s an amazing game, and I could care less how it was made. I’m just glad that it was made.

Edit: I forgot to mention game HUDs, UI systems, font rendering in general, and asset management pipelines to the list of things that come with an engine but you’d have to either code it yourself or just not have it if you don’t want to use an engine. All of these subdomains can have years of effort poured into them (speaking from experience). The rabbit hole never ends haha.

1 comments

Those big fat books are, from my experience with math books, definitely not written in a way to teach well.

Programming languages can be broken down to their syntax. For experienced programmers, I recommend starting by reviewing a language's reserved keywords then skim over any core lib, for example: https://en.cppreference.com/w/cpp/keyword

There are similar shorter paths for people. However, I'd note that most people who went to school for CS have already taken math classes through at least linear algebra, and because of interest, many also took game development classes. At least, I did. I actually wrote a game myself from scratch in C++ in high school in the days before youtube, when there was very little guidance on the internet. It was bad, but if I could do it as a child, others can certainly do better today.

Rabbit holes never end. Professionally, I learn in sort of random directions, at least learning what I need for my next task. But it's impossible and completely unnecessary to have complete knowledge of anything. YAGNI.

Math books can be a hit or a miss, but Game Engine Architecture is an amazing overview of all the major systems in a game engine. You’d also be doing yourself a disservice if you didn’t read something like OpenGL Superbible (that book filled in so many gaps in my knowledge and made graphics development so much easier).

As for the rest of your comment I absolutely agree. I wouldn’t discourage anybody from trying to write a game from scratch, but if you want to focus on art style, level design, game mechanics, and being able to easily ship to almost every platform, then I would definitely encourage you to use an engine like Unreal or Unity.

OP made it sound like Hollow Knight could’ve been a great game if only they didn’t use Unity, but I don’t believe that. It is a great game, full stop. It’s like people that complain about electron (which I also tend to agree with) irregardless of whether the final product is any good or not. VSCode is great, in spite of the fact that it was written in Electron. And ultimately, the people buying your games really won’t care how it was made, they’ll just care about how it plays.