<html>

<head>
<title>loonygames presents: Anatomy of a Video Game</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
a { text-decoration: none; }
a:hover { color:000000;  text-decoration: underline; }


</style>
</head>

<body bgcolor="#FFF4D0" link="#3333FF" vlink="#000000" alink="#000000">
<center>
</center>
<table width="100%" border="0" bgcolor="#3596B3" height="58">
  <tr> 
    <td height="69" width="29%" align="left" valign="top"> 
      <div align="left"> <font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b><i><img src="../../images/logo_new.jpg" width="182" height="63" border="0" usemap="#logoa"> 
        </i></b></font></div>
    </td>
    <td height="69" width="29%" align="center" valign="top"> <center>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2373963192914918";
/* 468x60 */
google_ad_slot = "3417104156";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</center>
 
    </td>
  </tr>
</table>
<table width="100%" border="0" bgcolor="#3596B3" height="29">
  <tr> 
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../about.1"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font size="2">about</font></b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../feedback.1"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2"><b>feedback</b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../archives/index.html"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2"><b>archives</b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <b><a href="../../../submissions/index.html"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif" size="2">submissions</font></a></b></td>
  </tr>
</table>
<div align="center"> <br>
</div>
<table width="100%" border="0">
  <tr> 
    <td width="72%"> 
      <h5><b><font face="Arial, Helvetica, sans-serif">//<a href="../../../index.html"><font color="#7C420E">loonygames</font></a>://<a href="../index.html"><font color="#7C420E">issue 
        2.8</font></a>://<a href="index.html"><font color="#7C420E">Anatomy of a 
        Video Game</font></a>://<a href="index.php"><font color="#7C420E">1</font></a>, 
        <a href="index2.php"><font color="#7C420E">2</font></a>, <a href="index4.php"><font color="#7C420E">3</font></a>, 
        <a href="index4.php"><font color="#7C420E">4</font></a>, <a href="index5.php"><font color="#7C420E">5</font></a>, 
        <a href="index6.php"><font color="#7C420E">6</font></a>, 7, <a href="index8.php"><font color="#7C420E">8</font></a></font></b></h5>
    </td>
    <td align="right" valign="middle" width="28%"> 
      <div align="right"> 
        <h5><a href="http://www.loonygames.com/includes/printme.pl?url=/2.8/feat/"><img src="../../images/icons/print01.gif" width="27" height="27" align="baseline" border="0" alt="switch to printer-friendly version"></a></h5>
      </div>
    </td>
  </tr>
</table>
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr> 
    <td align="center" valign="top" width="25%"> 
      <table border="0" width="99%" bgcolor="#D7B582" align="center" bordercolor="#E0E0E0">
        <tr> 
          <td align="LEFT" valign="TOP" width="100%"> <font color="#000000" face="Arial, Helvetica, sans-serif" size="2"> 
            <!--#exec
cgi="/includes/rand_quot.cgi"--> </font> <p><webdog><font face="Arial, Helvetica, sans-serif" size="2" color="#0022A8"><b><font color="#693A0C">What's 
           new today:</font></b></font> 
          
<p><b><font face="Arial, Helvetica, sans-serif" size="2"><a href="../../../index.html" target=""><b><font color="#00025E">New!!!</font></b></a><br></b>
  The archives have been cleaned up, dead links fixed, and the printable versions restored! Also, don't miss the new comments on the main page!</font></p>

 
<p><b><font face="Arial, Helvetica, sans-serif" size="2"><a href="../../2.15/feat/index.html" target=""><b><font color="#00025E">Livin' 
  With The Sims</font></b></a><br></b>
  theAntiELVIS explores the wild and wacky world that is Will Wright's <b>The Sims</b>, 
  asking the inevitable quesiton, &quot;is <b>The Sims</b> the first step toward a virtual 
  life where everyone is Swedish?&quot;</font></p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif" size="2"><a href="../../2.15/pixel/index.html" target=""><b><font color="#00025E">Pixel 
  Obscura </font></b></a></font><font face="Arial, Helvetica, sans-serif" size="2"><br>
  Josh Vasquez on <b>Omikron: The Nomad Soul</b>.</font></p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif" size="2"><a href="../../rl/index.html" target=""><b><font color="#00025E">Real 
  Life </font></b></a></font><font face="Arial, Helvetica, sans-serif" size="2"><br>
  Check out our newest comic strip, <b>Real Life</b>! Updated daily!</font></p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif" size="2"><a href="../../uf.1" target=""><b><font color="#00025E">User 
  Friendly</font></b></a></font><font face="Arial, Helvetica, sans-serif" size="2"><br>
  Updated daily!</font></p>
<p></webdog> </p>
 
            <p></p>
            <p> </p>
            <p></p>
            <!--#include virtual="/includes/includes/commerce_ssi.htm" --> 
            <!--#include virtual="/includes/includes/art_ssi.htm" --></td>
        </tr>
      </table>
      <br>
      <table width="100%" border="0" bgcolor="#D7B582">
        <tr bgcolor="#D7B582"> 
          <td> 
            <div align="center"> 
              <p align="left"><font size="-1"><font face="Arial, Helvetica, sans-serif" size="2" color="#0022A8"><b><font color="#00025E">Random 
                Feature:</font></b></font> </font> </p>
              <p><!--#exec
cgi="/includes/rand_thumb.cgi"--><i><font face="Arial, Helvetica, sans-serif" size="-2"> 
                </font> </i></p>
            </div>
          </td>
        </tr>
      </table>
      <br>
      <table width="99%" border="0" bgcolor="#D7B582">
        <tr> 
          <td> 
            <div align="center"> 
              <form method="get" action="http://www.google.com/custom" name="">
                <font face="Arial, Helvetica, sans-serif" size="-1"><b><font color="#339900">Search 
                the Archives!</font></b></font> 
               
                 <INPUT TYPE=text name=q size=12 maxlength=255 value="">
 <INPUT type=submit name=sa VALUE="Google Search">
 <INPUT type=hidden name=cof 
VALUE="LW:216;L:http:/home/loonygames/loony.timedoctor.org/content/images/logo1.jpg;LH:55;AH:center;S:http://www.loonygames.com;AWFID:13a298c7abe84fd0;">
<input type=hidden name=domains value="loonygames.com"> 
<input type=hidden name=sitesearch value="loonygames.com">               
</div>
              </form>

              <p align="left"><i> </i></p>
            </div>
          </td>
        </tr>
      </table>
    </td>
    <td width="75%" align="center" valign="top"> 
      <table width="90%" border="0" cellpadding="0" align="center">
        <tr> 
          <td width="50%" valign="top"> 
            <div align="center"> 
              <table width="98%" border="0">
                <tr> 
                  <td width="55%"> 
                    <div align="left"> 

                      <p><b><font face="Arial, Helvetica, sans-serif" color="#0000FF"><i><font color="#904C10" size="3">Anatomy 
                        of a Video Game</font></i></font></b><br>
                      <div align="right"> <font face="Arial, Helvetica, sans-serif" size="-1">By 
                        <a href="mailto:jsimpson@ravensoft.com">Jake Simpson</a></font></div>
                    </div>
                  </td>
                  <td width="45%" align="right" valign="top"> 
                    <h5 align="right"><b><font face="Arial, Helvetica, sans-serif" color="#00025E">Vol. 
                      2, Issue 8 <br>
                      January 10, 2000&nbsp; </font></b></h5>
                  </td>
                </tr>
              </table>
              <loonystart>
              <p align="left">&nbsp;</p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">Lastly, 
                on the networking topic, there&#146;s the networking approach 
                to deal with. There are currently two major networking paradigms 
                out there, the Client/Server way, or the Peer-to-peer approach. 
                Client/Server architectures work like mainframe/terminals do. 
                The server is actually playing the game, taking the input from 
                your machine and dishing out the current state of the universe 
                to each client in turn. All your machine is doing is handling 
                the keyboard input, displaying what the server says you see, and 
                playing sounds. That&#146;s about it. The Server is where all 
                the action is. The problems here revolved around having a large 
                capacity machine to actually run the game on. There is a reason 
                why <b>Everquest</b>, and <b>Ultima Online</b>, massive multiplayer 
                games with persistent universes are run on huge specially designed 
                machines.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif"> The Peer-to-Peer 
                approach is a bit different. Every machine is actually playing 
                the game, all they do is share keyboard input and synchronization 
                data. I press a key, and it gets to sent out to everyone else, 
                and then I wait for everyone else key press, and then process 
                a universe frame. As you can imagine, this approach gives you 
                more problems with latency, but it has the great advantage of 
                not requiring a massively overpowered machine to run the game 
                on.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif"> You can 
                imagine there is a ton more to this, I&#146;ve barely begun to 
                cover the problems in creating a fast multiplayer online game, 
                or the techniques we use to over come these problems. </font></p>
              <p align="left"> </p>
              <p align="left"> </p>
              <p align="left"><font size="+1"><b><font face="Arial, Helvetica, sans-serif">Differences 
                between PC, Arcade &amp; console development.</font></b></font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">Firstly 
                I&#146;ll contrast PC verses Arcade and Console, since they are 
                so similar, then I&#146;ll contrast Arcade and Console.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">Well, 
                there certainly are differences here. There are several immediate 
                levels of difference at first glance. The first is the most obvious 
                &#150; no networking. Most consoles don&#146;t have networking 
                capabilities, so you are only developing single player games. 
                No worry about all that we just discussed. There are some Client/Server 
                implementations though, of games that allow multiplayer on-screen 
                play. Racing games are a case in point. It&#146;s worth noting 
                though that with the introduction of the new Consoles, namely 
                Sega&#146;s Dreamcast and the new Sony Playstation 2, this will 
                not always be the case. Both are being touted as Internet ready 
                machines, so you can not only play games on them, but do the whole 
                WebTV thing on them too. At that point, you know network gaming 
                is only a year away. I, for one, will be watching with interest 
                at the way that field develops.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">The second 
                difference is scale. With a PC, you are supporting several scales 
                of CPU power. Look at <b>Quake III Arena</b>. It works on everything 
                from a Pentium 166 right up to Pentium III 550&#146;s. Obviously, 
                they want to get as much bang for their buck CPU wise, so the 
                game tends to scale itself to whatever machine it is running on. 
                Only got a P166? Fine, then all the models tend to be reduced 
                polygon sets, so as to keep the frame rate up. Looks like crap, 
                but at least you can play. Scalability tends to be mainly in the 
                visual effects area, since that&#146;s the area of code you spend 
                most of your time in. Reducing model poly complexity and reducing 
                out the number of particles you bang out when a crate explodes 
                as cheap ways to reduce load on the CPU, to enable faster frame 
                rates. But on a console, you don&#146;t need to worry about this. 
                It&#146;s the same CPU every time, which helps.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">Similarly, 
                having a whole host of potential hardware configurations is also 
                a burden that PC developers must cope with. We already discussed 
                the different graphics API&#146;s we have to deal with, as well 
                as sound systems. On a Console or an arcade machine, you know 
                your hardware, and it&#146;s the same every time. No worrying 
                about whether this card supports 32bit z buffering or not. No 
                concerns about whether 3dfx&#146;s OpenGL graphics driver is fast 
                or slow, or buggy or not. &#150; its worth mentioning here that 
                I&#146;d say about 25% of the bugs that PC games ship with come 
                from manufacturer driver code that we can&#146;t do anything about. 
                On a console, that&#146;s a major worry lifted.</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">On the 
                plus side though, PC&#146;s do offer a couple of bonuses. They 
                are constantly evolving &#150; with new hardware that enables 
                you to do bigger and better things each time out. A console is 
                a console, and doesn&#146;t change from one machine to the next. 
                Your limits are your limits. And another thing that&#146;s nice 
                is the virtual resources. Running under windows means never having 
                to run out of memory :) When all you&#146;ve got is 2 meg to fit 
                your code, your samples, your graphics and everything else in, 
                something has to suffer, and its normally graphical and sound 
                FX quality. On a PC, that worry goes away, which is nice :)</font></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif">One other 
                thing the PC offers that&#146;s nice is the chance to patch and 
                upgrade an already shipping product. With a console release, if 
                there&#146;s a bug there, then that&#146;s tough. You can&#146;t 
                upgrade a CD. With a PC though, you can patch and upgrade to your 
                hearts content though files made available on the Internet (Although, 
                to be honest, this does tend to get a bit abused at times, with 
                companies shipping products they know to be flawed, with the attitude 
                of &#147;Oh, we&#146;ll patch that later&#148;). And that leads 
                us on to community upgrading. <b>Quake</b> has an enormous community 
                out there that constantly provides homegrown modifications to 
                the existing <b>Quake</b> games, due mainly to the fact that it&#146;s 
                a PC, and the fact that id has an open source policy. Can&#146;t 
                do that on a console or an arcade machine.</font></p>
              <p align="left"></p>
              <p align="left"><font face="Arial, Helvetica, sans-serif"><br></loonystart> 
                </font></p>
              </DIV>
            <div align="center">
                <p align="left"><font face="Arial, Helvetica, sans-serif"> </font><font face="Arial, Helvetica, sans-serif"> 
                  </font></p>
              </div>
              <table width="100%" border="0">
                <tr> 
                  
                <td width="50%"><font face="Arial, Helvetica, sans-serif"><a href="index6.php"><font color="#7C420E"><b><font size="+1">&lt;&lt;Prev</font></b></font> 
                  </a></font></td>
                  <td width="50%"> 
                    <div align="center"> 
                      <p align="left"></p>
                      <p align="left"></p>
                    </div>
                    
                  <p align="right"><font face="Arial, Helvetica, sans-serif"><a href="index8.php"><font color="#7C420E"><b><font size="+1">Next 
                    &gt;&gt;</font></b></font> </a></font> 
                </td>
                </tr>
              </table>
    
            </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<br>
<table width="100%" border="0" bgcolor="#3596B3" height="29">
  <tr> 
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../about.1"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2"><b>about</b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../feedback.1"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2"><b>feedback</b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <a href="../../../archives/index.html"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF" size="2"><b>archives</b></font></a></td>
    <td height="20" width="25%" align="center" valign="middle" bgcolor="#86531A"> 
      <b><a href="../../../submissions/index.html"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif" size="2">submissions</font></a></b></td>
  </tr>
</table>
<table width="100%" border="0" bgcolor="#3596B3" height="29">
  <tr> 
    <td height="20" width="35%"><a href="../../../index.html"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b><i>loonygames</i></b></font></a></td>
    <td height="20" width="65%"> 
      <div align="right"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><!--#exec
cgi="/includes/rand_bot.cgi"--></font></div>
    </td>
  </tr>
</table>
<p><i><font face="Arial, Helvetica, sans-serif" size="-2">Credits: Illustration 
  &copy; 2000 <a href="http://www.3dpalette.com/dimension">Durrenberger David 
  (dines)</a>. This article is &copy; 2000 Jake Simpson. All other content is 
  &copy; 2000 loonyboi productions. Unauthorized reproduction is prohibited. So 
  don't do it, or we'll dissect you.</font></i></p>
 <map name="logoa">
  <area shape="rect" coords="52,47,112,59" href="http://www.bluesnews.com">
  <area shape="rect" coords="3,3,179,46" href="../../../index.html">
</map>
</body>
</html>
