<HTML>

  <title>loonygames Feature: The Rise and Fall of the Hobbyist Game Programmer</title>
<body bgcolor="#FEFFEC" link="#000000" 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="600">
      <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="600">
    <tr> 
      <td width="172" height="936" align="LEFT" valign="TOP"> 
        <table border="0" width="172">
          <tr> 
            <td height="1194" align="LEFT" valign="TOP"> 
              <p><font color="#0000FF"><b><font face="Arial, Helvetica, sans-serif" color="#0000CC">volume 
                1, issue 19</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="http://www.loonygames.com/current/cotc/">Code 
                on the Cob</a>:Chris Hargrove's ongoing programming tutorial series. 
                A must read for the would-be programmer.</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/v_thumb.jpg" width="64" height="64" align="MIDDLE"></p><p><font face="Arial, Helvetica, sans-serif" size="-1">Hey <B>Half-Life</b> fans! Looking for some good reads? Check out Valve designer Harry Teasley's <a href="../../1.16/guest/index.html">guest editorial</a>, our <a href="../../1.16/topshelf/index.html">review</a> of Half-Life, or our interview with <a href="../../1.34/feat">Marc Laidlaw!</a></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="428" height="936" align="LEFT" valign="TOP"> 
        <p align="center"><font face="Arial, Helvetica, sans-serif" size="+3" color="#0022A8">The 
          Rise and Fall of the Hobbyist Game Programmer<font size="+1"></font></font></p>
        <p align="LEFT">&nbsp;</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>
        </p>
        <p><font face="Arial, Helvetica, sans-serif">Now we come to the modern 
          era, and I won't dodge the truth of the times: this is a tough environment 
          for the game programmer, let alone the wannabe. It's tempting and easy 
          to place blame with flippant remarks--"Windows sucks!" - but that doesn't 
          address the fundamental difficulty facing modern programmers.</font></p>
        <p><font face="Arial, Helvetica, sans-serif">The difficulty is that *everything* 
          has been abstracted and complicated, and is continually abstracted and 
          complicated to the point where it's extremely tough to find a stable 
          handhold. The Win32 (or MacOS) API requires numerous thick volumes of 
          documentation for just the core functions. C++ requires more study than 
          C, plus you have to know what features aren't implemented well on what 
          compilers. Operating systems and major extensions are no longer released 
          in a straightforward manner, but have service packs and public betas 

          and developer preview releases. You can't assume a 16-bit frame buffer 
          has a particular format; you have to write code to deal with all possible 
          formats. Not only do the details of 3D APIs fill 600 page books, but 
          they've spawned the party game "let's guess what the driver writer was 
          thinking."</font></p>
        <p><font face="Arial, Helvetica, sans-serif">Professional game programming 
          and hobbyist game programming have become widely separated. And yet 
          people don't seem to realize this, or they seem unwilling to acknowledge 
          it. The bitter battles on Usenet about the importance of C++ and other 
          hot topics: those are the concerns of people who have to follow the 
          accepted standards for professional programming in team environments. 
          They have different concerns than the after-hours game designer. Some 
          hobbyists don't want to admit they are hobbyists, they try to follow 
          the professionals, and they are never heard from again. Oh, they'll 
          write part of a hot 3D engine and get all the "in" opinions, but except 
          in very rare cases you never see their name on a finished game. And 
          that's too bad, because when you're working on your own you can be creative 
          and different and do things according to your own vision. </font></p>
        <p><font face="Arial, Helvetica, sans-serif">That's the only reason for 
          being a hobbyist in the first place.</font></p>
        <p><font face="Arial, Helvetica, sans-serif">The obvious response to all 
          of this is to head for more pleasurable pastures. The late great Jim 
          Nitchals, Apple II programmer <i>extraordinaire</i>, returned to his 
          roots in the latter half 1990s teaching 6502 coding to the new generation 
          of retro programmers. Artist and designer Maurice Molyneaux was creating 
          art for a ColecoVision game--in 1998. Some people have jumped on the 
          Linux train; they cover their ears and start loudly singing "I'm Too 
          Sexy" whenever they bump into a Windows user. Most would-be game programmers 
          simply tire of it all and find a new hobby (I've noticed the local open 
          mike night is starting to feature songs of a slightly geeky nature...hmmm).</font></p>
        <p><font face="Arial, Helvetica, sans-serif">For those who decide to stick 
          around, some contemplative, non-fanatically-tinged thought about approaches 
          to software development are in order. Maybe getting down and dirty with 
          Visual C++ isn't such a great way to spend summer evenings? Years of 
          "assembly vs. high-level languages" debates have resulted in the assembly 
          folks being pounded deep </font></p>
        <p><font face="Arial, Helvetica, sans-serif">into the cold ground, with 
          the C and C++ programmers dancing overhead shouting "We were right!" 
          Then after a short break they start beating up on the Visual BASIC users. 
          Why? Is pleasantness of use such a bad thing?</font></p>
        <p><font face="Arial, Helvetica, sans-serif">Or what about Perl? It's 
          one of the few languages that occasionally gets the word "fun" associated 
          with it. Perl's strengths, combined with a couple of DLLs and a smokin' 
          266 MHz Pentium II that isn't even close to top of the line anymore, 
          should be enough to write something better than one of those "worm gets 
          longer" games. Right? Or Scheme. Or even C/C++ with a happy-go-lucky 
          graphics library like Fastgraph; a library that's </font></p>
        <p><font face="Arial, Helvetica, sans-serif">been called slow as a dog 
          for the last six or more years, even though it was used to write commercial 
          games when a 486-66 was an unobtainable dream machine (the definition 
          of "slow" keeps expanding). Actively seek out something that agrees 
          with you, and use it as your sole outpost in the modern world of computing 
          confusion.</font></p>
        <p><font face="Arial, Helvetica, sans-serif">Then stick it in an old shoebox 
          with a masking tape label reading "My Sanity," and get back to work.</font></p>
        <p>&nbsp; </p>
        <p align="RIGHT"><font face="Arial, Helvetica, sans-serif" size="-1"><i>- 
          James Hague is a programmer for <a href="http://www.volition-inc.com">Volition</a> 
          by day, and the sole programmer at his shareware company <a href="http://www.dadgum.com">Dadgum 
          Games</a> by night.</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="600" align="CENTER">
  <tr> 
    <td><i><font face="Arial, Helvetica, sans-serif" size="-2"><b>Credits:</b> 
      Illustration &copy; 1998 Mike Sanzone. The Rise and Fall of the Hobbyist 
      Game Programmer is &copy; 1998 James Hague. All other content is &copy; 
      1998 <a target="_self" href="http://www.loonyboi.com">loonyboi productions</a>. 
      Unauthorized reproduction is strictly prohibited, dangit.</font></i></td>
  </tr>
</table>
</HTML>
