It took
a bit longer to make a new post. Not necessarily because I've been busy or
whatsoever... Time just flies! When
getting out of bed, I'd better lay down again because the day is over already. And
yes, like any programmer geek, my nights are short.
When
writing a new topic, there has to be a topic to start with. Obviously a lot has
been said already on this blog. Curtain shaders, game music, stair-climbing
physics, Super Mario, pathfinding, you name it. If it's not somewhere in this
blog archive, it has nothing to do with games.
On the
other hand, the "should I post this???" bar has been raised quite a
lot. Five years ago I would share my new bumpMapping shader, or devote a topic
just to show a new metal-barrel 3D prop. Nowadays, games look so darn good that
I can't come around with some silly 3D brick texture, or a dull dusty room - your
typical Tower22 stuff. In this age, it’s just very hard to impress. My homebrew
stuff isn’t impressive anymore for today’s standards.
Or well,
that's how I feel about it at least. I'm not the type of guy who shares every
restaurant meal or aftermath turd on twitter or Facebook. Heck, I don't even
have an account on any social media. In general I only open my mouth if there
is something truly informative or pretty to share. Or if I can't resist making
stupid jokes. But none of that got triggered last month, so... no new topics.
Tinkering G.I.
No
development then? Well yes. Made a few more (dummy) rooms for the playable
demo, and got on a dead end playing with some other G.I. approaches. Every year
or so, I get bored on my current "Indirect Lighting" method, because
none of the existing methods is perfect... far from. Engine22 uses Lightmaps
(& probes for dynamic objects) at the moment, but there are some seam-stitch
artefacts, normalMapping issues, and of course dynamic objects don't play well
with lightMaps. So I tried a probe-only-approach, but found the end-result to
be disappointing, quality-wise. Spend a few weeks implementing them, only to
throw them away with the garbage again, grabbing the dusty Lightmap-box back
from the attic.
Probes
can work pretty well -I used them in the Tower22 "Subway" demo clip-,
but they lack accuracy and leaks are hard to prevent. And since the average
Tower22 scene is a small room with a lot of crap, having probes every 0.4 m3 isn’t
dense enough. At least not when you got used to lightMaps, which can be more
accurate.
Tinkering Parallax effects
So, that
was a waste of time basically. What else did we do? Re-Implemented
"Parallax Offset Mapping" (POM). I wrote "re-", because
this technique has always been present here, but not yet in the new Engine22,
as I placed my bets on Tessellation instead.
POM
offsets UV coordinates (per pixel) by sending out a ray towards the camera,
checking for intersections with a surface heightMap. Neat trick, but still
fake. Tessellation actually sub-divides the surface in many tiny triangles (if
the camera is close enough), and then offsets the (new) vertices based on that
same heightMap. Even though it works surprisingly fast I'd say, you can't
sub-divide far enough to reach a per-pixel level, resulting in blocky/jaggy
edges. And worse, since vertices actually go back- or forward now, it can punch
holes in your walls, and furniture will either float or sink above/within the
displaced geometry. Conclusion, it just doesn't look that good. Of course there
are a billion optimisations out there, but for what... adding 5 mm depth in
some floor tile gaps. Hurray.
You've seen this corridor a billion times already, but probably it looks more interesting this time. Not because brilliant new shaders, better G.I. or improved 3D props, but because a rather simple "dusty overlay" plus a blue-ish ghostly effect.
I
learned that technical tricks alone can't boost graphics. Sure they can help,
but in the end it's all about the composition, the scene as a whole, where every
prop, detail, decal, lightSource or particle complements. Not a single Tower22
room looked good right from the start. More the opposite. Breeding a plan + 3D
geometry for a new room for 9 months, only to give birth to the ugliest babies.
Wondering if it would ever be all right until the last lamp was replaced for
the 60th time.
I don't
know if artists have the same experience with more professional tools like a
Crysis or Unreal engine. Asides from having a more complete toolset, they
probably gear towards getting your preview as quick as possible, so an artist
can correct the steering wheel early on. But even so, all the High-Tec is still
no guarantee for a good looking scene. There needs to be a good collection of
2D/3D props, as well as an art direction. So, to sum it up:
Technology + Idea + Artwork
Well,
and that is where this demo is a bit stuck now. I think I programmed all the
techniques needed, or collected the major technical ingredients / editing tools at least. Of
course things can be improved, but probably that also depends on what the
artist needs. There is no artwork though, asides from the "dummy"
props I made so far. Those are all place-holders really, mainly to show
whatever artist who decides to help, what the "Idea" is all about,
roughly. Apart from a few paper bits, this Idea was mainly between my ears in
the past, making it very hard to show an artist where to go. It's like telling
your contractor to "build a nice home", without giving any further
blueprints.
This
time the demo has been made, mostly. Hell, we can even play it. Parts of it at
least. I'd like to keep some open ends, because honestly, the idea is not rock
solid yet. With that I mean the design of the rooms can (should) be tweaked,
and moreover, the exact demo-play-sequence needs to be tested and modified to
make it as horrific as possible. Horror is a complex thing. Ever tried to explain a nightmare that scared the shit out of you? It's almost impossible to transfer that feeling to another, unless you have strong visuals or master the pen like Stephen King. All I have is Delphi and this blog.
So I've
been waiting. When asking artists to help, the Technology & Idea need to be
in a somewhat mature stage (unlike my previous attempt, years ago). But when is
that? When is the technology far enough? And how to make sure your Idea will
attract others? Today’s technology is old tomorrow, and it's very hard to show
your Idea without proper artwork. Chicken Egg story.
Ready? Set? Go?
So right
now, I'm more or less balancing when & how to ask for help. There is not
too much anymore I can improve with programming alone, but then again, once I
ask, there is no way back. I can't invite skilled people, then to let them wait
because the engine needs to be fixed first, or let them change their work every
week because the Idea is fluid like apple juice. And not unimportant, with 2
kids and 2 jobs, it's not like I have nothing else to do. Probably anyone who
started or thought about starting their own business, knowing when you're ready
is difficult. It's scary. Out of the comfort zone, at your weakest. BUT: No
Pain, No Gain.