'Y-Column' Raytracer engine

Hey all,

I started one of my most ambitious projects to date last month, and I believe it is safe to say that I am nearly finished with it; it just needs some tuning. When I first started my endeavor, I ran into my first issue. As a result, I decided to dig further because I couldn’t simply render what the player sees (we could technically, but this is extremely unoptimized, especially for a gaming engine). Further research revealed that parallelism (or multithreading) is possible, but not sufficient enough to be implemented, therefore I abandoned that attempt in favor of a more comprehensive approach to this subject.

I refer to it as ‘Y-Column’ raytracing. The term comes from the fact that only vertical rendering, i.e. just walls, is used (while sprites can fill in the rest and whatnot.)

Features:

  • Vertical part rendering! (Think Wolfenstein 3D, or DooM)
  • Sprite rendering!
  • Texture rendering! (This is a very long and arduous process, so I won’t go into explaining as much, but the most I can say is that it, based on how many pixels on the screen there are, renders ‘segments’ by offsetting and splicing the image into 1 column, and reforming it based on the resolution and brick size.)
  • Skyboxes & Floors! (Custom texture for skyboxes, floors can just be set to colors.)

What’s to come?:

  • Lighting(?)
  • A refurbished version of texture rendering / better texture wrapping
Video

The video is a bit compressed, sorry for the bad quality!

This engine will not be published to the public for the time being, but once I have mastered it and have created a more polished version of what you see now, I may open-source it.

As always, thank you all for the feedback.

10 Likes

really cool, just when motion the video looks weird.

idk why, but this scares me. Can’t wait to see what else you do with this!

Wow thanks pretty cool! I made my own raycaster engine awhile back. It features curved walls, advanced map structures, multiple-level structures, basic lighting, textures, sprites, etc.

@Ethanthegrand14 While I was looking around, I saw your name pop up quite a bit. Very impressive if I might say so myself! I did take the liberty of studying some of the answers people gave to the questions you asked! The only thing I’m missing as of right now is probably basic lighting, which I might add (which just tints the screen a color based on the magnitude distance of a light(?)), anyways thanks for the feedback. :smiley:

@IceTheOneAndOnly Haha, yeah… about that. :sweat:

The dev forum caps file sizes at 10 MB and this video (upon recording) was about 50 MB? so you can imagine how compressed it is… unfortunately, there’s not much I can do about this other than uploading to a 3rd party site, which in my case isn’t necessarily needed, as you can clearly understand what’s in the video (I hope…). Thank you for the feedback!

@PinkFoxsil I’ve been getting a lot of people’s feedback recently, and honestly, I’m stoked for what else I can add/create in the future. Last night I had someone approach me about a concept they’ve been working on, a ‘rasterizer’ in ROBLOX. Pretty amazing, right? ROBLOX has come a long way, and it’s astounding that we’ve reached a feat so far (engine-wise) that we can take innovative projects such as creating a rasterizer in ROBLOX… but I digress, thank you for the feedback!

2 Likes

Next thing I would like to see is the 19s DOOM in Roblox

1 Like