<HTML>

  <title>loonygames Feature: Game Programming in the 21st Century</title>
<body bgcolor="#FEFFEC" link="#0000CC" vlink="#000000">
<div align="CENTER">
  <div align="CENTER">
    <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>
  </div>
  <div align="CENTER">
    <table border="0" width="100%">
      <tr> 
        <td width="261" height="105"><img src="../../images/next_logo_sml.jpg" width="251" height="94" usemap="#map" border="0"> 
        </td>
        <td width="92" height="105" align="LEFT" valign="MIDDLE"> 
          <p><font face="Arial, Helvetica, sans-serif" size="-1">- <a href="../index.html">Contents</a><br>
- <a href="../../../about.1">About</a><br>
            - <a href="../../../submissions/index.html">Submissions</a><br>
            - <a href="../../../feedback.1">Feedback</a><br>
            - <a href="../../archives/index.html">Archives</a></font></p>
        </td>
      </tr>
    </table>
  </div>
  <table border="0" align="CENTER" width="100%">
    <tr> 
      <td width="32%" height="936" align="left" valign="top"> 
        <table border="0" width="190">
          <tr> 
            <td align="LEFT" valign="TOP" width="32%"> 
              <p><font color="#0000FF"><b><font face="Arial, Helvetica, sans-serif" color="#0000CC">volume 
                1, issue 40</font></b></font></p>
              <p><font color="#0000FF"><b><font face="Arial, Helvetica, sans-serif" color="#0000CC"> 
                </font></b></font></p>
              <p>  <p><font face="Courier New, Courier, mono"><b><font color="#339900" face="Arial, Helvetica, sans-serif">Today 
                in loonygames:</font></b></font></p>

<P><font color="#000000" face="Arial, Helvetica, sans-serif" size="-1">New!!</font><font face="Arial, Helvetica, sans-serif" size="2"> The Archives have been cleaned up, fead links fixed, and printable versions restored! Also, don't miss the new comments <a href="../../../index.html">on the front page</a>!</font></p>
              
<P><font color="#000000" face="Arial, Helvetica, sans-serif" size="-1"><a href="../../2.15/feat/index.html" target="">Livin' 
  With The Sims</a></font><font face="Arial, Helvetica, sans-serif" size="2">: 
  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="-1"><a href="../../2.15/pixel/index.html" target="">Pixel 
  Obscura</a></font><font face="Arial, Helvetica, sans-serif" size="2">: Josh 
  Vasquez on <b>Omikron: The Nomad Soul</b>.</font></p>
<P><font color="#000000" face="Arial, Helvetica, sans-serif" size="-1"><a href="../../rl/index.html" target="">Real 
  Life</a></font>: <font face="Arial, Helvetica, sans-serif"> <font size="-1">Check 
  out our newest comic strip, Real Life! Updated daily!</font></font></p>
<P><font color="#000000" face="Arial, Helvetica, sans-serif" size="-1"><a href="../../uf.1" target="">User 
  Friendly</a></font>: <font face="Arial, Helvetica, sans-serif"> <font size="-1">Updated 
  daily!</font></font></p>


</p>
              
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><b><font color="#339900">Related 
                Links:</font></b></font></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><a href="../../1.39/ph/index.html">Game 
                Boy for President</a>: Nick F's love for the Game Boy.</font></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><a href="../../1.19/feat/index.html">The 
                Rise and Fall...</a>: James Hague's look back at the early days 
                of hobbyist game programming</font><font face="Arial, Helvetica, sans-serif" size="-1">.</font></p>
              
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><b><a href="http://www.berda.com/loonygam.htm">T-Shirts</a>: 
                </b>Stylin' loonygames t-shirts from Berda Compugrafix!</font></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><b><a href="../../../artwork.1">Artwork</a>: 
                </b>Hey, dig the artwork on <b>loonygames</b>? We're selling some 
                of the original art.</font></p>
              <p><!--#include virtual="/includes/shooters.htm" --></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><b><font color="#339900">Feedback:</font></b></font></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1">You've got 
                an opinion...voice it! Drop a line to our <a href="../../../feedback.1">Feedback</a> 
                column...you could end up with a free T-Shirt!</font></p>
              <p><font face="Arial, Helvetica, sans-serif" size="-1"><b><font color="#339900">Random 
                Feature :</font></b></font></p>
               <p align="CENTER"><img src="../../images/raven_thum.jpg" width="93" height="93" align="MIDDLE"></p><p><font face="Arial, Helvetica, sans-serif" size="-1"><a href="../../1.36/feat/index.html">Inside Raven Software</a>: Our definitive history of the company behind <B>Hexen</b>, <B>Heretic</b> and other classics.</font></p>

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

            </td>
          </tr>
        </table>
      </td>
      <td width="62%" height="936" align="left" valign="top"> 
        <p align="center"><font size="+3" face="Arial, Helvetica, sans-serif" color="#0022A8">Game 
          Programming in the 21st Century<font size="+1"></font></font></p>
        <p align="RIGHT"><font color="#804000"><b><font face="Arial, Helvetica, sans-serif">By 
          <a href="mailto:jhague@dadgum.com">James Hague</a> </font></b></font></p>
        <p align="RIGHT"> 
          <script language="JavaScript">

<!--
       function gotoSite(obj)
          {
          var s;
          s=obj.options[obj.selectedIndex].value
                         location.href=s;
          }
// -->

</script>
          <form>
  <div align="RIGHT">
    <select name="SiteSelector" size="1" language="JavaScript" onchange="gotoSite(this)">
<option value="http://www.loonygames.com/content/2.15/">Jump to an Archived Issue!</option>
<option value="http://www.loonygames.com/content/2.15/">2.15: Livin' With The Sims</option>
<option value="http://www.loonygames.com/content/2.14/">2.14: To the Extreme</option>
<option value="http://www.loonygames.com/content/2.13/">2.13: Not Just a Passing Wind</option>
<option value="http://www.loonygames.com/content/2.12/">2.12: It's Not Easy Being Green</option>
<option value="http://www.loonygames.com/content/2.11/">2.11: Inside Origin Systems</option>
<option value="http://www.loonygames.com/content/2.10/">2.10: Game Networking 101</option>
<option value="http://www.loonygames.com/content/2.9/">2.9: Tell me a Story</option>
<option value="http://www.loonygames.com/content/2.8/">2.8: Anatomy of a Video Game</option>
<option value="http://www.loonygames.com/content/2.7/">2.7: 1999 loonygames Awards</option>
<option value="http://www.loonygames.com/content/2.6/">2.6: PC Fight Club</option>
<option value="http://www.loonygames.com/content/2.5/">2.5: Paul Steed '99</option>
<option value="http://www.loonygames.com/content/2.4/">2.4: Sounds From All Over</option>
<option value="http://www.loonygames.com/content/2.3/">2.3: Kicking Back with a Bear</option>
<option value="http://www.loonygames.com/content/2.2/">2.2: End of the Line</option>
<option value="http://www.loonygames.com/content/2.1/">2.1: American McGee's Alice</option>
<option value="http://www.loonygames.com/content/1.41/">----- Volume 1 -----</option>
<option value="http://www.loonygames.com/content/1.41/">1.41: Put a Little Love...</option>
<option value="http://www.loonygames.com/content/1.40/">1.40: Game Programming...</option>
<option value="http://www.loonygames.com/content/1.39/">1.39: More loonygames @ E3!</option>
<option value="http://www.loonygames.com/content/1.38/">1.38: loonygames at E3!</option>
<option value="http://www.loonygames.com/content/1.37/">1.37: The ReRuns Issue</option>
<option value="http://www.loonygames.com/content/1.36/">1.36: Inside Raven Software</option>
<option value="http://www.loonygames.com/content/1.35/">1.35: Waking Graeme Devine</option>
<option value="http://www.loonygames.com/content/1.34/">1.34: Writing the Game</option>
<option value="http://www.loonygames.com/content/1.33/">1.33: Totally Tribal</option>
<option value="http://www.loonygames.com/content/1.32/">1.32: Under His Skin</option>
<option value="http://www.loonygames.com/content/1.31/">1.31: The Glory of G.O.D.</option>
<option value="http://www.loonygames.com/content/1.30/">1.30: Chillin' w/Jason Hall</option>
<option value="http://www.loonygames.com/content/1.29/">1.29: Extreme Annihilation</option>
<option value="http://www.loonygames.com/content/1.28/">1.28: Adventures in ASCII</option>
<option value="http://www.loonygames.com/content/1.27/">1.27: Serious Brass Ones</option>
<option value="http://www.loonygames.com/content/1.26/">1.26: Two Programs...</option>
<option value="http://www.loonygames.com/content/1.25/">1.25: The Unreal Cliffy B!</option>
<option value="http://www.loonygames.com/content/1.24/">1.24: Gimme Your Money!</option>
<option value="http://www.loonygames.com/content/1.23/">1.23: Old Crusty Gamers</option>
<option value="http://www.loonygames.com/content/1.22/">1.22: Bugs!</option>
<option value="http://www.loonygames.com/content/1.21/">1.21: 2001</option>
<option value="http://www.loonygames.com/content/1.20/">1.20: Can't Please Everyone</option>
<option value="http://www.loonygames.com/content/1.19/">1.19: The Rise and Fall...</option>
<option value="http://www.loonygames.com/content/1.18/">1.18: romuluSngan HoH!</option>
<option value="http://www.loonygames.com/content/1.17/">1.17: A Very Geeky Christmas</option>
<option value="http://www.loonygames.com/content/1.16/">1.16: 5 Years of Doom!</option>
<option value="http://www.loonygames.com/content/1.15/">1.15: Tune Up Your Game!</option>
<option value="http://www.loonygames.com/content/1.14/">1.14: NT + Games = ???</option>
<option value="http://www.loonygames.com/content/1.13/">1.13: Blue and Levelord...</option>
<option value="http://www.loonygames.com/content/1.12/">1.12: When It's Done!</option>
<option value="http://www.loonygames.com/content/1.11/">1.11: Hangin' With John Romero!</option>
<option value="http://www.loonygames.com/content/1.10/">1.10: Still Sick of Games</option>
<option value="http://www.loonygames.com/content/1.9/">1.9: Gettin' Odd with the loonies</option>
<option value="http://www.loonygames.com/content/1.8/">1.8: LAN Parties...</option>
<option value="http://www.loonygames.com/content/1.7/">1.7: The Community Summit</option>
<option value="http://www.loonygames.com/content/1.6/">1.6: DRAW Pardner!</option>
<option value="http://www.loonygames.com/content/1.5/">1.5: Taking Aim at Paul Steed</option>
<option value="http://www.loonygames.com/content/1.4/">1.4: Play Where You Like!</option>
<option value="http://www.loonygames.com/content/1.3/">1.3: *Special Duke Issue*</option>
<option value="http://www.loonygames.com/content/1.2/">1.2: Are You Sick of Games?</option>
<option value="http://www.loonygames.com/content/1.1/">1.1: Chris Taylor Gets Some!</option>

    </select>
  </div>
</form></p>
        <p><b><font face="Arial, Helvetica, sans-serif">The Fall of C and C++</font></b></p>
        <p><font face="Arial, Helvetica, sans-serif">Scripting languages have 
          been interesting to watch in the last couple of years. First there was 
          a rush to create new, little languages to deal with the growing complexity 
          of game environments. Then came a stinging backlash, as it turned out 
          to often be more trouble designing languages and writing and maintaining 
          compilers and tools than just using C as a &quot;scripting language&quot; 
          in the first place. Things have come full circle, and the benefits originally 
          sought after have been lost. Bob the level designer turned scripting 
          monkey now has to learn C.</font></p>

        <p><font face="Arial, Helvetica, sans-serif">At the same time, developers 
          have to deal with things that the &quot;write a <b>Pac-Man</b> clone, 
          collect $200,000&quot; programmers of times gone by didn’t need to think 
          about. Complicated tree structures. Pathfinding graphs. Messy linked 
          lists that need to be built up as part of an intermediate step of an 
          algorithm and then thrown away. Sure would be nice if some of the ease 
          of those scripting languages could be used to help with rest of the 
          game code.</font></p>
        <p><font face="Arial, Helvetica, sans-serif">Like a lot of other crusty 
          ideas that seemed unusable fifteen or twenty years ago and then suddenly 
          come to the forefront amid much publicity and smugness, there’s a ready-made 
          solution for the troubles with scripting languages. Rather than writing 
          the bulk of a game in something lower level, like C, and then soldering 
          on some higher-level sugar at the end, write the entire game—most of 
          it anyway—in a higher-level language.</font></p>
        <p><font face="Arial, Helvetica, sans-serif">And—great grains!—wouldn’t 
          you know it? There are a whole heap of higher-level languages out there 
          waiting to be chosen from: LISP, Scheme, Smalltalk, ML, Python, and 
          lots of heavily wacked-out, trippy nonsense that’s been heavily researched 
          for twenty years but hasn’t gotten out of academia yet. The &quot;c’mon, 
          they aren’t fast enough!&quot; argument, at least regarding LISP, was 
          put to rest as early as 1973 by Richard Fateman. Occasionally, non-mainstream 
          languages glimmer in the game world. The MIT graduates at Naughty Dog 
          are happy to point out that they used a custom LISP compiler for the 
          gameplay related code of their three <b>Crash Bandicoot</b> games. Genius? 
          Or a multimillion dollar fluke?</font></p>
        <p><font face="Arial, Helvetica, sans-serif">If nothing else, it’s fun 
          to write a quicksort in three lines of Oddball Language X, just to start 
          an extended round of Programmer Defensiveness on a sunny afternoon. 
          When the Java crusaders march over the hillside <i>en masse</i>, it’s 
          time to go home.</font></p>
        <p><font face="Arial, Helvetica, sans-serif"><b>The Return of Home Computers</b></font></p>
        <p><font face="Arial, Helvetica, sans-serif">Despite the standard comedy 
          club punchline about VCR programming incompetence, people like computers. 
          Palm Pilots and PlayStations and old Super Nintendos are everywhere. 
          Heck, you can rent SNES games right alongside <i>Godzilla</i> and annoying 
          Hugh Grant flicks at almost any video store. What people hate are desktop 
          PCs. Compare…</font></p>
        <p align="LEFT">&nbsp; </p>
        <p align="RIGHT"><font face="Arial, Helvetica, sans-serif" size="-1"><i>(<a href="index3.php">Continued 
          on next page</a>)</i></font></p>
        <p align="RIGHT">&nbsp;</p>
      </td>
    </tr>
  </table>
  </div>
<map name="map">
  <area shape="rect" coords="32,38,226,76" href="../../../index.html" target="_self">
  <area shape="rect" coords="12,79,125,94" href="http://www.bluesnews.com" target="_self">
 
</map>
<table border="0" width="100%" align="CENTER">
  <tr> 
    <td> 
      <p><i><font face="Arial, Helvetica, sans-serif" size="-2"><b>Credits:</b> 
        Illustration &copy; 1999 Michael Krahulik. This article is &copy; 1999 
        James Hague. All other content is &copy; 1999 <a target="_self" href="http://www.loonyboi.com">loonyboi 
        productions</a>. Unauthorized reproduction is strictly prohibited, so 
        don't try it...or we'll peck your eyes out. </font></i></p>
      </td>
  </tr>
</table>
</HTML>
