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