I've been working in the games industry for over five years and have worked on a number of games and technologies targeting a variety of platforms. Over time my interests have tilted in favour of the engineering aspects of game technology rather than programming gameplay systems - this isn't to say I don't enjoy programming and developing games! My fascination with the technology behind video games is what pointed me toward securing a position at Unity Technologies. My interests are not limited to game and game engine development however; I have also been tinkering with compiler technology and programming language design. I expect my articles here to be varied in their content considering the wide subject area of interest; software development, computer science and game technology.
The intention for this website is to overhaul my now ageing portfolio page and evolve it into a blog space where content, views and information can be presented. I will be compiling detailed articles consisting of my various research and development explorations, along with opinions and high level thoughts. I am hoping for this to become a space where readers can find content to reference, learn from and inspire.
The project taking centre stage for much of the content on this blog will be the development of a production ready game engine. I have been researching and exploring this space for a number of years; I even started a YouTube channel and created a series of videos with a small glimpse into some of that exploration. Articles posted here will consist of deep dives into specific areas of game engine development with additional details related to the specific implementation chosen for the engine and resulting trade-offs. The original intention for this project was for it to be written it in C#, after much exploration and evaluation however - this was deemed inappropriate for my goals. Enter the Rust Programming Language;
Throughout the past two years I have been evaluating the Rust programming language for its usage in game engine development. The evaluation consisted of researching and exploring a number of elements of the language and their potential use cases. It became abundantly clear almost immediately that Rust competes with C++ in its focus on performance and zero cost abstractions, along with its systems programming focus. Without going into the details (I have several articles planned to do just that), Rust tackles the core problems many industries have had with C++ - namely security, memory safety and concurrency. It is not all plain sailing however, the language and standard library are missing some core features used aggressively in game development, the largest being the lack of custom allocator support for standard containers. Expect articles detailing the shortcomings of the language and standard library and how to effectively combat them.
To conclude and summarise; the intention for this blog is to detail my various adventures, explorations, thoughts and detours while progressing in the development of a game engine written in Rust programming language. I hope for this space to become somewhere many people can keep returning to for learning and reference materials.