<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Zero Dominance</title>
	
	<link>http://www.zerodom.com</link>
	<description />
	<pubDate>Tue, 14 Apr 2009 02:42:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ZeroDominance" type="application/rss+xml" /><item>
		<title>Back online</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/vgELJPu3K_4/</link>
		<comments>http://www.zerodom.com/2009/04/back-online/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 02:42:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=82</guid>
		<description><![CDATA[For the past two weeks you may have noticed my website was not online. My domain name expired and thinking that I have set the domain to auto-renew, didn&#8217;t take any action to renew for another year. My domain was open to the market for a short while, but I don&#8217;t think anyone would want [...]]]></description>
			<content:encoded><![CDATA[<p>For the past two weeks you may have noticed my website was not online. My domain name expired and thinking that I have set the domain to auto-renew, didn&#8217;t take any action to renew for another year. My domain was open to the market for a short while, but I don&#8217;t think anyone would want it anyway. So I paid to have it back and the site&#8217;s back up. In the meantime I&#8217;ve been working on a few more things&#8230;</p>
<p>I finally finished my basic scene graph, which loads from external text files. With it you can set which meshes to use, where to put them in 3D space, and what textures to load. Finishing that, I decided to tighten up the graphics a little bit. So I added lighting and a simple specular material that made the models pop. Nothing very awesome but getting there. Right now I&#8217;m learning how to write shaders in HLSL.</p>
<p>With this experience, I plan to make a game out of it, simpler than Roll &#8216;Em Out. It will likely be a Bomberman clone, just small enough to complete it in a reasonable amount of time&#8230;I&#8217;ll give myself a few weeks to finish a playable version of it.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/vgELJPu3K_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/04/back-online/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/04/back-online/</feedburner:origLink></item>
		<item>
		<title>Indie game alert: Squishy</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/hL0MDihkl1M/</link>
		<comments>http://www.zerodom.com/2009/03/indie-game-alert-squish/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:35:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Indie games]]></category>

		<category><![CDATA[action]]></category>

		<category><![CDATA[platform games]]></category>

		<category><![CDATA[Squish]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=66</guid>
		<description><![CDATA[Taking a break from my usual programming posts this time. I regularly check out some of the developer journals from GameDev, and in particular those that report progress on some games they&#8217;re working on, like myself. One that really caught my attention was Squishy- a 2D action game with platforming elements. (For some reason I [...]]]></description>
			<content:encoded><![CDATA[<p>Taking a break from my usual programming posts this time. I regularly check out some of the developer journals from <a title="GameDev" href="http://www.gamedev.net" target="_blank">GameDev</a>, and in particular those that report progress on some games they&#8217;re working on, like myself. One that really caught my attention was <a title="Squishy" href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=408620" target="_blank">Squishy</a>- a 2D action game with platforming elements. (For some reason I thought the game was called &#8220;Squish!&#8221; Well, it sounds better to me, anyway) The author of the game, Aardvajk, has been working on this game for a few months, mostly tuning the physics and controls and it&#8217;s starting to pay off.</p>
<p>This game still has quite a ways to go before it&#8217;s released, but I&#8217;ve played <a title="Squishy demo" href="http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=408620&amp;#3414503">a recent demo</a> and there is a lot of good potential in this game. Mixing in elements from Bionic Commando and World of Goo, Squishy lets you take on the role of a roundish blob with two arms that can extend in any direction. These arms let you stick on to almost anything. You can use each arm by pressing either of two keys on the keyboard, and aiming where you want your arms to go is as easy as clicking a spot on the screen. Being a squishy blob, you can also roll around along the floor or make short hops when your arms are not needed.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-70" title="Squish! gameplay" src="http://www.zerodom.com/wp-content/uploads/2009/03/squishdecal.jpg" alt="Squish! gameplay" width="550" height="320" /></p>
<p>The latest demo of Squishy is still very early in its development stage but it already is very playable. Even though it only includes one small stage with no actual goals, the controls feel solid enough to make it very fun to play around with. The physics in the demo are also very good, giving a good sense of weight and inertia as you navigate through the level. Your character&#8217;s movement is definitely more fluid and less stiff than in Bionic Commando. I was able to cover long distances quickly Spider-man style after a few tries with the controls.  There are blocks scattered around the world that you can grab and throw. You can even pick one up while swing with your other arm, and the added weight of the block will reduce your mobility.</p>
<p>The gameplay is already there- it just needs needs the &#8220;meat&#8221; to make it a fully featured game. Aardvajk has been using a custom level editor to work on many levels and add new obstacles, and considering it&#8217;s all programmer art it doesn&#8217;t look too bad. The internals are already in good shape, and all that&#8217;s needed are a few coats of polish to make it really stand out from the rest of the platformer pack.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/hL0MDihkl1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/03/indie-game-alert-squish/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/03/indie-game-alert-squish/</feedburner:origLink></item>
		<item>
		<title>Basic scene graphs</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/Ss5plK89jvE/</link>
		<comments>http://www.zerodom.com/2009/03/basic-scene-graphs/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 02:58:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[graphics]]></category>

		<category><![CDATA[3D]]></category>

		<category><![CDATA[scene graphs]]></category>

		<category><![CDATA[space]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=43</guid>
		<description><![CDATA[My model viewer is coming along nicely and now I&#8217;ve started to implement a basic scene graph system that goes around it. Because if you want to create a semi-manageable 3D game, you gotta have a scene graph. My system is a simple one- create &#8220;model&#8221; objects that have pointers to mesh, texture and matrix [...]]]></description>
			<content:encoded><![CDATA[<p>My model viewer is coming along nicely and now I&#8217;ve started to implement a basic scene graph system that goes around it. Because if you want to create a semi-manageable 3D game, you gotta have a scene graph. My system is a simple one- create &#8220;model&#8221; objects that have pointers to mesh, texture and matrix transform objects. No nodes or hierarchy crap, just for now, anyways. I have no need to create complex relationships between the models yet. Model objects are just empty shells until you give them meshes, textures and transforms to point to. Then you&#8217;ll see a bunch of rendered objects on the screen.</p>
<p style="text-align: center;"><a href="http://www.zerodom.com/wp-content/uploads/2009/03/sceneg1.jpg"><img class="aligncenter size-full wp-image-44" title="Scene full of cars" src="http://www.zerodom.com/wp-content/uploads/2009/03/sceneg1.jpg" alt="Scene full of cars" width="581" height="380" /></a></p>
<p style="text-align: left;">Three cool new things about this screenshot- First, the loading times are much faster. I replaced the slow vector insert() function with the much quicker why-didn&#8217;t-I-use-it-before push_back() function. Second, there is actual lighting (and therefore shading) on the models, so complex shaders and HDR can&#8217;t be too far along <img src='http://www.zerodom.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> Finally, I&#8217;ve been logging some of the events happening on the screen such as the mesh and texture files present in the scene.</p>
<p><span id="more-43"></span></p>
<h3 style="text-align: left;">The process</h3>
<p style="text-align: left;">At first, I thought of simply giving each model its own storage space for meshes and textures, but that would be too wasteful and the lazy way out. Each file would have to be loaded multiple times if several models used the same mesh or texture, increasing load times and memory usage. I&#8217;ll explain in some detail how I went through the process of building the scene system, but by no means is it a tutorial. As I still have a big learning curve ahead of me, some things may not be applied in the best way. So here&#8217;s how I started out with the solution:</p>
<pre style="text-align: left;">class Model {

    private:
	WorldTransform _Transform; // Matrix transformation
	CVertBuffer* _Mesh;
	TextureResource* _Texture;
	std::string handle;

	bool _transformSet, _meshSet, _textureSet;

    public:
	Model::Model(std::string m_handle);
	Model::~Model() { }

	void setTransform(WorldTransform&amp;);
	void setMesh(CVertBuffer*);
	void setTexture(TextureResource*);

	// These check if resources are set to null values or not
	bool transformIsSet();
	bool meshIsSet();
	bool textureIsSet();

	// return the objects
	WorldTransform WTransform();
	CVertBuffer* Mesh();
	TextureResource* Texture();

	void cleanup();
};</pre>
<p>Each model has a single pointer, whose object it is pointing to can be changed at any time. As implied before, this allows different models to share the same resources. The program loads the resources from a simple text file so no need to recompile when you need to add or remove more. Since resources are shared, it can be a good setup for limiting yourself to a fixed amount of models when you&#8217;re positive that you won&#8217;t need more&#8230; resources can then be swapped when the context of the model changes.</p>
<p>Models also have a string type to store a &#8220;handle&#8221;, a unique way to identify them by name. Currently my scene graph system can&#8217;t access them by this handle, instead using the numerical order in which they&#8217;re stored in an array. This is working fine for now, but for more complex scenes it would be better not to try to memorize a number for everything.</p>
<p>One thing to note about this class: the WorldTransform object is not a pointer. I made it so because I couldn&#8217;t get the transformations to work if they were passed by a pointer. This is something that&#8217;ll have to be looked into.</p>
<p>A SceneManager object is in charge of the high-level creation and rendering of a scene (and no, I didn&#8217;t take the name from Ogre3D). It is here where the scene&#8217;s resources are actually stored. There are several vectors each dedicated to store a certain type of resource, including models. Models then borrow from the resource pool. As information is read from the text file, the SceneManager adds the proper files to the resource pool, and then the resources are assigned to models.</p>
<pre>void SceneManager::addMesh(CMesh &amp;_Mesh) {

    CVertBuffer _VBuffer;

    if (_Mesh.primitivesFound()) {

	// functions for setting up vertex buffers
	_VBuffer.createVBO(*D3Device, _Mesh.verts().size(),
	D3DVERTEXN::FVF, sizeof(D3DVERTEXN));
	_VBuffer.setData(_Mesh.verts());

	// Add attributes to list
	VBOList.push_back(_VBuffer);
    }
}

void SceneManager::addTexture(TextureResource &amp;_Texture) {

    if (_Texture.isSet()) {

	TextureList.push_back(_Texture);
    }
}</pre>
<pre>void SceneManager::assign(unsigned order, unsigned tID, unsigned mID) {

    if (order &lt; ModelList.size()) {

	// Let's avoid going out of bounds, shall we
	if (tID &lt; TextureList.size())
	    ModelList.at(order).setTexture(&amp;TextureList.at(tID));

	if (mID &lt; VBOList.size())
	    ModelList.at(order).setMesh(&amp;VBOList.at(mID));
    }
}</pre>
<p>The first two functions are examples of how scene resources are added. They start with a simple check if information has been properly loaded to the object. For a TextureResource object, it&#8217;s a texture image. The Mesh object is a little more complex since it stores a set of vertices to be added to a vertex buffer (one of the ways that DirectX renders polygons to the screen).</p>
<p>The last function is an assignment of a texture and a model from the resource pool to a model already on the list. Here&#8217;s where you can see that I am just using numbers to identify everything. Eventually it will be replaced with finding the right objects by a handle. When I make the switch from number IDs to handles, accessing objects would go from O(1) time to O(n) time but it&#8217;s a reasonable price to pay for some much needed simplicity.</p>
<p>It&#8217;s a straightforward system and it&#8217;s not without its setbacks. But it should be able to hold up well for creating not-so complex scenes, as there are no other efficient rendering techniques in place like quadtrees or spatial relationships. Animating a lot of things is also not a big concern for me now.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/Ss5plK89jvE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/03/basic-scene-graphs/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/03/basic-scene-graphs/</feedburner:origLink></item>
		<item>
		<title>3D model viewer in progress</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/6NvxhV1wnsQ/</link>
		<comments>http://www.zerodom.com/2009/03/3d-model-viewer-in-progress-3d-model-viewer-in-progress/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 02:30:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[graphics]]></category>

		<category><![CDATA[3D]]></category>

		<category><![CDATA[model]]></category>

		<category><![CDATA[obj]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=25</guid>
		<description><![CDATA[While working on the .obj model viewer, I quickly realized that reading moderately large text files can be quite slow. I&#8217;ve been using the file stream functions to open and read files and then separate the data into usable pieces. I&#8217;ve successfully been able to load any .obj model that just uses triangle faces, but [...]]]></description>
			<content:encoded><![CDATA[<p>While working on the .obj model viewer, I quickly realized that reading moderately large text files can be quite slow. I&#8217;ve been using the file stream functions to open and read files and then separate the data into usable pieces. I&#8217;ve successfully been able to load any .obj model that just uses triangle faces, but reading just a few thousand faces from a file takes just over a second in most cases.</p>
<p>I know that there are .x files made specifically to work with DirectX (and they carry much more information than vertex, normal and texture coordinates) but .obj files appear already suitable for adding static, non-deformable models. They are just loading far too slow for practical real-time uses, such as loading entire levels from a game. So I have already thought up some ways to create a binary file format that stores the same information as text from an .obj, but in a more concise manner.</p>
<p><span id="more-25"></span></p>
<p>Some screenshots of my newbie-ish model viewing program show its strange variation in loading times.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-26" title="Screenshot 1" src="http://www.zerodom.com/wp-content/uploads/2009/03/scr-obj1.png" alt="Screenshot 1" width="583" height="463" /></p>
<p style="text-align: left;">The first model I tested was a character model of Hsien-Ko (from Darkstalkers) that I made two years ago. This file is 95kb in size. Loading a low-poly version of the character took almost 0.4 seconds. Still quite slow for a single mesh totalling less than 1,200 polygons.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-31" title="Screenshot 2" src="http://www.zerodom.com/wp-content/uploads/2009/03/scr-obj2.png" alt="Screenshot 2" width="583" height="463" /></p>
<p style="text-align: left;">This model of a half-finished body of a Shelby Mustang (also made by me) took just over a second to load. It is roughly 238kb in size.</p>
<p style="text-align: left;">It&#8217;s also important to know that the loading times are not the same everytime the program is run, so these two examples are just approximations. Doing some quick math with these time measurements, we can assume that the program can read 2,670 polygons per second.</p>
<p style="text-align: left;">However, it&#8217;s not as simple as that. <a title="File structure of an .obj file" href="http://www.eg-models.de/formats/Format_Obj.html" target="_blank">The file structure of an .obj model</a> contains the coordinates of unique vertices and indexes the polygon faces by the vertex numbers. Which means that a model with 300 unique vertices will almost always have more than 300/3 triangles, as many vertices are going to be shared. This means most of the overhead of reading the file is involved with the longer lists of indexed polygon faces.</p>
<p style="text-align: left;">Everything the program reads is taken as a string, and then converted to appropriate numerical types. My guess is that this is the second most time consuming process for parsing the file, next to reading all the lines. Reading raw bytes with less conversion would be quite faster. Not sure by how much, but if the new file were reduced by only half of the original size, loading times could be even less than half as long as what they are now.</p>
<p style="text-align: left;">This idea of a binary version of an .obj model is not something I plan to take on just yet, nor do I think I&#8217;m the first person who has thought of it. But when I get into the serious stages of making a game I&#8217;ll have to figure it all out.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/6NvxhV1wnsQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/03/3d-model-viewer-in-progress-3d-model-viewer-in-progress/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/03/3d-model-viewer-in-progress-3d-model-viewer-in-progress/</feedburner:origLink></item>
		<item>
		<title>9 days with DirectX</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/UkC96G6vE3c/</link>
		<comments>http://www.zerodom.com/2009/03/9-days-with-directx/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 21:36:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[C++]]></category>

		<category><![CDATA[DirectX]]></category>

		<category><![CDATA[graphics]]></category>

		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=11</guid>
		<description><![CDATA[Nine days. That&#8217;s what the registration reminder of Visual Studio told me how long I was using the program. And how long I&#8217;ve spent using DirectX, never having tried it before. And for nine days, I think I&#8217;ve made good progress&#8230;but more on in just a bit.
I decided to take a short break on Roll [...]]]></description>
			<content:encoded><![CDATA[<p>Nine days. That&#8217;s what the registration reminder of Visual Studio told me how long I was using the program. And how long I&#8217;ve spent using DirectX, never having tried it before. And for nine days, I think I&#8217;ve made good progress&#8230;but more on in just a bit.</p>
<p>I decided to take a short break on Roll &#8216;Em Out and learn some new things. Programming on a Mac was a refreshing experience, and XCode was really easy to use. And if you don&#8217;t want to use XCode you have your Terminal command line too in all its Unix-y goodness. Porting the game from Windows was a snap, thanks to Mac frameworks that already exist for SDL, and graphics running on OpenGL. This is where I was working on my game for the past month, but after being burned out by a lot of physics testing I decided to give it a break.</p>
<p>Additionally, I started to miss working on a Windows environment, as crazy as that sounds. Well, the actual reason I wanted to go back was to learn DirectX. <a href="http://elysianshadows.com/phpBB3/viewtopic.php?f=6&amp;t=3154">This topic</a> at the Chaos Rift forums got me interested in trying it out. See, if OpenGL 3.0 is heading towards more of a rehash of its older 2.1 implementation and the OpenGL ARB is not listening to the professionals in the game industry, might as well try the alternative as sort of a safety net. Code::Blocks IDE (what I typically use) and DirectX wouldn&#8217;t make the best combination so I installed Visual Studio 2008 Express. So I continue to code but back on a different platform, on a different IDE and a different graphics library.</p>
<p>Back to the progress that I&#8217;ve made: DirectX was a struggle to learn in the first two or three days but after that it was all like picking up familiar concepts in new ways, and quickly got accustomed to the debugger tools that came with MSVC++ (a real time saver). That is not to say I didn&#8217;t encounter any major problems. Here&#8217;s how the 9 days panned out, to the best of my memory.</p>
<p><span id="more-11"></span></p>
<h3><strong>Day 1</strong></h3>
<p>Downloaded and installed MSVC++ and the DirectX SDK. Played around with the SDK demo programs. Then went on to GameDev and Two Kings to read some basic tutorials.</p>
<h3><strong>Day 2</strong></h3>
<p><strong></strong>Looked at more tutorials and samples. Started copying my game state engine code that I use in Roll &#8216;Em Out and a few other projects. Got the game code with SDL (without graphics) running soon after correctly linking. I now have a fully working environment I can use in Visual Studio. Cool beans.</p>
<h3><strong>Day 3</strong></h3>
<p>Frustration begins. Trying to integrate the Win32 API to replace SDL was not very successful to say the least. It&#8217;s very verbose and also has a separate block for callback functions that didn&#8217;t know where I would place in my StateManager class. Screw it, I&#8217;m going back to SDL. On the good side, I figured out how to place a Direct3D device in each game state, so switching states made the window change background colors.</p>
<h3><strong>Day4</strong></h3>
<p><strong></strong>Basic polygon rendering and learning how to use vertex buffers. At this point I replaced the OpenGL code of my Display class with some DirectX code. Vertex buffers are very important for DirectX, as it doesn&#8217;t have an &#8220;immediate mode&#8221; like OpenGL does.</p>
<p>I was also learning how to apply textures, but I noticed that changes in the code somehow didn&#8217;t change anything that was displayed since the last crash. It was like the image was stuck in video memory. I&#8217;m sure I didn&#8217;t make some function calls correctly.</p>
<h3>Day 5</h3>
<p>More frustration. This DirectX thing is like jumping into a stick shift Mustang after being used to automatic most of the time. I really have to manage the resources well, because my test program must have crashed at least a hundred times that day.</p>
<p>I ported my simple polygon-rendering script reader (it basically takes a text file that contains endpoints for quads) and started seeing &#8220;phantom&#8221; shapes. Anything more than a few boxes on screen and the program crashed when I switched game states or quit. Some &#8220;safe release&#8221; functions helped stopped the crashes on quit, but it was still unstable.</p>
<h3>Day 6</h3>
<p>Despite the setbacks, I figured I got the basic texturing code right. I just sucked at cleaning up resources. Worked on a SceneManager class to make the rendering commands a bit more fluid, however that would be explained in a future post.</p>
<p>Tried to import some old code I made to parse an .obj model file. This was haflway done- the least I could do is render just the vertices and vertex colors. It worked with a simple cube, but when I attempted to load a character model I made myself, it crashed at startup.</p>
<h3>Day 7</h3>
<p>Here I decided to make loading an .obj file my first real goal for a DirectX program. Made some debugging messages to help me out. They were in the form of annoying alert popups so I couldn&#8217;t really use them in loops. However I learned that the model was loading fine, but the program refused to render it.</p>
<h3>Day 8</h3>
<p>Found the problem! It was in the DrawPrimitives function. The debugger couldn&#8217;t catch it, but I entered one of the variables wrong. The variable tells the program how many primitives to render from the buffer. I used the number of vertices as the variable. Well, since I was using triangles and there are 3 vertices per triangle, I was making the program render three times more polygons than it should. This made it search out of bounds for the buffer, stopping the program. Now I think I got how to drive stick shift. Pretty soon I&#8217;ll be able to try something supercharged.</p>
<h3>Day 9</h3>
<p>My .obj loader works, and added SDL input functions in order to make the model spin or zoom. Still have to figure out the best way to use matrix transformations, as I can&#8217;t get them to work independently more than one model at a time. Also added lighting code from a tutorial. For a while I was seeing a blank screen but realized I didn&#8217;t set the vertex format to include normals. It&#8217;s all fixed now.</p>
<p>I guess today would be day 10. Nothing really in progress today, as I wanted to get on the more creative side and make/export a few 3D models, and test them out with my .obj viewer. Also, there&#8217;s a lot of stuff that went on behind the creation of this program. I wanted to make my rundown of the past nine days as brief as possible, but my involvement got more intense as the days went on.</p>
<p>So what&#8217;s next for me? Probably explaining the .obj viewer in more detail, and some of the procedures I used. Then take my viewer to do something more useful like loading a simple game world. Who knows if the next week will be as productive as the last&#8230;we&#8217;ll just have to wait for that.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/UkC96G6vE3c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/03/9-days-with-directx/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/03/9-days-with-directx/</feedburner:origLink></item>
		<item>
		<title>What’s going on with my latest game</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/n2M08UGbKAw/</link>
		<comments>http://www.zerodom.com/2009/03/whats-going-on-with-my-latest-game/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 01:16:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Gaming]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Game]]></category>

		<category><![CDATA[Roll 'Em Out]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=5</guid>
		<description><![CDATA[Roll &#8216;Em Out is a puzzle/platformer game I am working on, which is a tribute to the Super Monkey Ball series. Basically you roll a ball around a course, trying to get to the goal area without falling off. If you found my blog, you probably came through The Chaos Rift or my YouTube channel, [...]]]></description>
			<content:encoded><![CDATA[<p>Roll &#8216;Em Out is a puzzle/platformer game I am working on, which is a tribute to the Super Monkey Ball series. Basically you roll a ball around a course, trying to get to the goal area without falling off. If you found my blog, you probably came through The Chaos Rift or my YouTube channel, so you might have read about it already. If not, here&#8217;s the last video I recorded for my work in progress.</p>
<div style="text-align: center;"><object width="425" height="344" data="http://www.youtube.com/v/n-xiip6IucQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/n-xiip6IucQ&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></div>
<p>Keep in mind that this video is over a year old. Also, I stopped working on it shortly after making this video, and didn&#8217;t start again until last month. Things that have changed since the making of this video:</p>
<ul>
<li>Better collision detection (had to basically re-write a lot of code and remove some junk code that wasn&#8217;t doing anything at all)</li>
<li>More realistic reactions to landing/bouncing on slanted surfaces</li>
<li>A simple level loader that reads text files to draw polygons and load textures</li>
</ul>
<p>Right now work on the game is on hold again, but only because I want to get back into learning a better way to write code to render graphics, and copied a lot of the code for a small &#8220;sandbox&#8221; program to test out physics. When I get the physics down to a satisfactory point, I will port that code back into the game.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/n2M08UGbKAw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/03/whats-going-on-with-my-latest-game/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/03/whats-going-on-with-my-latest-game/</feedburner:origLink></item>
		<item>
		<title>Welcome to the new Zero Dominance!</title>
		<link>http://feedproxy.google.com/~r/ZeroDominance/~3/yVbmjS59Vcc/</link>
		<comments>http://www.zerodom.com/2009/02/hello-world/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 02:24:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zerodom.com/?p=1</guid>
		<description><![CDATA[This blog is mostly a continuation of the previous Zero Dominance, in which I provided tips for web design and development. But I&#8217;ve decided to increase my scope this time and provide some insight into the projects that I&#8217;m working on. This includes both web development and programming projects. Previously these project updates had a [...]]]></description>
			<content:encoded><![CDATA[<p>This blog is mostly a continuation of the previous Zero Dominance, in which I provided tips for web design and development. But I&#8217;ve decided to increase my scope this time and provide some insight into the projects that I&#8217;m working on. This includes both web development and programming projects. Previously these project updates had a home in <a title="The 32 Bit Shell" href="http://32bitshell.wordpress.com" target="_blank">The 32 Bit Shell</a>. You could say that the new Zero Dominance will combine all my help and development-related articles into one website, and I would probably keep it that way.</p>
<p>A bit about me: I&#8217;m Chris, known in some parts online as CC Ricers, and currently work as a contractor for a web development company. My work is for the most part technical, and I have also gotten involved with learning and programming in C++ in my spare time. Besides typing away on my computer, I also DJ as a hobby and have a growing collection of drum &amp; bass and house music.</p>
<p>I also maintain <a title="GameSnooper" href="http://www.gamesnooper.com" target="_blank">GameSnooper</a>, a little website I built as an experiment. Right now, it&#8217;s nothing more than a portal to a random assortment of daily video game news. But when I get to work on some new features for the site, I&#8217;ll let you know here.</p>
<img src="http://feeds.feedburner.com/~r/ZeroDominance/~4/yVbmjS59Vcc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zerodom.com/2009/02/hello-world/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.zerodom.com/2009/02/hello-world/</feedburner:origLink></item>
	</channel>
</rss>
