XaiJu
The Cherno
The Cherno

patreon


How's it going? A long post.

Hi everyone! I do a pretty poor job of communicating with you all (because I'm "busy", [insert other poor excuse], etc.) so I thought I'd write a little post because I have some downtime. Prepare for a post.

I just wanted to thank you all for your support. That's what motivated this post. I don't say this enough but I really appreciate all of you. So here: ❤️

Most of you (I think) support me because you want to see Hazel grow, and are interested in getting your hands on it. Others support me because they enjoy my videos, have found them helpful, and want to see more. Either way, I'm really grateful and glad to have you here.

I want to talk a little bit about how important your support is, and what actually happens with the money you give me. I've never really talked about money before, and I figured some of you might be interested in where exactly it goes, and what it achieves. Because most of you are here to support Hazel, we're going to focus on that - the story of Hazel, me, and how we got here.

First and foremost, it's a fact that Hazel would not be where it is today without your support. In fact, it probably wouldn't exist at all. Sounds dramatic, but it's true. When I first started playing with the idea of making a "real" game engine and shipping games with it, I was still a Software Engineer working on Osiris and Frostbite at EA. I had a passion to go beyond the politics and corporate formalities of a large organization, and make something myself - essentially create art that I had full control over, from the engineering behind it to the user-facing visual presentation and experience. I was always an artist at heart, I just always liked to engineer my own art, if that makes sense. So one day I decided to finally start this sort-of dream of mine, and I started working on Hazel.

Now working at EA on game engines... there was obviously a bit of a conflict of interest here. My manager(s) were always aware of my YouTube channel and online presence (in fact, my YouTube channel was linked in my resumé when I applied), and it was never an issue for them. In fact, my first boss who initially hired me would watch my live streams in the evening and was even active in chat, helping me and others! I knew, for the time being, that my future was at EA and I didn't want to risk that, so I obviously didn't push this privilege and treated Hazel as more of an educational series rather than an actual product itself, or as a platform that I would use to release games - something that probably wouldn't have gone over too well. Whilst there's a chance that my boss would have potentially been fine with it, the higher-ups were not as fond of this idea.

And so, if I had decided to stay at EA, one of two things would have happened: either Hazel would have remained a completely education-only series (look at the Game Engine series on YouTube now as an example); or it would have eventually fizzled-out and would have become a hobby-only project I would work on whenever I had the time/will to, prioritizing the "real" work I would be doing at EA.

But I took the risk. I got married, went on my honeymoon with my new wife to Japan (which was excellent btw), got back home and... resigned. It seemed like a bit of a shock to the team - I remember sitting in a boardroom with the three technical directors and development director of the team as they just asked me "but... why?". I was the first person to resign from that team since I joined it. I said some stuff about how I "wanted to spend some time with my wife and travel", and explore YouTube a bit more. I think my biggest reason though was... because I want to go through making a game engine on my own to learn more. They said "why can't you do that here?", but I knew I needed to go on this journey alone. I had a thirst for more knowledge and I simply needed more time to soak it in - working at EA full time meant I had less time to learn what I wanted to. I know I started this paragraph with "I took the risk", but that was a bit of a lie. It wasn't really a risk.

By the time I had resigned from EA, I was making slightly more money from YouTube ads, sponsorships, teaching programming/game engine dev privately (yes I do private tutoring, most people don't know!), and this Patreon than I was from working at EA full time - so I knew I would be okay (along with my new family) if I quit and focused on my business full time. This is important - when people ask me about this transition from a full-time job to being self-employed, I always make sure to highlight this. It's not that I'm averse to risk-taking per se, but it's better if you don't have to; building a business on the side whilst having an income-earning job is obviously preferable.

It was a sad time, I won't lie. I spent 4.5 years of my life working full time at EA. I was going to miss the people I worked with, my routine and the environment I was in, and the tech we had worked so hard to build. But I knew that I had to, and I re-assured myself that if it doesn't work out, I could always come back. My managers also made that clear - my boss wrote "you will be welcomed back when you realise your error" on my goodbye bear that everyone signed (my wife made me get one, and I'm glad she did).

This has become a bit of a Story Time with Cherno™, so I'll cut to the chase. Hazel still exists, and I'm here writing a post on Patreon, so clearly it worked out well. But the reason it worked out well, is because of you. All of your support is what makes this possible. And I'm not just talking about financial support - you simply being interested in this project is what makes it exist. Isn't that cool?

In the last year, we've achieved a lot, and Hazel has grown so much. Halfway through last year I hired Tim - my first employee. I wanted Tim to start using Hazel to build things - after all, it is a game engine so we should use it as one! Tim would focus on building games using Hazel and C#, and also be our primary artist.

Earlier this year, I hired Peter. Peter was already really active in the community and had contributed a lot of code to Hazel - such as integrating Nvidia PhysX so we could have 3D physics! He did this just for fun, as a volunteer, but his work was extremely valuable and I wanted him to spend more time working on what we loved. So when we hit new milestones on Patreon, I was able to hire him.

Tim and I also have an office that we work in. I think an office is super important where possible - it helps the team stay motivated, have fun downtime together, and brings an extra dimension to productivity. Peter lives in Sweden, whilst we are in Australia, so unfortunately he has to work remotely. We still make it work though, with weekly video meetings that last for hours, where we don't just talk about work but also hang out and become a stronger team.

All of this has enabled Hazel to reach some serious milestones this year, and I couldn't be more proud of the team and what we've accomplished. Recently the three of us made a game called Dichotomy in three days for a game jam called Ludum Dare. You can download and play Dichotomy for free here. We've released games made in Hazel before, but Dichotomy is special because of the new technology it has shipped with: asset packaging and multi-threading.

Asset packaging means that every asset in the game (3D meshes, textures, scenes, audio files) are all packaged into a single binary file called an asset pack. The formats of these assets are also optimized for Hazel's runtime, meaning they're super fast to load. So for example, 3D meshes require no transformation to get from a .gltf or .fbx file into a format that we can send to our GPU for rendering - they're already in that format, and simply need to get from disk to CPU/GPU. This also means that assets can't easily be stolen, since they're effectively in a "proprietary" format (although in reality, not that difficult to write a tool to extract and convert them to a format like .gltf).

Multi-threading refers to the engine's runtime having two persistent threads: a Main Thread, and a Render Thread. This is a common architecture for game engines because there is usually significant overhead associated with rendering-related operations, and it makes sense to scale this across CPU cores (since we have many of those) and run these operations concurrently. The result of this is faster CPU frame times, since hypothetically if the operations were perfectly balanced this would result in 2x faster performance.

I'm planning to make a dev log talking about these features in detail soon. These two features are particularly exciting because they make Hazel feel like much more of a "real" engine that can actually ship titles, and not just a little sandbox/playground editor that can display some graphics. That's a huge milestone, and it's only going to get more exciting from here.

So how have we been able to achieve these milestones? Who pays Tim and Peter's salaries? Who pays for the office? You. Your support here on Patreon is what directly goes into the development of Hazel, and a company that we call Studio Cherno. I pay myself as well of course, and make sure my family is taken care of. But otherwise, the money goes back into the company. For me, more money just means we scale more - we could hire more people and achieve more.

So thank you for your support, again. I hope you've enjoyed reading this as much as I've enjoyed writing it. It's been nice to reflect on everything that's happened and led to this moment. I hope to do some more writing in the future.

I hope that I've brought you a healthy fraction of the benefit you've brought to my life. Please leave a comment below and tell me how your experience has been. And if there's any other type of content you'd like to see more of, please let me know. Thank you for reading. ❤️

Comments

Hi I'm new to this community. I'm in college right now for computer science and I'm looking for a good mentor or really anyone that I can shadow. I'm having many challenges working with opengl and I feel that a mentor would really help to clarify a lot of concepts about coding in general and get me on the right track. Let me know please. Thank you.

Christal Willett

I'm here as a newbie student learning c++, I am getting a lot of good info out of the c++ series, and I wanted to be able to ask newb questions on the discord. :)

Thomas_1611

Your C++ and game engine series helped me get back into the swing of coding (back when I coded it was C++ 98), land a better job in sw dev and really get my career to where I wanted it to be :) that was 3.5 years ago, glad be able to support this channel/project and can't wait to see what you'll do next.

Ilex J


More Creators