Hacker News new | past | comments | ask | show | jobs | submit login

A Wolfenstein engine is pretty simple to replicate, it's basically a 2D top down game projected into the 3rd dimension.

Here's how it works.

http://lodev.org/cgtutor/raycasting.html

A doom engine is a little more involved and requires BSP trees, more clipping/culling and something closer to actual 3d (floors and ceilings with variable heights, geometry that doesn't fit onto a grid).

Both of the games used 2d sprites for enemies rather than 3d models, so you could draw all of the graphics with paint rather than a modelling tool which would probably be a significant time saver.




The BSP* algorithm used in Doom was research paper material in 1991, and Carmack was among the first to apply it to low performance PC games.

* http://en.wikipedia.org/wiki/Binary_space_partitioning

I keep thinking about the Malcolm Gladwell "Ten thousand hours to expertise" idea, and for Carmack to be looking at this sort of stuff at the age of 22, he basically had to eat sleep and shit computer graphics for years and years on end before he could be in a position to apply this to a computer game.


I read something from the System Shock developers about them finding out about BSP after Doom was released. They'd spent the whole time culling levels to try and fit into memory, never considered recursively chopping it up.


That sounds pretty complicated to me :D But, I am admittedly a layman in this area.


It probably makes more sense if you follow along with the article and convert the code examples into your favourite language. The good thing is that you don't even need to use Direct3D/opengl, you could do it with only a <canvas> element in javascript for example or anything else that lets you assign colours to pixels. You could even make an ascii art version if you were so inclined.


Or you can use unity.


You could, but the renderer in unity is optimized to deal with environments far more complex than were possible in wolfenstein or even doom and thus uses very different techniques to put geometry onto the screen.

A psuedo 3d wolfenstein clone written with a reasonably optimized raycaster would probably outperform a unity version quite significantly. I don't know how well suited unity is for having 3d game entities represented by flat textures instead of 3d models for example.


I'm just starting delving into SDL2 tutorials. If I ever get competent at it, this sounds like a fairly good idea for a project.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: