Skip to content
Dmitry V. Sokolov edited this page Feb 10, 2019 · 19 revisions

read this ->

This text is written for those who only make first steps in programming. The main idea is to show, step by step, how to make a game à la Wolfenstein 3D. Attention, I am not going to compete with Carmack, he is a genius and his code is stunning. I am at a different goal: I'm using the huge computing power of modern computers to allow my students to create fun projects in very short time (typically few days), without getting stuck in the optimization nightmare. To write a slow code is my intention, it is much shorter and more understandable. While Carmack writes 0x5f3759df, I write 1/sqrt(x). We pursue different goals.

I'm convinced that to become a good programmer one needs to write code for his own pleasure, and not just park his posterior at university programming lectures. Strangely enough, in our university, future programmers develop endless series of CD/book catalogues and other boring things. Grrhmm. My goal is to show examples of projects that are fun to do. It's a virtuous circle: if it's interesting to do a project, a student spends a lot of time on it, gains experience and sees even more interesting things around (these things become more accessible!), and then plunges into a new project again. It is called project based learning, and I am a huge fan of the concept.

This video shows what lies in this repository: TinyRayCaster At the time I write this text, the repository contains mere 486 lines of code, that is why I call it tinyraycaster:

haqreu@daffodil:~/tinyraycaster$ cat *.cpp *.h | wc -l
486

This repository does not contain a complete game. It is meant for you to program. As an example, here are the sources for the game made by my students Salih Nascimento and Stephane Hulot, also check the following youtube video for a preview:

Thanksgiving party

Clone this wiki locally