Personally I’m not all that interested in working on a first person shooter, and I feel that a Doom clone with lots of gore wouldn’t be a great fit for Arcade. I may be a bit of a dinosaur here, but when it was released it was considered quite controversial and it got an 18+ age rating in Germany due to its unprecedented level of violence. I guess people got more jaded since then…
From a technical point of view, there’s the question of what kind of 3D engine to use. The most basic is walls-only raycasting similar to Wolfenstein 3D, and that’s what’s implemented in @mmoskal’s raycasting demo.
The next step up is a fancier raycasting method with textured and multilevel floors/ceilings, i.e. Doom/Duke Nukem/Dark Forces style. I’m not aware of anyone having implemented that on Arcade hardware, and I suspect that it wouldn’t run well without adding some low-level functions to do perspective corrected texture lookup or similar.
Alternatively, you can use a full 3D renderer that isn’t restricted to vertical walls, that’s what Quake and most modern games use. I implemented a simple one for Space Rocks 3D, but that has rather severe performance constraints on Arcade hardware. Performance drops rapidly when there are lots of polygons onscreen, and also when they cover a large fraction of the screen. Typical indoor FPS scenes cover the entire screen with polygons and often have overdraw with overlapping geometry, and that would likely drop the framerate to single digits with my current 3D renderer. Also, it can’t currently draw textured polygons, and adding that would likely slow it down further.
I’d still be interested in working on a space shooter along the lines of Elite or Starfox. I’ve started initial experiments for Space Rocks Revenge, including some new math code to support AI-controlled spaceships and added color, but haven’t touched it in the last two months. Here’s a snapshot: