Newsgroups: rec.games.programmer
From: dis6218@ultb.isc.rit.edu (D.I. Seah )
Subject: Re: :Got the programming part down, what about Graphics ?
Organization: Rochester Institute of Technology
Date: Tue, 11 Oct 1994 21:25:07 GMT

In article <76.2787.25.0N966AF2@teaminfinity.com> game.guru@teaminfinity.com (Game Guru) writes:
>We must be missing tools, or some basic knowledge re computer game art
>or both.  For example texture mapping and gourad shading and other
>effects must lend themselves very well to creating realistic stills that
>can then be incorporated into a game.  Some mechanized way of producing
>graphics if you will, because I cannot imagine someone doing much of the
>game art we have examined one pixel at a time, a sort of "Cant see the
>forest for all the trees" problem.

Lord, do people still program entire programs in assembler? Yep, they
do, for similar reasons that computer artists worry about single pixels.

You can think of a paint program (such as DeluxePaint II) as being your
compiler, and single-pixel work as your assembly language optimizations.
Does the pixel look better on THIS side of the curve, or THAT side?
The visual effect may be very small when taking that one pixel into account,
but the same thing can be said about optimizing your loops. It's the
agregate visual effect that will make a difference...it's clean and not
marred with defects that detract from the image you are portraying.
 
>Any direction or principles for making realistic game art would be very
>much appreciated, especially shortcuts and condensed wisdom and tips.
>We are mostly working in the 320x200x256 VGA world currently.

When you do computer art on a screen, you have to be aware of both the
overall look ("the forest", as you mentioned before) and the details of
drawing/implementing it ("the trees.") You have to learn to switch between
the two ways of thinking very easily. 

You might think of it in terms of the implementation of a particular
algorithm. You know what's supposed to happen, theoretically. Now, the trick
is to implement it. If you're one of those programmers who pride themselves
on "good programming practices", you might find yourself constantly
assessing your implemtnation from that perspective. "Am I following good
Hungarian notation?" "Are my variables descriptively named?" "Do my classes
live and breath the spirit of good object oriented design?" These are larger
issues that go beyond the task of just cheesing out something that works. It
can get in the way if you obsess about doing it "right" the first time. So
many programmers implement the algorithm first, then worry about
optimizations and style later. With more experience, a programmer can start
doing it right on the first go. 

This is quite similar to doing the art on the computer...  you may want to
sketch the stuff you're doing first...is it "right" for your application?
Does it look good to YOU? From an overall standpoint, not just from
carefully selected standpoints. It's doesn't help to think, "Yeah...I did a
great job on that glossy highlight on the hull of that space ship!" if the
spaceship itself, and the overall picture looks terrible.  It's the same as
crying, "But I optimized my bitblit routines to be the fastest in the known
world!" when your overall game sucks rocks in game play. You HAVE to consider
the overall package, both in programming and in art.

Philosophy aside, here are a few random thoughts:

Make your lines CLEAN! Use horizontal and vertical lines when you can if
you want something to look high tech and precise.

Curved surfaces should be "smoothly curved", not "dented." (unless it's an
effect that you intended). If you can tell whether the front end of a car
has been in an accident and repaired, you will have shown sensitivity to
curvature. There are an infinite number of curves you could put between two
points...choose one that does what you want.

COLOR has three aspects: HUE, SATURATION, and VALUE. Many beginning artists
think of color as just being HUE (that is, what rainbow color it is). 
Consinder also SATURATION (how vivid it is) and VALUE (how bright).
If your artwork looks flat and uninteresting despite "the number of colors
you used", ask yourself if you used contrasting values (light and dark)
and saturation. It makes a difference.

LIGHT is very important. We don't perceive objects as things with lines
around them as much as we perceive their form as it interplays with the
surrounding light. 

PERSPECTIVE, when screwed up, looks really bad. If something looks wrong
to you, it probably is wrong. This is where you might want to spend some
money on a 3D package, though this won't teach you how to do good 3D
design. At least the perspective will be correct. Then be aware of the
different effects that perspective can have...wide angle, narrow angle
have different effects...the wide angle shots are more dramatic in that
they exagerate perspective. Then, be aware of various perspective cues...
fading light, position in the picture plane, desaturating colors,
loss of detail...

The ELEMENTS of a screen design serve various purposes. Some of them are
meant to be seen first and used. Others are meant as decoration. Treat
the elements visually as they should, depending on their function.
If you have a background that is just supposed to be, like, a background
for the real action, don't make it bright red with blue squiggles on it.
That would distract from whatever is going on that important. Tone it
done, either by dropping its saturation or value.

Creating images requires progressive refinement. React to your work
in different ways. See which parts work for you, and which parts don't.
For example, you might look upon your spacecraft and think, "Man, it's
lame. But I like the engine highlights...it looks cool. It's just that
the ship look so....clunky. It looks like a volkswagon that kissed the
guardrail at 3mph. It's stubby......maybe if I lengthen the nose....hmmm."
Think yourself through WHY you like something or not. 

>We have looked at VanDamme but thought it a little too discrete and
>abstract to be useful to us in an operational/production sense.

"Computer Graphics, Principle and Practice" is way overkill...that's a book
that is more for the programmers and theorists. However, it does have
a good user interface and design section that, while somewhat dry, does
give you a starting point.

Actually, one good one to look at in terms of screen design philosophy
is Apple's Human Interface Guidelines. Some of it is Mac specific, but the
introductory section is a distillation of other sources that is concise
and well-written.

For ideas about process, look for the magazines "Step-by-Step Graphics" and
"Step-by-Step Electronic Graphics."

The key idea, I think, is that you have the power to OBSERVE. Make good
use of that. Make sketches. Take notes. THink up from small details to
large impressions, reflect upon the grand scope of your art, then go back
down to the details. The image will evolve in pieces and in steps...be
patient as you work it out. Be open to detail, but don't be absorbed by
them. Be open to shape and form, but don't forget detail and texture
where it is appropriate or desired.

Then, keep in mind that a 320x200 screen is going to be tough to work with.
You can't draw detail on small ships because the pixels are just too damn
big. However, you can learn to hint at detail (through shadows, perhaps), or
just dispense with it altogether. You WILL agonize over the positions of
individual pixels. You will also have to learn how to ignore the chunkiness
and just see the "impression" of detail. Take a look at the characters in
LucasArt's "Indiana Jones and the Fate of Atlantis" as an example. It's
also interesting to compare those characters with the ones from Westwood
Studio's graphic adventures. The images work not so much on microscopic
detail, but on the impression that it's there. Also, the lighting is
taken into account as textures of clothing and materials are drawn.
The proportion and form of the characters in their surroundings is 
accurate.

Hope this helps getting you started!

-- 
Dave Seah (dis6218@ultb.isc.rit.edu, PCCDaveS@aol.com)