 |
Ask A Scientist©
Computer Science Archive
|
 |
Computer Games
status student
age 15
Question - Ok, my question has to do with technology and video
games. Here's my question- how is it that 8 years ago the best they
could do for gaming was the 16 bit nintendo system(i'm talking graphics)
and now they have these games that are almost as life like as can
be?? My next question is with internet games where you connect to other
comperters and play other players(example:Half Life; team fortress
classic; counterstrike; quake; doom; and so on). How is it that u can
connect to someone's computer so easily and is it posible for that person
to give you a viris while playing. Thank you, Matt.
--------------------
Answer:
Eric Tolman
Computer Scientist (Game Programmer)
For question 1, it has been shown that we can, do, and have doubled
processor capacity every 18 months. So, 8 years ago, computer chips were
about 1/32 of the power that they have today. Additionally, we now have 32
times as much memory, hard drive space, etc. Another, and probably more
relevant way of looking at it is that computers cost 1/32 of what they cost
at years ago.
Most of the techniques used to create the incredible 3D games have been
known and used for a long time. However, mostly they we used to generate
images or movies that would be played back later.
Eight years ago, people did have machines that could do it all in real time.
Mostly, however, these were in flight simulators and things. A graphics
card that costs $400 today, would have cost over $12000 eight years ago, and
only people who really, really need that kind of power could afford it.
Then add the cost of a processor, at today's prices it is around $500, and 8
years ago you would have had to go with some kind of mini-computer that cost
over $15000, plus the memory and things. All told, a system that could do
what our computers do today would have cost well over $50,000 eight years
ago.
Not very many people are interested in spending that kind of money for their
kids to play games, so no one makes a "Nintedo 1024" system that costs
$50,000. They could, even today they could put together a system that would
make blow everything you have seen away, but they have to price it so people
will buy. That means they have to make sure it is priced right.
Typically what they might do is price it at first so they lose a little
money sellig the hardware. For instance, a brand new Playstation 2 probably
costs just a little more than they make selling it, and they make up the
difference with the sale of the games. By the time a year has gone by,
however, the cost of making the system has dropped, so they can actually
make money selling the machine.
So, eight years ago, Nintendo was trying to balance out the cost of building
the system with how much they would need to sell the system. They did a
pretty good job, but could have done better. They could have (and probably
should have) used a 32 bit processor instead of the 16 bit processor they
used. Instead, when they first designed it, they looked for a processor
that was compatible with the NES (8 bit) system. They were hoping to make
it so they SNES would run NES games. When the idea of dropping
compatibility with NES games was dropped, they were stuck with the 16 bit
processor. Overall, they did a good job, and it wasn't too hard to make
games for.
For question 2:
Networks are designed to share data. In order to do that, you have to be
able to connect to other computers. In order to make people want to do
this, it has to be easy. This sounds a little trivial as far as an answer,
but in a nutshell that is it. Companies spent millions of dollars trying to
solve these problems. How do you get information from one computer to
another, and how do you make it simple and easy to do this.
Companies that succeeded at doing this made millions. Novell, did a very
good job, and that is how they made all their money. Cisco makes billions
by allowing different groups of networks to share data across what we call
the internet. Microsoft took personal networking to the next level with
Windows 95, where suddenly anyone could access any computer and share data.
Games take advantage of this technology to connect to other computers.
Networking companies have succeeded so well in allowing people to connect
across their internal networks and the internet that pretty much any
application (even a Microsoft Word macro), can send data to another
computer.
In a little more detail, however, it works like this.
First, there is a physical connection running between two computers that
want to connect. This could be phone lines that run from houses to switches
to other houses that the phone company lets dial to each other.
Or it could be network cables going to hubs and other computers. Or it
could be cable lines running to fiber optic lines, through routers. Or it
could be radio waves that computers can broadcast and receive.
Second, there is a physical device that connects the computer to the network
of lines he is communicating over. It could be a modem, a network card, a
radio transmitter, or a router.
Third, there is a set of software, that allows the computer to send data
across this network. There are a lot of layers to this software. At the
top level, the computer sends some type of "packet" of data to the device
and across the network. Typically, this is a TCP/IP packet. This basically
tells you what the format of the data has to be, and what pieces of software
computers need to have to send this kind of data.
Finally, at the game layer, the game determines what other computer it needs
to connect to, sends a request to the network device to establish the
connection, and then sends data to the device so it can be sent.
As you have pointed out, once this connection is established, it is a two
way street. Your computer can send data to the other computer, but it can
send data to you as well. However, this isn't as bad as it seems. The
network layer, when it receives data on a given connection, doesn't just
store it, it sends it on to the application who has the connection. So the
connection is essentially between two applications. For example, if someone
sent a virus over a connection between two quake games, the quake game that
received the virus would try to interpret the virus as movement data for
another player. At that point three things could happen:
1. The virus would be intepreted as bogus data and player positions would
change or other events would happen. This is how "cheats" are written.
Someone figures out how to send data that looks valid, but really isn't, so
they can change how the game functions.
2. The virus would be recognized as invalid data and discarded. The game
generally would see that the virus data doesn't mean anything it can do
something with and would assume a packet had been corrupted, and ask for the
data it needed.
3. The virus would be partially interpreted as valid data, and could cause
the quake game to become unstable and crash.
A fourth possibity is that the game itself accepts viruses as valid data and
infects your system. This would require programmers who intentionally want
to allow your computer to become infected. In other words, the game is
really nothing more than a virus, but looks like a game so people will
download it. This does not happen with commercial software, but you should
always be careful what you download from the internet.
The other and more general problem is that, once you have connected to
another computer, they know your address, and can attempt to call you back
using another program. This is how computer attacks start. Someone figures
out who you are and what kind of software you are running.
Then, they try and find a loop hole in one of your pieces of software. For
example, they can send you email. Email programs are designed to accept
data from anyone and store it on your computer. Now all they have to do is
get you to run the software. This is where macros embedded in documents
becomes really handy. With the macros, they can start running something as
soon as you open the document.
Or they can try to attack the network sharing program. If they can trick
your computer into thinking they have the right to see your files, then they
can copy files from your computer, or even place files on your computer.
Basically, any piece of software you have that allows others to access your
computer are vulnerable to attack. These include any kind of program that
makes your computer into a server: network sharing, personal web servers,
ftp servers, telnet servers, pc anywhere, and any program that accepts data
from someone else and saves it to disk, email, icq, netmeeting, etc.
This is where firewalls attempt to protect you. Generally firewalls don't
allow anyone to call your computer. They make it so people can't call you
and attempt to attack your computer directly. Instead, they have to attack
the firewall first. Once they have done that, they can can access to
whatever they firewall has access to.
So, briefly, games typically do not pose a security risk by themselves. But
any connection to the internet is a security risk. So if you can play
internet games, you should be aware that you may be vulnerable to attack.
Also, some games (and other programs) want you to open ports in a firewall.
Any time ports are opened, you may be increasing your vulnerability to
attack.
I hope this helps,
--Eric Tolman
=========================================================
NEWTON is an electronic community for Science, Math, and Computer Science K-12 Educators.
Argonne National Laboratory, Division of Educational Programs, Harold Myron, Ph.D., Division Director.