Skip to content

Myu-Unix/ray_engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ray_engine

A toy raycasting engine built with Go + Ebiten v2 2D library

Heavily based on 3DSage fantastic Youtube videos of a C/OpenGL raycasting engine

Gun mode ! (old version of the engine with scaling issues)

img

2D map rendered in 3D

img

CRT scanlines

img

Build & run

Build with Go 1.16 and Ebiten v2 on Linux/macOS

 go build
./ray_engine

Keymaps

Arrows keys or ZSQD (Azerty) : Move

'i' : debug info toogle

'f' : fullscreen toogle

'l' : scanlines

'm' : Gun mode

'k' : quit

Features, todos and idea box

  • Port to Ebiten v2
  • Proper collisions
  • UI
  • Scale map to 16x16
  • 2D minimap for gun mode
  • Add basic floor/ceiling - Just a matching png for now
  • Binary textures wip
  • Up/down parallax/Y-xhearing
  • Ebiten Audio mp3 sound support
  • Weapon swap/shield
  • Proper ballistics - Rough prototype
  • Cube destruction/basic enemies - Rough prototype
  • Rebuild the 2D map (where actual raycasting is done) to fit the screen

Known bugs

  • Enemies are seen through walls

Assets

Gun from Destiny 2 screenshot by Bungie