<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>M@Blog &#187; Game Coding</title>
	<atom:link href="http://mattwork.potsdam.edu/blog/category/game-coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattwork.potsdam.edu/blog</link>
	<description></description>
	<lastBuildDate>Wed, 18 Nov 2009 23:09:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Back in the Saddle Again</title>
		<link>http://mattwork.potsdam.edu/blog/2007/09/02/back-in-the-saddle-again/</link>
		<comments>http://mattwork.potsdam.edu/blog/2007/09/02/back-in-the-saddle-again/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 03:20:27 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=123</guid>
		<description><![CDATA[The Game&#8230; Ah, yes. Basically I got to the point that I needed more skills- More knowledge- before I could advance. I needed to understand 3D modeling. I needed to understand rigging, and extrusion, and polygon counts. I needed to build my toolkit before I could take what I&#8217;ve done with the &#8220;easy&#8221; parts of [...]]]></description>
			<content:encoded><![CDATA[<p>The Game&#8230; Ah, yes. Basically I got to the point that I needed more skills- More knowledge- before I could advance. I needed to understand 3D modeling. I needed to understand rigging, and extrusion, and polygon counts. I needed to build my toolkit before I could take what I&#8217;ve done with the &#8220;easy&#8221; parts of game design- the concepts, the 2D art, the pen-and-paper mechanics, the plots, and the engine- and actually make them come alive. So, they&#8217;re coming alive now. I&#8217;ve built my first terrain. I&#8217;ve built my first NPC model. Things are moving along. Not by leaps and bounds, by baby steps: But they are moving along, and it feels great to be back in the saddle again.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2007/09/02/back-in-the-saddle-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LOL&#8230; As Fate Would Have It</title>
		<link>http://mattwork.potsdam.edu/blog/2006/01/14/lol-as-fate-would-have-it/</link>
		<comments>http://mattwork.potsdam.edu/blog/2006/01/14/lol-as-fate-would-have-it/#comments</comments>
		<pubDate>Sat, 14 Jan 2006 21:32:22 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=30</guid>
		<description><![CDATA[Ironically, after writing the last post, I found that some/most of my programs weren&#8217;t compiling anymore. Turns out Microsoft discontinued support for VC++6 in the latest SDKs&#8230; So I either shell out shittons of money for a new compiler, or find my love elsewhere&#8230; Ugh&#8230; Maybe SDL/OpenGL &#8230;
[UPDATE] After uninstalling the newest SDK, and installing [...]]]></description>
			<content:encoded><![CDATA[<p>Ironically, after writing the last post, I found that some/most of my programs weren&#8217;t compiling anymore. Turns out Microsoft discontinued support for VC++6 in the latest SDKs&#8230; So I either shell out shittons of money for a new compiler, or find my love elsewhere&#8230; Ugh&#8230; Maybe SDL/OpenGL &#8230;<br />
<br style="font-weight: bold" /><span style="font-weight: bold">[UPDATE] </span>After uninstalling the newest SDK, and installing an older version, everything builds ok again. There are a number of discussion on the net about how to get around it. I&#8217;ll probably give it a try sometime, but for now I don&#8217;t need anything in the newest SDKs. They also broked DirectShow out into the Platform SDK, so ugh&#8230; Also, I found a cool C++ IDE called <a href="http://www.codeblocks.org/">CodeBlocks&#8230;</a> I plan to look into it more sometime.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2006/01/14/lol-as-fate-would-have-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Platform Decision</title>
		<link>http://mattwork.potsdam.edu/blog/2006/01/12/platform-decision/</link>
		<comments>http://mattwork.potsdam.edu/blog/2006/01/12/platform-decision/#comments</comments>
		<pubDate>Fri, 13 Jan 2006 03:34:20 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=31</guid>
		<description><![CDATA[So back when I started thinking seriously about writing this game- The game I still haven&#8217;t really talked about much from a &#8220;what&#8217;s it about&#8221; standpoint, but is &#8220;big&#8221;- I had a MAJOR dilemma. I&#8217;m a serious GNU/Linux user. I use GNU/Linux for nearly everything&#8230;. Except games.
I wanted to make a cross-platform game, and it [...]]]></description>
			<content:encoded><![CDATA[<p>So back when I started thinking seriously about writing this game- The game I still haven&#8217;t really talked about much from a &#8220;what&#8217;s it about&#8221; standpoint, but is &#8220;big&#8221;- I had a <span style="font-weight: bold">MAJOR</span> dilemma. I&#8217;m a serious GNU/Linux user. I use GNU/Linux for nearly everything&#8230;. Except games.</p>
<p>I wanted to make a cross-platform game, and it became quickly obvious that using <a href="http://www.libsdl.org/">SDL/OpenGL</a> was the only sensible choice for a very 3D-intensive game. So I went in search of books on SDL&#8230; There really aren&#8217;t any that were of interest. Quite a few on OpenGL, 2 of the better ones are now in my library. So I read and followed some tutorials online, and did some cute little technology demos. I&#8217;m not one to not do something because it&#8217;s &#8220;hard&#8221;, but it became quickly obvious that a lot of it was at a lower-level than I had hoped it would need to be. Some very simple (<a href="http://www.azlyrics.com/lyrics/cranberries/zombie.html">in my head</a>) things were exceptionally complex. I found <a href="http://www-128.ibm.com/developerworks/library/l-making-linux-fun/">a </a><a href="http://www-128.ibm.com/developerworks/library/l-pirates/">series</a> <a href="http://www-128.ibm.com/developerworks/library/l-pirates2/">of</a> <a href="http://www-128.ibm.com/developerworks/library/l-pirates3/">great</a> <a href="http://www-128.ibm.com/developerworks/library/l-pirates4/">articles</a> <a href="http://www-128.ibm.com/developerworks/library/l-pirates5/">on</a> SDL on IBM DeveloperWorks &#8230; But <a href="http://pirates.devolution.com/">the game</a> discussed is vapor still, even though the articles are old (c1999), which isn&#8217;t so encouraging.</p>
<p>I then started looking at *gasp* <a href="http://www.microsoft.com/directx/">DirectX</a>. [TANGENT] Despite <a href="http://blog.russnelson.com/opensource/microsoft-is-not-evil.html">what some otherwise cool people say</a>, Microsoft <span style="text-decoration: underline"><span style="font-style: italic"><span style="font-weight: bold">IS</span></span></span> evil. There are people (some that I know/have met, even) that are not, but any company that tries to upset the homeostatic balance of nature and churns out crap is evil. This does include <a href="http://www.google.com/">companies that claim they aren&#8217;t evil</a>, by the way. [/TANGENT] Tangent aside, DirectX is the defacto standard in game development, so it was worth a look. At first glance, DirectX wasn&#8217;t much/any better than SDL/OpenGL. In face, some things were even MORE low-level&#8230; Then I discovered I wasn&#8217;t reading about the higher-level APIs that take care of a lot of minutia for the developer&#8230; Wow. Power, feature, flexibility and&#8230; ease. And tons of documentation.</p>
<p>So I spent some time (3 weeks) doing parallel development. The engine modules I was working on would duplicate everything. For every class (where applicable), there would be two: one with _dx9, and one with _sdl. For every function (where applicable), there would be two: one with _dx9, and one with _sdl. This was exceptionally useful for evaluating the ease of coding (SDL/OpenGL requires more code to do the same thing, usually) as well as the performance (on my development system, DirectX renderings were faster, and took less of a footprint, in general than SDL/OpenGL).</p>
<p>I am still writing all of my engine code very agnostic, so theoretically, I can swap out libraries, rewrite some engine code, but the engine API will be stable and the games built on top of them can run unchanged. But for now, DirectX is the only real way I can feasibly write a game of the size I&#8217;m working on, without it dragging on even longer than it already will&#8230;.<br />
Sometime soonish, I swear, will be the big reveal on what the hell I&#8217;m writing.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2006/01/12/platform-decision/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wonders Never Cease</title>
		<link>http://mattwork.potsdam.edu/blog/2006/01/11/wonders-never-cease/</link>
		<comments>http://mattwork.potsdam.edu/blog/2006/01/11/wonders-never-cease/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 04:35:29 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=32</guid>
		<description><![CDATA[MS has released DirectX tools for Maya, Photoshop, PaintShop Pro, and 3DS Max&#8230; Cool. Get the December 2005 (or newer, I hope) DirectX SDK.
]]></description>
			<content:encoded><![CDATA[<p>MS has released DirectX tools for Maya, Photoshop, PaintShop Pro, and 3DS Max&#8230; Cool. Get the December 2005 (or newer, I hope) DirectX SDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2006/01/11/wonders-never-cease/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gamelets: R1</title>
		<link>http://mattwork.potsdam.edu/blog/2006/01/11/gamelets-r1/</link>
		<comments>http://mattwork.potsdam.edu/blog/2006/01/11/gamelets-r1/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 01:36:42 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=33</guid>
		<description><![CDATA[I&#8217;ve packaged a pair of gamelets that use the engines&#8230; I need some cool name&#8230; &#8220;The engines&#8221; just isn&#8217;t good enough&#8230; Anyhow&#8230; lights.exe uses a point-source light on a rotating cube. The billboard.exe file loads a pair of cheesy images I snagged from somewhere, and shows 2D billboarding on a 3D level. I guess these [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve packaged a pair of gamelets that use the engines&#8230; I need some cool name&#8230; &#8220;The engines&#8221; just isn&#8217;t good enough&#8230; Anyhow&#8230; lights.exe uses a point-source light on a rotating cube. The billboard.exe file loads a pair of cheesy images I snagged from somewhere, and shows 2D billboarding on a 3D level. I guess these are more &#8220;technology demos&#8221; than &#8220;gamelets&#8221;. The gamelets will come&#8230; For now,<a href="http://mattwork.potsdam.edu/projects/blog/files/gamelets.zip"> here&#8217;s this</a>. (<a href="http://www.microsoft.com/directx/">DirectX 9.0 or newer required</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2006/01/11/gamelets-r1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming</title>
		<link>http://mattwork.potsdam.edu/blog/2006/01/11/game-programming/</link>
		<comments>http://mattwork.potsdam.edu/blog/2006/01/11/game-programming/#comments</comments>
		<pubDate>Wed, 11 Jan 2006 05:38:51 +0000</pubDate>
		<dc:creator>M</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Coding]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://mattwork.potsdam.edu/blog/?p=35</guid>
		<description><![CDATA[So I&#8217;ve been programming- seriously programming- for about 15 years. I&#8217;ve written some small diddly games: A pair of text based games in GWBASIC, a graphical side-scroller in QBASIC, and a minesweeper-esque whack-a-mole-esque game in Visual BASIC. Yeah, when it comes to DOS/Windows, I&#8217;ve used SomethingBASIC for everything gaming. I have done substantial C++ programming [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been programming- seriously programming- for about 15 years. I&#8217;ve written some small diddly games: A pair of text based games in GWBASIC, a graphical side-scroller in QBASIC, and a minesweeper-esque whack-a-mole-esque game in Visual BASIC. Yeah, when it comes to DOS/Windows, I&#8217;ve used SomethingBASIC for everything gaming. I have done substantial C++ programming on Windows, just not in the &#8220;gaming&#8221; space.</p>
<p>So, in all my whacked-out wisdom, I decided to write a game- a big game- in Windows&#8230; Using C++ and the DirectX system. I decided a few weeks ago to blog about the progress &#8230; and, well&#8230; I am. <img src='http://mattwork.potsdam.edu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, to catch ya&#8217;ll up, I&#8217;ve written several thousand lines of C++ thus far (6412). Writing a number of parallel engines: 3D, 2D, Input, Networking, Inventory Control, and&#8230; my favorite&#8230; wait for it&#8230; wait for it&#8230; Scripting. I, uh, embedded the Perl interpreter into my scripting engine&#8230; So I can write Perl scripts to implement game-related shit. My A#1 goal is to expose absolutely as much as possible to the scripting engine, thus minimizing the amount of C++ I have to write, and maximize the amount of Perl. This has the added benefit of making the game infinitely configurable/scalable/adaptable by myself.</p>
<p>NPC AI is done through scripting. Assembling the world is done through scripting. Rewards and punishments&#8230; Scripting. Random encounters&#8230;.. Yeah, scripting. Mission database? 100% scripting.  I&#8217;m doing a series of little test gamelets that show off various pieces in order to make sure my engines- and scripts- actually work. I may post some here for the fun of it&#8230; soonish&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mattwork.potsdam.edu/blog/2006/01/11/game-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
