๐Ÿ™ƒ๐ŸŽฎ "Why did you write your own Game Engine?"

WELL, I'm going to try to answer THE question that every programmer, who is coding their own Game Engine, has to face.

(Here we go again)

โš™๏ธ๐Ÿ”ฅ๐ŸŽ๏ธ
Start your engines!

๐Ÿ‘‡THREAD!๐Ÿ‘‡

#gamedev #indiedev #indiedevhour #indiegames
โœจ First of all, there are A LOT of reasons why I'm doing my own engine. Probably I'll forget some.

๐Ÿ“š An Engine is a really complete problem to solve, lot of areas of knowledge are needed to understand the architecture of an engine and make it work.

๐Ÿ‘€ And I LOVE to learn.
๐ŸŽฎ Lot of people thinks games programmers should only code games, and nothing else in a lower level (like graphics, or physics). "Just code games not engines".

๐Ÿ” I've been always the kind of coder who likes to know what's happening under the hood.
๐Ÿ’ป I love coding, graphics and videogames, so one reason is, indeed, it's really fun for me.

โšก Other reason is, knowing what's happening under the hood really makes the difference as a coder/developer. Facing harder problems makes you stronger!

๐Ÿ‹๏ธ An Engine is THE training.
๐ŸŽ‰ It allowed me to be Team Lead Programmer in a UE4 project, I succesfully adapted to UE4 without previous courses or masters, because this project (my engine) put a bunch of "game dev theory" in my head, that's a good reason.

โ™ป๏ธ That knowledge is reusable between engines.
๐Ÿ“‘ In terms of software engineering, this project is also a great teacher.

๐Ÿงน It forced me to learn how to code in a clean way, readable, modular, how to refactor properly, using good practices and patterns (yes design patterns matter in gamedev ๐Ÿ˜‚) . Respecting memory and FPS!
โณ After all these years, I realized knowing about engine architecture is really important if you want to work in VG industry. Even if you want to be graphics, networking, physics or AI programmer.

โš™๏ธ Knowing how your field is integrated into an engine is really important.
"Shut up! You are crazy!"

๐ŸŽ“ Lot of Universities and Master degrees make theirs students make their own engines during the course. Why? Because is one of the best ways to learn the hard game dev theory! โœจ๐Ÿ“š

๐ŸŒš Are they so crazy?
๐Ÿ’ฐ Me or my parents weren't able to pay the cost of a VideoGames degree or Master. So I decided to start with Computer Science degree.

๐Ÿ’™ Since I always wanted to focus on programming, CS was a really interesting degree for me.
๐Ÿ—บ๏ธ I decided to create my own roadmap so someday, I could reach :

โœจ THE GLORIOUS VIDEO GAMES INDUSTRY โœจ
๐Ÿš€ That's another reason why I started my own Engine, I needed to put something really impressive into my CV. I thought a Game Engine was hard enough to impress people. I didn't want to be one of these devs with a Tron and a Mario clones in their CV, I wanted something else โœจ
๐ŸŒš Maybe you can say, "why didn't you just take Unity and create something cooler than a Tron clone?"

๐Ÿฆ† Because I knew nothing about gamedev! I was in my first Computer Science year, I didn't understand the concepts, the theory, nothing.
๐Ÿ‘ถ My engine started in 2013 as a SDL experiment. I just managed to render a square into the screen after months of tutorials an PDFs.

๐ŸŒŒ Then I started to understand concepts, connecting things I knew from playing videogames, everything started to make sense.
๐Ÿ“– During 5 years of University, I studied every day about gamedev, at nights, summers, spare time, after lunch. I collected all the books, articles and tutorials I was able to find and buy.

๐Ÿ“š I discovered #OpenGL which became one of the pillars of my learning process!
๐Ÿ“š And that's another reason! I needed something, a project, that was big enough to teach me the core theory concepts about game dev!

This Engine was my personal trainer
I presented the Engine as final project! And got my first job as VR-OpenGL programmer, just what I wanted! ๐Ÿคฉ

๐Ÿค” "why did you keep working on this project after university?"
๐Ÿ•น๏ธ Well, I had to code the final project engine in JS and WebGL, but I wanted to do it in the video game industry language : C++!

๐Ÿ”„ So I restarted the project, and ported the old JS core into C++ and it started growing from that until today. I took this last year and half
ok

OK

"why are you working NOW in you damn engine???!?!11!"

๐Ÿš€Because it got bigger and bigger, it's much more than an experiment, it something that works, and I want finally make a game with it. Even if it's a small game (I actually did some small games as integration tests).
You can follow @AdrianensisDev.
Tip: mention @twtextapp on a Twitter thread with the keyword โ€œunrollโ€ to get a link to it.

Latest Threads Unrolled: