https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ™ƒ" title="Upside-down face" aria-label="Emoji: Upside-down face">https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŽฎ" title="Video game" aria-label="Emoji: Video game"> "Why did you write your own Game Engine?"

WELL, I& #39;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)

https://abs.twimg.com/emoji/v2/... draggable="false" alt="โš™๏ธ" title="Gear" aria-label="Emoji: Gear">https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ”ฅ" title="Fire" aria-label="Emoji: Fire">https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŽ๏ธ" title="Racing car" aria-label="Emoji: Racing car">
Start your engines!

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‘‡" title="Down pointing backhand index" aria-label="Emoji: Down pointing backhand index">THREAD!https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‘‡" title="Down pointing backhand index" aria-label="Emoji: Down pointing backhand index">

#gamedev #indiedev #indiedevhour #indiegames
https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles"> First of all, there are A LOT of reasons why I& #39;m doing my own engine. Probably I& #39;ll forget some.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“š" title="Books" aria-label="Emoji: Books"> 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.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‘€" title="Eyes" aria-label="Emoji: Eyes"> And I LOVE to learn.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŽฎ" title="Video game" aria-label="Emoji: Video game"> 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".

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ”" title="Left-pointing magnifying glass" aria-label="Emoji: Left-pointing magnifying glass"> I& #39;ve been always the kind of coder who likes to know what& #39;s happening under the hood.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ’ป" title="Personal computer" aria-label="Emoji: Personal computer"> I love coding, graphics and videogames, so one reason is, indeed, it& #39;s really fun for me.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="โšก" title="High voltage sign" aria-label="Emoji: High voltage sign"> Other reason is, knowing what& #39;s happening under the hood really makes the difference as a coder/developer. Facing harder problems makes you stronger!

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‹๏ธ" title="Person lifting weights" aria-label="Emoji: Person lifting weights"> An Engine is THE training.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŽ‰" title="Party popper" aria-label="Emoji: Party popper"> 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& #39;s a good reason.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="โ™ป๏ธ" title="Universal recycling symbol" aria-label="Emoji: Universal recycling symbol"> That knowledge is reusable between engines.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“‘" title="Bookmark tabs" aria-label="Emoji: Bookmark tabs"> In terms of software engineering, this project is also a great teacher.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿงน" title="Broom" aria-label="Emoji: Broom"> 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 https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ˜‚" title="Face with tears of joy" aria-label="Emoji: Face with tears of joy">) . Respecting memory and FPS!
https://abs.twimg.com/emoji/v2/... draggable="false" alt="โณ" title="Hourglass with flowing sand" aria-label="Emoji: Hourglass with flowing sand"> 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.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="โš™๏ธ" title="Gear" aria-label="Emoji: Gear"> Knowing how your field is integrated into an engine is really important.
"Shut up! You are crazy!"

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŽ“" title="Graduation cap" aria-label="Emoji: Graduation cap"> 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! https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles">https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“š" title="Books" aria-label="Emoji: Books">

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŒš" title="New moon with face" aria-label="Emoji: New moon with face"> Are they so crazy?
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ’ฐ" title="Money bag" aria-label="Emoji: Money bag"> Me or my parents weren& #39;t able to pay the cost of a VideoGames degree or Master. So I decided to start with Computer Science degree.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ’™" title="Blue heart" aria-label="Emoji: Blue heart"> Since I always wanted to focus on programming, CS was a really interesting degree for me.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ—บ๏ธ" title="World map" aria-label="Emoji: World map"> I decided to create my own roadmap so someday, I could reach :

https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles"> THE GLORIOUS VIDEO GAMES INDUSTRY https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles">
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿš€" title="Rocket" aria-label="Emoji: Rocket"> That& #39;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& #39;t want to be one of these devs with a Tron and a Mario clones in their CV, I wanted something else https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles">
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŒš" title="New moon with face" aria-label="Emoji: New moon with face"> Maybe you can say, "why didn& #39;t you just take Unity and create something cooler than a Tron clone?"

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿฆ†" title="Duck" aria-label="Emoji: Duck"> Because I knew nothing about gamedev! I was in my first Computer Science year, I didn& #39;t understand the concepts, the theory, nothing.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‘ถ" title="Baby" aria-label="Emoji: Baby"> 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.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐ŸŒŒ" title="Milky Way" aria-label="Emoji: Milky Way"> Then I started to understand concepts, connecting things I knew from playing videogames, everything started to make sense.
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“–" title="Open book" aria-label="Emoji: Open book"> 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.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“š" title="Books" aria-label="Emoji: Books"> I discovered #OpenGL which became one of the pillars of my learning process!
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ“š" title="Books" aria-label="Emoji: Books"> And that& #39;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! https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿคฉ" title="Star-struck" aria-label="Emoji: Star-struck">

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿค”" title="Thinking face" aria-label="Emoji: Thinking face"> "why did you keep working on this project after university?"
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ•น๏ธ" title="Joystick" aria-label="Emoji: Joystick"> 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++!

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ”„" title="Anticlockwise downwards and upwards open circle arrows" aria-label="Emoji: Anticlockwise downwards and upwards open circle arrows"> 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!"

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿš€" title="Rocket" aria-label="Emoji: Rocket">Because it got bigger and bigger, it& #39;s much more than an experiment, it something that works, and I want finally make a game with it. Even if it& #39;s a small game (I actually did some small games as integration tests).
https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ’™" title="Blue heart" aria-label="Emoji: Blue heart"> I think that& #39;s enough for today, thanks for reading, thanks understanding and don& #39;t hesitate to ask anything!

(I put some gifs so it& #39;s funnier to read)

THANKS! https://abs.twimg.com/emoji/v2/... draggable="false" alt="โœจ" title="Sparkles" aria-label="Emoji: Sparkles">

https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ’ผ" title="Briefcase" aria-label="Emoji: Briefcase">https://abs.twimg.com/emoji/v2/... draggable="false" alt="๐Ÿ‘€" title="Eyes" aria-label="Emoji: Eyes"> Btw here& #39;s mi LinkedIn profile, just in case you want to take a look https://www.linkedin.com/in/adrian-egea-comenge/">https://www.linkedin.com/in/adrian...
You can follow @AdrianensisDev.
Tip: mention @twtextapp on a Twitter thread with the keyword โ€œunrollโ€ to get a link to it.

Latest Threads Unrolled: