Research For New Project

I needed some help with a new project of mine that for the life of me I cant figure out. :emo:

Project: A doom like engine for a school project. However I’m not quite sure where to start.

First things first… I’m not sure what to be using. I can’t find many tutorials over LWJGL or OpenGL that aren’t deprecated.
I’m not sure if it would be worth trying to find Slick2D tutorials, or try to just use what I already know in Java.

First Question: Which option would be the strongest and easiest? (easiest as in being able to find resources to learn from)

At the same time, This would be my first bigger project. My biggest problem is setting up the entire engine. I have a basic entity system, however I have nothing for 2.5D. I’m not even sure if I’m getting my point across. I guess my problem would be setting up the map and perspectives so make it seem like you are walking through a 3D space. I’m not able to find any code, and the code I DID find is poorly formatted and not commented.

Second Question: Are there any resources to help me get started in this, or anyone experienced willing to help?

Oh oh oh oh!!! I love Doomy projects :smiley:

For the first question:
It depends. Either you “hack” that doomy thing with just rendering real 3D stuff, or - which is much more fun and intresting - you write it all yourself. Believe me, its harder in the beginning, than in the end. The cool thing about it is, that it’s a raytracer. But in 2D. You simply raytrace the map from the top view (aka. bird’s eye view), and then the height of the found walls is the distance the ray “walked”.

But to get back to the question: If I were you I’d stick with standard Java, and let it render a pixel-array :slight_smile:

For question two:

There is some nice code from Markus. He always loved making these 2.5D-Doom-like graphics engines, take a look at Prelude of Chambered (The game, The source), his last Ludum Dare game.

Err, by “Doom like engine” perhaps you simply mean “FPS engine”, which is something you can do with some basic scenegraph management and some BSP culling. That’s a Far Cry altogether from writing your own raycasting renderer (yes I know, Doom’s is not a raycaster), and if that’s your first real project, you’ll be Quaking in fear at spending a Half Life running that code Marathon…

(god i’m silly today)

I’d suggest doing the stupidest thing possible (except for all the others)…get it playable and only think about cleaning/speeding it up if you really need to have have time at the end.

Break up a level (assuming there are levels) into cells and portal. Each cell stores individual lists of: walls, ceiling, floors, entities and portals inside of it.

When rendering, start with any empty LIFO of cells. Place the cell of the camera into it. Starting rendering loop:

while not empty: pop cell.
turn on color & depth writes
render all walls, floors, ceiling and entities inside
turn off color & depth writes
for each portal
start query
draw portal’s polys
stop query and if any pixels would have been drawn, put the cell connected to the portal into the LIFO.
done
done

Thank you so much for your ideas ;D

You will probably hear more from me as I get farther into this project.