Ive been programming 2d games for a few months now and got a few games completed. Although im still learning a lot about 2d, I was wondering about if it would be possible to make pseudo fps tech demo(original wolfenstein/doom) using allegro 4.2. I know allegro isn't a 3d power house, but I want to know what techniques I should research to make something like this?
psuedo-3d fps(doom 1) possible using allegro 4.2?
Ive been programming 2d games for a few months now and got a few games completed. Although im still learning a lot about 2d, I was wondering about if it would be possible to make pseudo fps tech demo(original wolfenstein/doom) using allegro 4.2. I know allegro isn't a 3d power house, but I want to know what techniques I should research to make something like this?
I think you'll find this article useful:
http://lodev.org/cgtutor/raycasting2.html#Introduction (Covers basic raycasting - so you can go right ahead and code Wolf3D and DOOM when you feel like it! )
This I also picked from my bookmarks:
Ben Ryves built a JS raycaster : http://benryves.com/bin/js_raycaster/raycast.htm
- if you peek into his scripts with a good page inspector (Google Chrome's or Firebug, perhaps) you can break the code and see how he does things.
Ironically this is probably going to be harder than using "proper" 3D (via an API like OpenGL). Good luck with it though, it will have a much more authentic look
Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Personally, I know I'd be able to make a raycaster with less effort than using a 3D graphics API or engine such as unity.Ironically this is probably going to be harder than using "proper" 3D (via an API like OpenGL). Good luck with it though, it will have a much more authentic look :)
With a homebrewn raycaster, you can chose to do a minimal tile map visualization, and focus on the mechanics right away.
As OP is already using allegro and C or C++, I'd say it's a good and a not too difficult exercise.
(Sure if he wants to use shaders or meshes, or wants to use more complex geometry (sector-over-sector) etc, he'd be better off with a proper API)