Welcome! This book will guide you through the creation and design of a 3D game engine using the Rust programming language. A variety of popular open source libraries will be used to achieve this goal in a reasonable amount of time.
As of June 2022, the resources for learning game engine creation are scarce. The existing resources largely focus on
C++ and cover various rendering techniques rather than topics that would be useful for designing gameplay mechanics. This is excellent! However, the focus for many of these resources is not on building a structured program that goes beyond the scope of tutorial code. This book is meant to be higher level, demonstrating how to build a 3D world and render it in realtime. This will be particularly of use to indie game developers looking to create a 3D game from scratch without getting overwhelmed.
Rust is a great alternative to
C++! A few of the benefits:
- It provides a smooth workflow for developers with clear, specific error messages from the compiler
- rustup and cargo make managing rust toolchain installations and rust projects straightforward
- The lints from clippy help to improve the code quality and catch certain common mistakes
- rustfmt handles formatting the code and code style
- Memory safety. Code written outside of
unsafeblocks is checked by the borrow checker
The target audience of this book is moderately experienced developers with an interest in graphics programming and game development. Prior graphics programming experience will be particularly useful. This is the book I would have wanted to read when first starting out with designing games from scratch.
This book is very code-heavy and implementation focused, as opposed to other resources that may be more focused on theory.
This book will not go into detail on linear algebra concepts or mathematics, as there are already great resources available for deep information those topics. A list of useful external resources for building upon the content of this book can be found in the
Further Reading section of the appendix.
All of the source code for the
Phantom engine built in this book can be found on github: