Good resources for 2.5D and rendering walls, floors, and sprites

| | August 6, 2015

I’m curious as to how games like Prelude of the chambered handle graphics. If you play for a bit you will see what I mean. It made me wonder how it works. (it is open-source so you can get the source on this page) I did find a few tutorials, but I couldn’t understand some of it, though it did help with some things. However, I don’t like using code that I don’t understand. Does anyone know of any good tutorials for this kind of 2.5D? Any help is appreciated.

5 Responses to “Good resources for 2.5D and rendering walls, floors, and sprites”

  1. I’m currently following the tutorial by Lode Vandevenne:
    http://lodev.org/cgtutor/raycasting.html. Note that this is only part 1 (basic raycasting and textured walls). Part 2 (ceiling and floor textures) and 3 (sprites) can be found by clicking the link “Back to Index”.

    I think it’s great. It contains everything I needed to make my own engine. The tutorial is based on C++, but the concepts are described so well that translation to any language is easy. I’m coding in Java myself.

    (I’m doing the vector calculus it a little differently than Lode, however. I’m using 2-element arrays to represent vectors, and a class of static (void) methods to manipulate them, as is done in this more advanced 3D raytracing tutorial by Michael Birken: http://meatfighter.com/juggler/ (also brilliant))

  2. http://www.permadi.com/tutorial/raycast/index.html

    Best tutorial on raycasting i could find when i was researching the topic a couple years back. It’s pure theory, no programming. Other than that i suggest you read about the Doom engine and the Build engine. Reading the source code is IMHO far too time consuming (it’s pure C and ASM, plus plenty of irrelevant technology quirks) if you just want to understand raycasting. Reading ABOUT the engines however can give you ideas on how to solve advanced issues like doors (as funny as that sounds), check the wiki first.

    Here’s a great code review by Fabien Sanglard:
    http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

  3. Here’s a very detailed tutorial: Creating pseudo 3D games with HTML 5 canvas and raycasting. The key search term is “pseudo 3d game.”

    enter image description here enter image description here


    Also I posted the text of the tutorials scgrn mentioned. (I think I read these a long time ago. I remember the ASCII diagrams!)

  4. There are a couple of (very) old tutorials on Wolfenstein-style raycasting written by Peroxide. Search for “pxdtut7.zip” and “pxdtut8.zip”. The code is written in Pascal but the concepts are explained very well.

  5. I’m not sure on the specifics, but I got a few ideas just by browsing through the source-code of the game @ https://github.com/skeeto/Prelude-of-the-Chambered/tree/master/src/com/mojang/escape

    Maybe you can find some things there that will help you.

    EDIT:
    I noticed you had linked to the page, but I meant to specifically link to this file:
    https://github.com/skeeto/Prelude-of-the-Chambered/blob/master/src/com/mojang/escape/gui/Bitmap3D.java

Leave a Reply