All Projects → nforay → cub3d

nforay / cub3d

Licence: other
This project is inspired by the world-famous eponymous 90’s game, which was the first FPS ever. It will enable you to explore ray-casting. Your goal will be to make a dynamic view inside a maze, in which you’ll have to find your way.

Programming Languages

c
50402 projects - #5 most used programming language
objective c
16641 projects - #2 most used programming language
Roff
2310 projects
Makefile
30231 projects
perl
6916 projects

Projects that are alternatives of or similar to cub3d

alephone-android
Port of the AlephOne engine on Android
Stars: ✭ 30 (+66.67%)
Mutual labels:  raycasting
flutterstein-3d
🔫 A 3D raycaster implemented in Flutter
Stars: ✭ 40 (+122.22%)
Mutual labels:  raycasting
SmokinGuns
Official Smokin' Guns team engine repository, master branch was directly imported from SourceForge Subversion repository, pull requests will be reviewed and integrated in future Smokin' Guns releases.
Stars: ✭ 58 (+222.22%)
Mutual labels:  first-person-shooter
valhalla-project
Main repository for Valhalla, a first-person shooter game project inspired by old school and modern titles.
Stars: ✭ 32 (+77.78%)
Mutual labels:  first-person-shooter
ofxRaycaster
Plane, 2D and 3D Ray objects for openFrameworks.It checks for the intersection of a ray with a segment, a sphere, a triangle, a plane, an ofPrimitive, an ofPolyline an with an ofMesh.
Stars: ✭ 54 (+200%)
Mutual labels:  raycasting
sdl2-raycast
SDL2 C++ raycasting engine with vertical movement, floor/ceiling texture mapping and sprites.
Stars: ✭ 80 (+344.44%)
Mutual labels:  raycasting
server-linux
nQuake (QuakeWorld) server for Linux
Stars: ✭ 34 (+88.89%)
Mutual labels:  first-person-shooter
ray engine
A toy raycasting engine in Go + Ebiten
Stars: ✭ 19 (+5.56%)
Mutual labels:  raycasting
simple-3d-fps
A simple FPS game with BabylonJS engine following Clean Code principles
Stars: ✭ 44 (+144.44%)
Mutual labels:  first-person-shooter
MoravaEngine
2D/3D graphics engine written in C++ language. It currently supports the following graphics APIs: OpenGL 3.3+, Vulkan 1.2, DirectX 11. Its current purpose is to experiment with various CG concepts and techniques.
Stars: ✭ 129 (+616.67%)
Mutual labels:  raycasting
sparse-octree
A sparse octree data structure.
Stars: ✭ 68 (+277.78%)
Mutual labels:  raycasting
raycaster-sdl
A simple raycasting demonstration using SDL2
Stars: ✭ 24 (+33.33%)
Mutual labels:  raycasting
bvh-tree
A Bounding Volume Hierarchy implementation using javascript
Stars: ✭ 41 (+127.78%)
Mutual labels:  raycasting
canvas-raycasting
Canvas + Raycasting Experiment
Stars: ✭ 17 (-5.56%)
Mutual labels:  raycasting
Portal-Raycaster
A software portal rendering game engine
Stars: ✭ 41 (+127.78%)
Mutual labels:  raycasting
RaycastVisualization
This asset allows users to view raycasts as the user fires them.
Stars: ✭ 61 (+238.89%)
Mutual labels:  raycasting
GPU-Zen-2-Baker
🥧 An OpenGL 4.x example of GPU Zen 2's ray casting techniques for baked texture generation chapter.
Stars: ✭ 32 (+77.78%)
Mutual labels:  raycasting
Kosm-Classic-FPS-Template-UE4
Classic Arena First-Person-Shooter Mechanics for Unreal Engine 4.
Stars: ✭ 38 (+111.11%)
Mutual labels:  first-person-shooter
OwlRaycastEngine
Basic MonoGame raycast engine
Stars: ✭ 34 (+88.89%)
Mutual labels:  raycasting-engine

Codacy Badge

cub3d

This project is inspired by the world-famous eponymous 90’s game, which was the first FPS ever. It will enable you to explore ray-casting. Your goal will be to make a dynamic view inside a maze, in which you’ll have to find your way.

Rating

115/100

Prerequisites

sudo apt-get install libbsd-dev libx11-dev libxext-dev

Utilisation

  1. Run make to compile the base version and make bonus for a more complete experience.
  2. Follow the instructions.

Bonus map preview

Controls

If you are running Linux the controls are based on a AZERTY keyboard and on MAC a QWERTY keyboard.

Z Q S D / : Move and Strafe

Bonus controls:

Bonus version enable mouse camera control, you can change mouse sensitivity by setting ROT <int> in the cub file and movement speed (basically the speed at which the game is running) by setting SP <int>. Default ROT is 5 and default SP is 4. You should play around with these depending of your computer specs.

Bonus keybinds:

Key Action
1 increase distant shading
2 decrease distant shading
3 Buffer overlay
4 Toggle Interlacing
5 Print map
Shift Sprint

Map editor controls:

Key Action
Ctrl (Hold) add floor and ceiling
Numpad 1 (Toggle) Wall <-> Interior empty space (0 <-> 1)
Numpad 2 (Toggle) Exterior Floor w/ skybox <-> Interior Floor w/ skybox
Numpad 3 (Toggle) Alternate wall texture
Numpad 4 Pushable wall
Numpad 5 (Toggle) Doors (Unlocked > Locked Key 1 > Locked Key 2)
Numpad 6 Spinning cylinder
Numpad 7 (Toggle) Angled wall (2 diagonals)
Numpad 8 (Toggle) Rounded wall (one for each corner)

valgrind_log

Video preview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].