- 18 hours on-demand video content
- Lifetime access
- Live meetup
- Downloadable resources and exercises
- Certificate on completion
- Access on mobile and desktop
- Secure checkout via Credit Card or PayPal
- 14-day money back guarantee
- Last updated August 2024
$59.99
ENROLL NOW FREE PREVIEWThis course will teach you how to create a complete raycasting engine from scratch. We'll use an algorithm similar to the one used in Wolfenstein 3D. The final project will be coded using both JavaScript and C. It will implement player movement, 2D map view, 3D wall projection, textured walls, sprites, and other optimization techniques.
This course will be divided in two important parts:
1. The first part of the course uses JavaScript to cover the theory and the math behind the raycasting algorithm. JavaScript is a simple high-level scripting language that helps us not get too distracted with implementation details.
2. The second part of the course uses the C programming language to implement a compiled version of our raycaster, including textured walls and sprites. We'll also use C to discuss important optimization and performance aspects of our code.
You'll need a web browser that can run JavaScript and a small C compiler. All these tools are cross-platform, so you can follow along with either Windows, macOS, or Linux!
The Wolfenstein 3D raycasting algorithm we'll learn is heavily based on trigonometry, so make sure you have pen and paper ready for the lectures. I will make sure we review and understand every formula we find along the way!
This course has no prerequisites. We'll cover all the math and the code as we go along, so even beginners with no prior experience are welcome to join!
Other raycasting tutorials out there are either too long or overwhelmingly complex. This course tries to be as beginner-friendly as possible.
We never skip any of the math or any other implementation detail. Everything is always taught from scratch, and you get to see the code evolving line by line in front of your eyes!
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.
73% of our students come back for another course
We don't offer discounts on our courses. Ever.
"This course is well-organized, gradually introducing the mathematical fundamentals and implementation details.
The JavaScript section helps learn the basics, and I loved that the final part it's written in C, a strong and typed language, making it a great learning experience.
Gustavo provides valuable references to expand on the topic, and I look forward to experimenting with what I've learned.
Great job! This has inspired me to explore more courses or even try something simple in 3D.
It could be better if it had English subtitles. Anyway, if you have a basic understanding, they are not needed. I had no problems understanding everything Gustavo said."
"I quite enjoyed this course but ended up building the whole thing using Processing (Java) rather than C - and it still runs at a full 60 FPS. I did find things a bit repetitive about 1/3rd through but others wanted more detail : so your mileage will vary. In summary, as always I enjoy these courses. Thank you Gustavo!"
"Gustavo Made an Intimidating Topic Feel Approachable!
Even after making a few simple games and having experience with C, I still learned a lot from this course.
I've always wondered how those old-school first-person games were made, and now I have a solid understanding of the raycasting technique. Gustavo made this topic incredibly approachable, breaking it down in a way that felt intuitive and engaging.
I had a great time implementing everything in SDL3 as I followed along. Whenever I needed to reference the course's source code, it was easy to download and compare, which made debugging and learning even smoother.
After this course, I feel like I have a much deeper appreciation for the foundations of 3D graphics—so naturally, I'll be diving into that course next!"
"Fantastic and very thorough. Nothing was skipped so you get the full learning experience. Even if you don't know the math before hand you will once you finish the course."