I've been working on an Unreal Tournament 3 level for a few months now. I ran into a small snag the other day that I wasn't sure how to deal with, so I asked around at work to get a few ideas about what the best approach might be.
The problem was a simple one: I built a level that has a skylight in it. An interior room with windows in the ceiling that look up into the sky. When you're working with most level editors, your world exists in a void of negative space. So if my window is looking out into the sky, it's actually looking out into a spaceless abyss unless I put something behind it. And in UT3 if you don't put something behind it the image will appear to distort and appear corrupted, and that's bad.
I tend to approach projects with a very top-down approach. I'm less interested in the particulars of a game engine, and more interested in high level practical approaches to solving a problem like this. In the case of the skylight I could think of 4 possible solutions:
- Create an old-school skybox above the skylight
- Place a flat 2D plane above the window with a night sky texture applied to it.
- Build a skydome over the entire level
- Make the windows opaque and fake the sky within the window's material.
Any one of these options would be fine. They would all accomplish the same end, but one some would look better than others.
I asked two key people at work about this. One was an artist with a fair bit of technical knowledge and a good handle on UT3. The other was a senior level designer who's got experience with a number of different engines but maybe isn't as artistically inclined. I got two very different answers, and neither one of them were rather appropriate. Here's what I got?
Question: If I make a level with a skylight in it, what's the best approach to putting a sky behind it to avoid tearing?
Designer Answer: What engine are you using? I'd have to take a look at it.
Artist Answer: Oh, I don't know. I've never used a skylight.
And this is the problem with game development and technology and jargon. My question was a high-level one. How to approach the sky for a physical skylight, purely from a very practical theoretical perspective. The designer couldn't provide an answer without knowing what engine I'm in. He's already looking at it from a very technical side. The artist, on the other hand, offered a non-answer because he misunderstood and thought I was talking about a skylight actor, which exists in UT3 but is a light generating entity and is a different issue altogether.
If I had asked a construction worker this same question, I think I would have better luck. Or he'd just want to know why the heck I want to build a sky when there's already one up there.
A simple problem. A simple question. 2 very confused people.
I settled on the fouth option and decided it would be easiest just to fake the sky in the material. That way the windows can stay opaque while giving the illusion of being transparent and I can still render what looks like a sky.