Thursday, January 10, 2013

Doombuilder: Complex Sector Based Lighting

Back in the days of yore, when Wadauthor was king and Mordeth was definitely going to be released 'any day now',  lighting was a much more laborious process. Good lighting was something to be revered as there was no easy way to go about implementing it.  Some of the lighting methods in Doom wads that were created out of necessity had become standardized in that time and unfortunately have carried over in the glorious years of Doombuilder. The old dominion is dead, and many of the restricted ways in which lighting is looked at can go with it. Huzzah!

There's two very important features in DB2 that make implementing less restricted lighting possible. The first is automatic texture alignments in a real-time 3d viewing mode.  With the clunky mapping interface of Wadauthor and other editors of the like,  it became pretty easy to avoid lighting walls as well as floors/ceilings.  Aligning textures was the bane of every mapper's build process.  The second is being able to recklessly draw across and divide sectors till your heart's content.  This allows mappers to not have to choose between complex floor/ceiling geometry and smooth, gradient lighting.

Lighting is really hard to pin down as to what's going to look good in what kind of map. My personal preference is in hellish type maps,  big, bold sweeping lighting over large areas and more high contrast, tighter lighting in base type maps.  This is all on the mapper as to what your taste is and what's going to look appropriate to your map,  but perhaps I can lay down my process and it can be of some assistance.

What a godawful mess!   I categorize a room into two sides; Pre-lighting and post-lighting.  Pre-lighting is all the geometry laid out, where I'm 100% satisfied with how the room looks from a design point of view.  Post-lighting,  there's really no going back.  After the core of the design is done, I put myself at the mercy of however I placed light textures. "The lights gonna light how the lights gonna light", which basically translates to, if I put a light in an area with some heavy duty geometry,  that light isn't going to be less bright or gradient less because it isn't convenient for me to implement it.  I get really reckless in this process and draw across many sectors,  leaving many smaller, micro sectors, and triangle slivers.  Not exactly safe passage for any perfectionist.

This is personal preference,  but square lights I almost gradient out in a square pattern.  I find that a lot of angles in light gradients look wonky in Doom. I do, however, adore the look of a squared gradient over a curved surface, as you can see in the top right and bottom left hand corner of the editor mode shot.

Natural, outdoor lighting I'll play around with a bit more.  Outdoor areas are almost entirely 'high noon',  as in no highfalutin' angular shadows or anything like that.  Again,  personal preference. I've seen it executed really well,  but when you open that can of worms, it's going to affect the geometry you can work with and still have the effect look convincing.  Another thing you might notice in the second shot is the light coming into the room is only slightly brighter than the base, indoor levels.  It's more of a strong, subtraction gradient behind the columns that adds a nice bit of contrast   You can also see how unworkable that room is in the post-lighting process. 

The last thing I'll mention is a few rules of thumb I abide by in the lighting process:
- Give the walls as much if not more attention than floors - The vertical stays in the players field of view more-so than the flat.

- 9 times out of 10, Doom's standard sector lighting mode looks better than a lighting level transfer.  Unless there is a serious vertical difference in the ceiling and the light (more than 16 units), I'll almost always use standard.  It may not be more "realistic" (ugh),  but having the light cover more space just looks that much more aesthetically pleasing.

- If at all possible,  subtract!  Shadow casting can look really slick if used properly.

That's it for now - I'll get into GZDoom and mixing 3d lights with sector based lighting next time around.

Monday, January 7, 2013

The Case for Megatextures

Megatexturing is more or less the nuclear option of Doom editing.  Using a 1 to 1 texture scale ratio puts a mapper at a tremendous advantage as opposed to working with higher resolution textures, and that's file-size.  Putrefier as a whole weighs in at a mere 20 megs, music included.  The texture data eats up a fraction of the total file size despite some very ham-fisted room texturing methods.

This represents a large portion of one of the rooms in Putrefier.  It looks quite robust in game and takes up a mere 212kb uncompressed.  Not a high price to pay for a lot of aesthetic stimuli.  It was constructed in Photoshop using existing textures in the resource wad, some splatter brushes and a bit of artistic ingenuity.   GZDoombuilder makes it simple to align your floor / ceiling textures by dragging them into place.   I should note that the larger the mega-texture,  the more you'll run a risk of encountering a more pronounced blurring effect and a strain on the images' color depth.  If need be, create your master texture and break it up into smaller pieces to avoid these undesired effects.

Another thing to keep in mind is if you have a general idea of what kind of lighting your room is going to have, adding additional bits of shadow and/or highlights is a nice touch. You're already using the real-estate, might as well make the most of it.

Demonic Pasta

This method also works well for creating more realistic outdoor environments as well.  

Outdoor areas,  depending on the desired level of detail, can be strung together in Photoshop using 3-4 base ground textures with various rocks and debris peppered in. Clone stamp is your best friend.

This level of detail, albeit a low definition rendition, is something that hasn't been seen outside of more modern games. As heavy handed as it may seem,  given the small file size and quick construction time, the end result could put an area of your map completely over the top for a relatively cheap price tag.

Sunday, January 6, 2013


Welcome to the Putrefied Design laboratory.  In this blog series, I hope to provide aspiring GZDoom mappers with some lesser known tips and tricks that are capable in Graf's wonderful engine, as well as some design philosophies and general out-of-the-box ideas that might help you out along the way.  I would like to clarify that I have no intentions of making any attempts at defining what makes a 'good' map or 'good' detail. Nor would I want to try to insinuate some kind of 'right' way of going about in your own designs.  I would merely like to offer some of the nasty little tricks I've picked up over the years in my own experience in hope that you can use them in your own unique ways in your own creative endeavors.

To kick start this series, the most important point I would like to make is that whatever it is,  it's almost certainly possible to do. The question is,  how are you going to do it?   The wildest ideas,  the most outrageous, over-the-top concepts are indeed possible. It's just a question of figuring out the puzzle given the tools that you are provided with.  A lot of the times, you will find  it can get quite dirty and dare-I-say, even hackish, but if there's a will, there's a way.