Department of Energy Argonne National Laboratory Office of Science NEWTON's Homepage NEWTON's Homepage
NEWTON, Ask A Scientist!
NEWTON Home Page NEWTON Teachers Visit Our Archives Ask A Question How To Ask A Question Question of the Week Our Expert Scientists Volunteer at NEWTON! Frequently Asked Questions Referencing NEWTON About NEWTON About Ask A Scientist Education At Argonne Computer Games
Name: Matt
Status: Student
Age: 15
Location: N/A
Country: N/A
Date: Around 2001


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.



Replies:
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


Click here to return to the Computer Science Archives

NEWTON is an electronic community for Science, Math, and Computer Science K-12 Educators, sponsored and operated by Argonne National Laboratory's Educational Programs, Andrew Skipor, Ph.D., Head of Educational Programs.

For assistance with NEWTON contact a System Operator (help@newton.dep.anl.gov), or at Argonne's Educational Programs

NEWTON AND ASK A SCIENTIST
Educational Programs
Building 360
9700 S. Cass Ave.
Argonne, Illinois
60439-4845, USA
Update: June 2012
Weclome To Newton

Argonne National Laboratory