Skip to content

A brand-new, old-school raycasting game-engine written in C!

Notifications You must be signed in to change notification settings

con-dog/2.5D-raycasting-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A 2.5D Raycasting Game Engine

A brand-new, old-school game-engine inspired by the likes of Wolfenstein 3D (1992) and Ultima Underworld: The Stygian Abyss (1992). Uses simple raycasting techniques and a uniform cell grid to render 3D.

Currently in Phase 4:

Phase 4 gif Phase 4 image

  • Levels are represented in memory as Jagged Arrays (to save memory)
  • Wall and Floor maps are just CSV's (So I can quickly make levels in Excel)
  • Wall and Floor textures are represented by char's so I can very quickly make maps with a variety of textures
  • Wall/Floor file io

Example level

TODO

  • Remake / Demake a Pokemon town in this engine
  • Texture animations
    • Src directory
    • Frames (must have at least 1)
    • Store current frame index tracker
    • Frame rate
    • Looping
    • Random start frame
    • Random frame order
  • Texture transparency (ray pass-through to next texture)
  • texture collision enabled bitfield for floor wall or ceiling via 0bXXX (similar to texture surface type) so you can have hotbox detection for walls, floors, and ceilings
  • Sprites are all square/rectangular like minecraft and always face the player, but can "change direction" by changing the texture currently displayed
  • Separate drawing/raycasting logic from window width and height

Previous phases

Phase 3

Phase 3 gif Phase 3 image

  • Fixed visual artifacts and pixel densities

Phase 2

Phase 2 gif

  • Wall collision detection
  • Basic texture mapping for walls
  • Very warped tetures with many artifacts

Phase 1

Phase 1 gif Phase 1 image

  • Very basic ray-casting
  • No collision detection

About

A brand-new, old-school raycasting game-engine written in C!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published