Since first coming up with the idea and implementing the engine for Death 3d, I have learned a lot more about javascript graphics rendering, and as such I have decided to undertake the work to completely rewrite the Death 3d rendering engine from the current software canvas model, porting it over to WebGL. This change allows for better performance, higher resolutions, floor/ceiling textures, and dynamic lights, among other things. The work started earlier this week, and a lot of progress has already been made. For example, see below for the same scene, first rendered with the current Death 3d engine, and then below using the new WebGL engine.
The current Death 3d software rendering engine
The upcoming WebGL based rendering engine
Most of the work remaining is related to reworking some maps to be compatible with the new engine. For example, most of the current maps were not designed with lighting in mind, and so in many areas, the placement of ceiling lights either doesn't make sense or just does not exist, leaving rooms either too dark or looking strange. Also, since the old
floor casting work was only experimental, most levels do not yet include floor and ceiling map layouts, and those will have to be added to each. There is also a whole new wave of visual improvements that I can add to the existing maps by taking advantage of new features that I have added to the new rendering engine.
The current Death 3d software rendering engine
The current Death 3d software rendering engine
While not many people play Death 3d (yet!), the performance gains made by porting to WebGL will allow me to bring the game to other platforms where it previously was not possible, such as iOS and Amazon Fire tablet and TV devices. And if nothing else, the work done on rewriting the engine has gone a long way towards increasing my knowledge of WebGL programming, and will be helpful to use on other projects in the future.
This is but the first of several changes I have in store for Death 3d. When the new engine is complete, I want to finish off the single player campaign, which is currently incomplete. Some of the existing maps will be reworked, as the new lighting effects allows for adding an element of suspense/fear to the game which was currently not possible. I also plan big updates to the multiplayer game, adding different game types, teams, capture the flag games, and more. I also plan on implementing an always on WebSocket based multiplayer server hosted by Ape Apps, so that even people on the web version of the game can play online multiplayer. There will also be a new game lobby making multiplayer matchmaking easier.
Even though Death 3d is not one of my more popular titles, it is still one of my favorite projects. I used to love making maps for Doom when I was a kid, and that was the main reason I had with making Death 3d (which is why the game has the map editor built-in). I plan to keep improving the engine and adding features until I think it matches or surpasses the old school Doom engine, at which point I may start porting the engine work over to different game genres that I have in mind.
#death3d