Saturday, July 24, 2010

PrBoom is a version of the classic fps game Doom by id Software. Specifically, it's an engine for playing Doom levels, based on the source code released by id Software. It aims to be free, reliable, portable, and support a wide range of levels.

PrBoom is the culmination of years of work by various people and projects on the Doom source code. PrBoom includes work from all of the following projects:

Original Doom source release

Without id Software releasing the source code to Doom in the first place, we couldn't be here. And one mustn't forget Bernd Kreimeier who prepared the source for release.

DosDoom

The first serious Doom port, got things working enough for other projects to spawn from it. Also continued to provide a lot of innovative ideas for other ports.

Boom

This project gave a complete overhaul to the Doom engine, one it badly needed. All of Doom's infamous bugs and limitations were fixed. Many new features which fitted nicely into the engine were added, including a better line types system, translucency, friction and wind types, and much more.

PrBoom

Brought Boom to Windows, and made large improvements to the graphics: first higher resolutions, later OpenGL rendering.

MBF

This continuation of the Boom project, by Lee Killough, did huge amounts of debugging and other improvements, as well as adding more natural features in the way that Boom had done. There were also some special features like Doom beta emulation, and friendly monsters.

LxDoom

Initially just a Linux port of Boom, it went on to become a portable POSIX Doom port, with further compatibility improvements and debugging.

lSDLDoom

This port of LxDoom to SDL brought the Windows and Linux development back together. It just makes you wish we'd had SDL when the Doom source first came out :-\.

Of course ideas were exchanged with many other Doom ports, including xdoom, and Eternity.

Tuesday, July 6, 2010

Quake III Arena Cell Shading is a modification for Quake III Arena which makes the game look like a painting or cartoon. Two techniques are used. The default one (Kuwahara filtering) simplifies the texture a bit, and the second one removes the texture, so it looks plain.

The goal of this project is to add Cell Shading capabilities to the Quake III engine with Real-time performance.

In order to provide such feature we have decided to use Kuwahara filter. Kuwahara filter is a noise-reduction filter that preserves edges.

It uses four subquadrants to calculate the mean and variance and chooses the mean value for the region with the smallest variance.

To increase the hand-painted effect we have decided to apply a simple blur filter to reduce hard-edges on textures and increase the flatness effect.

To produce the cell shading effect we use no graphics card shaders, so our implementation could run with almost any gfx card. The edge effect is produced by painting backface polygons with a thick wireframe without textures and repaint all the scene, but this time, with textures.

We have also implemented a different algorithm (we call it White Texture) , which uses white textures. It looks like this and this, you can set the console variable r_celshadalgo to 2, and load another map, or run using the appropiate link that came with the release.

To test our modified engine just place our binary in your game's folder to frag all day long!

Ensure you have a copy of Quake 3 Arena installed on your PC. You're going to need the artwork/content from the game because it is not redistributable.

Lastest version.

Version 1.0 sports a new alternative cell shading algorithm (white texture) and a lot of bug fixes. See the change list and screenshots, or download it. It's recommended that you enable antialiasing, and by the way, Windows users should download the MSI package and uninstall the previous version.

Screenshots.

If you liked this article, subscribe to the feed by clickingthe image below to keep informed about new contents of the blog: