Why make a game engine? How did the project start?
Put simply: because we have a passion for building game engines.
To expand a little more, Yan started the project of building a game engine for two reasons: passion and education. Throughout his childhood Yan was always fascinated with the technology behind games, and often enjoyed playing with/learning more about the technology itself, rather than the games. When Yan decided to pursue software engineering as a career, he knew that he wanted to build game engines. After working as a game engine software engineer at EA for 4.5 years, first on EA's primary mobile engine called Osiris and then later Frostbite, Yan decided that he wanted to leave and build his own technology, teach others how to make game engines, and learn more about the topics he was interested in.
Yan has also always had a passion for education and teaching others. He has hundreds of educational videos on his YouTube channel teaching C++, general software engineering, OpenGL and graphics programming, and much more. The Game Engine series was really the beginning of Hazel - a video series teaching how to make a game engine from the beginning, where every line of code is explained and written on-video. Hazel started as the subject of the Game Engine series, and has matured now into both a 2D and 3D Game Engine which extends far beyond the original video series.
Writing in 3rd person is fun. Yes, I (Yan) definitely wrote all of this. :)
Who is "we"?
Hazel is made up of a core team of around six. We are a diverse team of employees, contractors and volunteers from all around the world, and as a small team our roles frequently change. Here is a brief overview of the team (Discord username in brackets):
- Yan Chernikov (@TheCherno) - Creator, Owner and Director, specializes in graphics rendering and engine architecture
- Peter Nilsson (@peter1745) - Software Engineer, mostly physics and scripting
- Tim Kireenko (@timkr) - Gameplay Engineer and Artist, working mostly on making games with Hazel and improving scripting
- Jim Waite (@0x) - Software Engineer, mostly working on animation and gameplay engineering
- Jaroslav Pevno (@Jaytheway) - Audio and UI engineering
- Karim Sayed (@karimsayedib) - Rendering Engineer working mostly on graphics