A Video Game?
How can images be made to look realistic in a two dimensional world where
the very concept of reality is a foreign concept?
Purpose:
The computer screen is flat and lifeless. Any image put on it, no matter how
skillful or artistic, is still flat. It is a world where every nuance of our
reality is unknown and difficult. When you look at an apple, it is not all the
same color--the fruit has natural variations in color--but the light also
changes the color, makes it lighter where the light is brighter, and darker
where it lies in shadow. There are no light sources inside the computer, they
must be simulated. There is no life inside the computer, it must be simulated.
If a person is made, he will not move of his own accord; the computer does not
even know that it is a person! The programming required to make a person walk
in a straight line realistically, with all the sways and bounces of his stride,
is enormous. How can reality be brought to the unreal?
Scope:
It is not the aim of this project to do what can only be done with research
grants and teams of computer scientists. The people who discover new techniques
and make the most realistic programs have done so with years of research and
many helping hands. In this field, it is almost inevitable to retread ground.
A simple video game would be a easier way to test techniques and try new ideas.
The object would be to make the game look and feel nice, rather than be
difficult or entertaining. A walk through the park is relaxing and enjoyable,
yet it does not heighten blood pressure or pump andrenaline. But it is far
easier to do the latter than the former in the computer world. What is it that
is relaxing about a walk through the park? The beauty? The breeze, the feel?
Obviously, you cannot walk through the park on the computer, no matter how good
the technology, because you cannot satiate the need for the outside world by
remaining inside. But if the feel of the world can be captured -- the feel, not
just the look -- then it could be applied to every aspect of computer science.
Background:
The author possesses little knowledge on practical uses of C and C++. Different
uses are being explored. For example, a visit to www.20q.net demonstrates a
sort of AI that learns how to better guess what you're thinking each time it is
played. It has been running for a few years now and is quite adept at its game.
While the game of twenty questions is hardly a useful application of
technology, the programming used in creating such a game can be used in other
areas. Perhaps a project of that sort would be worthwhile.
However, other topics have been researched. The developer's gallery
(www.dev-gallery.com) has an excellent tutorial on opengl, and possibilities lie
on that road. POV-Ray is another interesting tool, with numerous websites
professing a quick-learning scheme.
Procedure and Methodology:
Unfortunately, the Computer Science and AP Computer Science classes have little
or no focus on the graphics aspect of computers. There is little encouragement
for getting the feel of the real world into your work, and of course, why should
there be? You shouldn't start with such things. But now, these things must be
looked into. Different languages may need to be learned. There are already
people who have learned how to make things look more realistic - and places to
research how - but for the feel of things, trial and error will be necessary.
No video game out there responds properly to stimuli. Driving a car is no feat
of mechanical genius, but refraining from crashing into oblivion on Mario Kart
is. Sensitivity of the program is hard to calibrate, and much time will be
spent on it. I will be using C and C++ for most of the project, and I will
probably have to brush up on both. Since I am not focusing so much on the
visual aspect - i might never complete the project otherwise - I hope not to
need too many other languages. Any time I use more than one language, I will
need to learn how to make them work together, a project almost in itself. The
entire project must be done in small stages; first make a simple world without
motion, and check on that; then make it possibile to move at all, and check on
that; etc. Finally I hope to have an environment in which the user may feel as
if he is no longer sitting at a computer, if it weren't so simple.
So what?
In the end, I hope to have a simple environment that feels real. The graphics
don't need to be photographic, but they need to be believable. When the user
controls the player, it should feel as natural as possible. When people feel
natural just using the computer, they can concentrate on other things, like
playing the game, or whatever.
There is widespread need for a better feel of reality in computers. The money
of video-gamers everywhere has funded research for the best graphics known to
man, but still when you fall in a pit you curse the game, not your skill.
Reaction times are still off, and when they happen the reactions are canned or
unrealistic. When you move, you do not think of where your limbs are, you
know where they are. If it could be like that for computers, then more people
would use them.
September 17, 2002