• Stars
    star
    1,840
  • Rank 24,225 (Top 0.5 %)
  • Language
    C++
  • License
    Do What The F*ck ...
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

486 lines of C++: old-school FPS in a weekend

Project based learning: build your own 3D shooter in a weekend

Check the wiki for the detailed description of what is under the hood. Screw the source code, read the wiki.

If you are interested by this project, you might want to check my other tiny* repositories, they were fun for me to make, I hope it will be fun for you to read.


This video shows what lies in this repository: TinyRayCaster

At the time I write this text, the repository contains mere 486 lines of code:

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

Few things tinyraycaster is NOT:

  • it is NOT a game, it is a mere stub;
  • it is NOT even a 3d engine;
  • it is NOT a place for design patterns lectures;
  • it is NOT a competitor for id Software products. People, please, I am not John Carmack and neither my students are. Focus on the word "initiation".

Few things tinyraycaster IS:

  • it IS fun;
  • it IS a blank you can start from;
  • it IS created in one day, check the commit history. I broke my leg, so I wrote some code instead of walking!
  • it IS a project you can participate to, pull requests are welcome, and anyone can edit the wiki;
  • it IS full of bugs. Bugreports are welcome!

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

Compilation

sudo apt install -y libsdl2-dev git
git clone https://github.com/ssloy/tinyraycaster.git
cd tinyraycaster
mkdir build
cd build
cmake ..
make

You can open the project in Gitpod, a free online dev environment for GitHub:

Open in Gitpod

On open, the editor will compile & run the program as well as open the resulting image in the editor's preview. Just change the code in the editor and rerun the script (use the terminal's history) to see updated images. Note how awesome Gitpod is, it allows to run SDL2 games directly in the browser!

More Repositories

1

tinyrenderer

A brief computer graphics / rendering course
C++
19,058
star
2

tinyraytracer

A brief computer graphics / rendering course
C++
4,856
star
3

tinykaboom

A brief computer graphics / rendering course
C++
2,314
star
4

triador

Ternary computer emulator
C++
220
star
5

glsltuto

GLSL shaders tutorial
C++
213
star
6

least-squares-course

By a programmer for programmers
TeX
181
star
7

hellOGL

Yet another (but better) modern OpenGL hello world
C
81
star
8

tinycompiler

Writing a compiler in a week-end
Python
69
star
9

ultimaille

The ultimate mesh handling library
C
47
star
10

sdl2-demo

sdl2 platformer game blank repository
C++
45
star
11

tutorials

C++
42
star
12

penny

3 servos, 10 dollars hexapod
HTML
30
star
13

stlbfgs

C++ L-BFGS implementation using plain STL
C++
24
star
14

invertible-maps

C++
24
star
15

neato-xv11-lidar

Protocol description and linux implementation
C++
22
star
16

instantangle

2D mesh deformation interactive demo
C
20
star
17

tinyrenderer-java

Just a java implementation of https://github.com/ssloy/tinyrenderer/wiki
Java
15
star
18

QIS

Quasi-isometric stiffening C++ implementation
C++
9
star
19

quadruped

TRIK + dynamixel ax-12a
C++
7
star
20

harlequin

ZX spectrum 48k Harlequin Superfo clone
7
star
21

mathfun

C
6
star
22

winslow2d

Winslow elliptic smoothing for 2d unstructured triangular meshes
C++
6
star
23

ENSG

Support c++ code for lectures on numerical geology
Python
3
star
24

stroll

code example for bachelor programming class
C++
2
star
25

pentominos

L2 programmation avancΓ©e support
C++
1
star
26

ternary

triador hardware
C
1
star
27

NuPogodi

C++
1
star
28

ifs

iterated function systems small programs
C++
1
star
29

jfig2020

rendering contest entries
1
star