my first ray-caster

This is just an experiment. I never did a ray-caster before and took this jam as an opportunity to try it out. (I followed the lodev.org tutorial for most things.)

In the beginning I didn't have any gameplay ideas, so I just made an "engine". Then I had some gameplay ideas, but none of them were doable for me in the short amount of time I had, or they just didn't motivate me. In the end (on the last day) I added some rudimentary editor functionality, but this is mostly moot as there is no save/load. Still, it serves as kind of a sandbox, and that's the only reason I felt I could upload this.

Overall I liked working on this and it might be the base for another jam entry some day. Made with haxe, Kha and zui. "Features" are: textured walls, sprites, 3(!) block layers (bottom, center, top), more or less correct display of infinite wrapping levels, collision with walls. It also supports different wall textures for each block side, but that isn't shown in this prototype unfortunately.


  • WASD for movement
  • RMB (keep pressed) to rotate camera with mouse
  • LMB, while RMB pressed to edit the level - choose one of the 6 edit modes
  • 1-7 and mouse wheel switches between the edit modes

Wall and floor textures are from textures.com.

Comments (5)

 • 3 months ago • 

This is a good, straightforward editor (once I read the instructions). I had a nice time making an infinite garden and seeing it stretch away forever, this seems like something a raycaster is well suited to. A neat raycaster with multiple level support!

 • 3 months ago • 

There's a very impressive engine under this editor, with some really cool features, especially the 3D tiling. I'd like to see them in a game sometime! The infinite area is very cool, too. I'd be interested to hear about how you implemented some of them.

The editor itself is also quite powerful; I wish I could have used it!

  • 3 months ago • 

Thank you all.

@toasty There is nothing special about the infinite area - in fact during the tutorial I just noticed how easy it would be to implement this, so I tried it out. Instead of stopping the ray-cast on the level borders it wraps the level with a repeat() function. Rendering sprites became a bit more complicated - I collect them during the ray-casting, and then draw them all, even the clones, in reverse order.

 • 3 months ago • 

Oh neat, I like editors :-) The controls felt a little cumbersome, but it's not too bad once you carefully read the instructions and get the hang of it. And it's not just barebones either, with the addition of sprites, separate floor/ceiling, etc.

(I usually find that building an editor is almost as much as creating a game.)

It may have been easy to you, but there's something about infinity and repetition that really gets the imagination going. Especially since you have multi-level support.

I've noticed that window resizing doesn't work for me … and also that sprites are always placed on the base-level, so they'll float in mid-air if placed over a gap.

Hm… Maybe you can make the editing itself into a game? There's just something about creating infinite rows and columns that should lend itself decently to puzzle making I think.

 • 3 months ago • 

Please discover the mockups for our luxurious housing project,
featuring a beautiful garden covering INFINITY SQUARE METERS

The controls are comfortable to use, and the various tools intuitive to work with. Great work, all we need now is a Play button to turn the human sprites into an endless stream of enemies to shoot :)

Login to comment