<?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>Versus Software</title>
	<atom:link href="http://versus-software.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://versus-software.com/blog</link>
	<description>game + free time = duck</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:38:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>What does sorting potatos have to do with engineering</title>
		<link>http://versus-software.com/blog/what-does-sorting-potatos-have-to-do-with-engineering/</link>
		<comments>http://versus-software.com/blog/what-does-sorting-potatos-have-to-do-with-engineering/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 17:38:34 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[rambling]]></category>
		<category><![CDATA[decisions]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[different view]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[potatos]]></category>
		<category><![CDATA[project managment]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=200</guid>
		<description><![CDATA[Weeks before graduating from college, while I was handing out resumes and doing job interviews, my father, who has an engineering background, asked me the following question: If I were a farm owner and wanted you to create a machine that sorted the bad potatos from the good ones, what would you do? Seemed like [...]]]></description>
			<content:encoded><![CDATA[<p>Weeks before graduating from college, while I was handing out resumes and doing job interviews, my father, who has an engineering background, asked me the following question:</p>
<blockquote><p>If I were a farm owner and wanted you to create a machine that sorted the bad potatos from the good ones, what would you do?</p></blockquote>
<p>Seemed like a simple task so I thought about it for a few seconds. Initially I imagined a device that would take pictures of the potatoes and perform image processing queries on them. These queries could then figure out if there were any fungus or odd shapes in the potatoes.</p>
<p>When I told this to my father he laughed. He said: just throw the potatoes in water. The ones that don&#8217;t float are the bad ones.</p>
<p>Now this is a very simple example of an issue that I think rises with a lot of development and engineering teams. You see, had you had asked that question to an electrical engineer he might have thought if the current that passes in bad potatoes is different than in the good ones. A mechanical engineer might have thought about the weight difference between the potatoes, and so on.</p>
<p>People tend to face problems from their technical backgrounds, which is not particular a bad thing, but it is important to be able to extend to other areas of knowledge, even trivial ones. Had any of those engineers had asked a cook about the potato problem, they would have probably had the best answer.</p>
<p>And to me that&#8217;s the crucial point here. I think a lot of projects fail because people fail to assume some other realm of knowledge might have a better understanding of the problem they are facing. They assume they can &#8216;deal with it&#8217; and in the end, all they get is a bunch of bad project decisions and thus, bad potatoes.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/what-does-sorting-potatos-have-to-do-with-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zen, Motorcycle and how I view the PS3 vs the Xbox360 issue</title>
		<link>http://versus-software.com/blog/zen-motorcycle-and-how-i-view-the-ps3-vs-the-xbox360-issue/</link>
		<comments>http://versus-software.com/blog/zen-motorcycle-and-how-i-view-the-ps3-vs-the-xbox360-issue/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 19:32:49 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[comparissons]]></category>
		<category><![CDATA[rambling]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[artist]]></category>
		<category><![CDATA[development team]]></category>
		<category><![CDATA[james joyce]]></category>
		<category><![CDATA[literature]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[system architecture]]></category>
		<category><![CDATA[xbox360]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=194</guid>
		<description><![CDATA[In my last year of high school I had your typical Brazilian literature teacher, where he used to praise Brazilian authors in contrast with foreigner ones. He used to denounce reading foreigner authors and that the Brazilian mass should enjoy more of its local authors. I pretty much disagreed with most of the things he [...]]]></description>
			<content:encoded><![CDATA[<p>In my last year of high school I had your typical Brazilian literature teacher, where he used to praise Brazilian authors in contrast with foreigner ones. He used to denounce reading foreigner authors and that the Brazilian mass should enjoy more of its local authors.</p>
<p>I pretty much disagreed with most of the things he said, but he did say one thing that struck me as true and it&#8217;s pretty much the only thing I took with me from his classes. He said:</p>
<blockquote><p>An artist writes how he feels and how he feels is a direct consequence of the environment he finds himself at.</p></blockquote>
<p>In other words an artist&#8217;s background, culture and the society around him influence his artistic views. Makes pretty much sense doesn&#8217;t it? But people usually apply this to writers and the normal standard of an artist. The catch is that it affects all creative thinkers, this includes engineers and software developers as well. Here&#8217;s an example.</p>
<p>Every now and then I read some article comparing the PlayStation 3 architecture with that of the Xbox360. Makes sense since they were both platforms developed to handle massive amounts of data. Usually those comparisons involve a instruction/triangle/frame/shading per second/pass view or how the 6 synchronous SPU cores compare with 3 asynchronous cores.</p>
<p>It&#8217;s all quite interesting, since for on one hand you have an architecture that&#8217;s basically massive raw power, running at the highest possible clock speed, with tons of ram. Big and bulky American muscle. On the other side you have a series of smaller cores, that require a more ellaborate design, streched throughout each individual node. Less but more refined, efficiency through group effort. When I see these sorts of things I think of only one thing: Motorcycles.</p>
<p><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/american-chopper.jpg"><img class="alignnone size-medium wp-image-195" title="american-chopper" src="http://versus-software.com/blog/wp-content/uploads/2010/08/american-chopper-300x150.jpg" alt="" width="300" height="150" /></a><br />
You have the classic American choppers, big bulky American muscle. Lots of fuel, big engine cylinders, raw power per torque. Made to last.</p>
<p><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/0512008-kawasaki-ninja-250r.jpg"><img class="alignnone size-medium wp-image-196" title="0512008-kawasaki-ninja-250r" src="http://versus-software.com/blog/wp-content/uploads/2010/08/0512008-kawasaki-ninja-250r-300x176.jpg" alt="" width="300" height="176" /></a><br />
And then you have the Kawasaki&#8217;s lines. Less fuel per cycle, more refined in it&#8217;s architecture. Made to run fast.</p>
<p>Each of those types of Motorcycles present its ups and downs. With one you can go from coast to coast and back again. The other you can only go from one to state to the other but at top speed. They&#8217;re the same type of vehicle but the catch is that they were designed by engineers of different nationalities.</p>
<p>I&#8217;m not trying to throw the cliche dilemma of East vs. West here because I see it more as a general social example. Both engineering teams were given the same task: built me a motorcycle, but their final product is obviously different in terms of style and scope. To me a big part of it is that both teams had different cultural backgrounds, were in different societies and had thus different views on how to solve the same problem.</p>
<p>I think the same happened with the Xbox 360 and ps3 teams. Both had the same task: build me a video game, and the final product is obviously different.</p>
<p>Both systems have it&#8217;s ups and downs but the point I&#8217;m trying to make is that I think an ideal developer/engineer would be able to go beyond his cultural heritage and be able to reach the same conclusions the other team had, and in the end make the best overall decisions.</p>
<p>Generally I think a good artist is not bound by the limitations he found himself at. He is able to roam freely from it and create an art that doesn&#8217;t speak to only those individuals in his current social realm, but to all individuals. To me a good artist is universal in his approach of seeing and making art. As <a href="http://en.wikipedia.org/wiki/James_joyce">James Joyce</a> put it brilliantly:</p>
<blockquote><p>When the soul of a man is born         in this country there are nets flung at it to hold it         back from flight. You talk to me of nationality, language,         religion. I shall try to fly by those nets</p></blockquote>
<p>I think it&#8217;s a beautiful quote and strikes at the core of that which I spend so much time thinking about. Joyce is a relly good read, though unfortunally I don&#8217;t think my Literature teacher would read him.</p>
<p>At least you understand now why I disagreed with him so much.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/zen-motorcycle-and-how-i-view-the-ps3-vs-the-xbox360-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parking a car == Software Development</title>
		<link>http://versus-software.com/blog/parking-a-car-software-development/</link>
		<comments>http://versus-software.com/blog/parking-a-car-software-development/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 03:13:15 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[rambling]]></category>
		<category><![CDATA[common sense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[managment]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=185</guid>
		<description><![CDATA[A few days ago while I was waiting for the the bus so I could go to work, I saw on the other side of the street a taxi driver trying to parallel park his car. He initially used to wide of an angle to try to get into the parking spot, so after maneuvering [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago while I was waiting for the the bus so I could go to work, I saw on the other side of the street a taxi driver trying to <a href="http://en.wikipedia.org/wiki/Parallel_parking">parallel park</a> his car.</p>
<p>He initially used to wide of an angle to try to get into the parking spot, so after maneuvering the car in, he kept moving back and forth, trying to adjust the cab to the right spot. Unfortunally, since his initiall angle was so wide, no matter what he did he could not get the car close enough to the curb.</p>
<p>He kept going, back and forth for at least 2 minutes, until finally he moved the car completely out of the spot, took the right angle , and managed to fit the car perfectly in the parking spot this time.</p>
<p>Now I don&#8217;t know about you, but when I saw that I thought : &#8220;That&#8217;s a perfect software enginnering metaphor.&#8221; And indeed it is, heres why.</p>
<p>You see the vast majority of software managers when trying to do their job, aka manage software development, they usually list the things they should estimate: functional requisites, prototype, develop code, refactor, etc. They usually forget one simple and yet crucial thing:</p>
<blockquote><p>You will throw code away.</p></blockquote>
<p>Every software that&#8217;s used requires maintanance. Maintanance requires to increase or change the scope of software. As you do that, previous software under that new scope doesn&#8217;t function or isn&#8217;t the best for that system. They have to re-write things, start again, but with the new goal in mind.</p>
<p>But software managers usually don&#8217;t like the sentence &#8220;Throw code away&#8221;. It implies an idea of waste of time, or that any system can be adapted, it&#8217;s just a matter of figuring out how.</p>
<p>Those managers are doing exactly what that taxi driver was trying to do. Going back and forth with their code, hopeleslly trying to get their software/taxi in the right spot. They never will, and regardless of how many factors point to it, they won&#8217;t admit they&#8217;re bad drivers. To them the car will eventually set in the right spot, while in reality they should restart the parking procedure as a whole.</p>
<p>Those usually are bad managers, ones that I try to avoid. If they can&#8217;t park a car right, how the fuck do they plan to manage software development?</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/parking-a-car-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Third Editor Release</title>
		<link>http://versus-software.com/blog/third-editor-release/</link>
		<comments>http://versus-software.com/blog/third-editor-release/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 19:22:37 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[vKernel]]></category>
		<category><![CDATA[doom like editor]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[MDI]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[zooming]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=168</guid>
		<description><![CDATA[All right, here&#8217;s the third editor release. Download link: I managed to add three basic functionalities to this editor that I wanted. The first is the ability to move freelly through it&#8217;s space, without any scope restrictions. In the Solis editor when you create a new map you set it&#8217;s width and height and it [...]]]></description>
			<content:encoded><![CDATA[<p>All right, here&#8217;s the third editor release.</p>
<p style="text-align: center;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot1.png"><img class="size-medium wp-image-169 aligncenter" title="editor_screenshot1" src="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot1-300x233.png" alt="" width="300" height="233" /></a>Download link: <a class="downloadlink" href="http://versus-software.com/blog/wp-content/plugins/download-monitor/download.php?id=3" title="Version0.3 downloaded 3 times" >vtool (3)</a></p>
<p style="text-align: left;">I managed to add three basic functionalities to this editor that I wanted. The first is the ability to move freelly through it&#8217;s space, without any scope restrictions. In the Solis editor when you create a new map you set it&#8217;s width and height and it remains static. It didn&#8217;t really bother me at first, but it&#8217;s something that every now and then reduced my design.</p>
<p style="text-align: left;">The second was the ability to zoom-in/zoom-out freely in each window without any restrictions. Using the mouse wheel you can easily do that. I still need to make the editor center on where the mouse is as it zooms though.</p>
<p style="text-align: left;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot2.png"><img class="size-medium  wp-image-170 aligncenter" title="editor_screenshot2" src="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot2-300x233.png" alt="" width="300" height="233" /></a></p>
<p style="text-align: left;">The third is the ability to easily scroll through the map. That&#8217;s something I did have in the Solis editor and wanted to have in this one too. Just press and hold the right mouse button and you can move around the map.</p>
<p style="text-align: center;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot3.png"><img class="size-medium wp-image-171 aligncenter" title="editor_screenshot3" src="http://versus-software.com/blog/wp-content/uploads/2010/08/editor_screenshot3-300x232.png" alt="" width="300" height="232" /></a></p>
<p style="text-align: left;">To add walls to the world just left click and move the mouse. Left click again and the wall is set. On the next release I hope to have some basic editing functionalities like selecting walls, editing and deleting them, copying and pasting.</p>
<h1 style="text-align: left;">Again,  this project is open to community feedback!</h1>
<h1 style="text-align: left;">Try it out,  what did you like and dislike?</p>
<p>Tell me what you  think!</h1>
<p style="text-align: left;">Until then!</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/third-editor-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading, re-reading and groking</title>
		<link>http://versus-software.com/blog/reading-re-reading-and-groking/</link>
		<comments>http://versus-software.com/blog/reading-re-reading-and-groking/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 15:08:07 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[book]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[michael abrash]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[quake]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[story]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=156</guid>
		<description><![CDATA[We&#8217;ll it took a while, but I managed to finally finish reading Michael Abrash&#8217;s Graphics Programming Black Book: In some ways I feel ashamed to say that I &#8216;read&#8217; it because it&#8217;s a behemoth of knowledge spanning over 1200 pages. Of course I learned a lot from it but it&#8217;s the sort of book I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ll it took a while, but I managed to finally finish reading<a href="http://www.amazon.com/Michael-Abrashs-Graphics-Programming-Special/dp/1576101746"> Michael Abrash&#8217;s Graphics Programming Black Book:</a></p>
<p style="text-align: center;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/51E2EDBTB9L._SL500_AA300_.jpg"><img class="size-full wp-image-157 aligncenter" title="51E2EDBTB9L._SL500_AA300_" src="http://versus-software.com/blog/wp-content/uploads/2010/08/51E2EDBTB9L._SL500_AA300_.jpg" alt="" width="300" height="300" /></a></p>
<p style="text-align: left;">In some ways I feel ashamed to say that I &#8216;read&#8217; it because it&#8217;s a behemoth of knowledge spanning over 1200 pages. Of course I learned a lot from it but it&#8217;s the sort of book I&#8217;ll read again and again and again until I can finally <a href="http://en.wikipedia.org/wiki/Grok">grok</a> it. It&#8217;s a collection of over 10 years of Abrash&#8217;s papers and I doubt one can absorve it in a matter of months.</p>
<p style="text-align: left;">You see to learn programming concepts in a self taught manner I think it&#8217;s crucial to not only read the code in the book, but also write it down, play around with it, to truly understand what is being taught in its finer details. With my current project I intend to do just that, since it&#8217;s a FPS and the last chapters on the book concern directly with Quakes development at id Software, where Abrash worked.</p>
<p style="text-align: left;">What&#8217;s more interesting is that the author doesn&#8217;t focus only in the development aspect of programming, but in the general mentality of it. Not as one solves a problem, but the mind that solves it. As you become better in development I think you ask yourself less &#8220;how to solve this problem&#8221; but more of &#8220;what is the best way to solve this problem&#8221;. Abrash shows us several ways to solve a problem in the book, be it linked lists, spatial visibility or making a faster<a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life"> game of life</a>, each one consistently faster than the other with either assembly optmizations, algorithm optmizations or rethinking the whole approach to the problem. The idea is to not expect that there is only one way to handle an issue. In his own words : &#8220;Assume nothing&#8221;.</p>
<p style="text-align: left;">The book is also quite pleasant to read, since the author narrates the development cycle more as a journal than a tech book. It&#8217;s quite interesting to read the last chapters where he focus on making a faster rendering back-to-front polygon rendering approach to Quake. Almost goes like this:</p>
<p style="text-align: left;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/photo-D-Day.jpg"><img class="alignnone size-medium wp-image-158" title="photo-D-Day" src="http://versus-software.com/blog/wp-content/uploads/2010/08/photo-D-Day-300x240.jpg" alt="" width="300" height="240" /></a></p>
<blockquote>
<p style="text-align: left;">March 14, 1941. We begin our approach to the BSP tree, were still having heavy losses on how to figure out a way to make the spatial visibility problem faster. The worlds we want with Quake  feature at least 5000 polygons and in the worse case scenario we redraw each pixel 5 times. It&#8217;s too slow, we must take a better approach.</p>
</blockquote>
<p style="text-align: left;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/y180017100820743.jpg"><img class="alignnone size-medium wp-image-159" title="y180017100820743" src="http://versus-software.com/blog/wp-content/uploads/2010/08/y180017100820743-300x225.jpg" alt="" width="300" height="225" /></a></p>
<blockquote>
<p style="text-align: left;">May 22, 1941. We sucessfully managed to create a<a href="http://www.gamers.org/dEngine/quake/papers/ddjpvs.html"> potentially visible set (pvs)</a> that managed to break into enemy lines. We will now proceed to use it to flank their defeneses.</p>
</blockquote>
<h3><span><span style="color: #000077;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/08/3187033_orig.jpg"><img class="alignnone size-medium wp-image-160" title="3187033_orig" src="http://versus-software.com/blog/wp-content/uploads/2010/08/3187033_orig-300x225.jpg" alt="" width="300" height="225" /></a></span></span></h3>
<blockquote><p>June 10, 1941. We have now conquered the enemy&#8217;s battlefield. I&#8217;ve reduced the inner loop of the rasterizer to 2.5 cycles per texel. We decided to use z-buffering for drawing the enemy meshes, since it&#8217;s faster and not that big of a problem as we expected. Victory is eminent.</p></blockquote>
<p>And so on. Overall the book can be divided into 3 parts:</p>
<ul>
<li>General assembly optimization techniques</li>
<li>3D rendering done via software</li>
<li>Common 3D engine development problems and solutions.</li>
</ul>
<p>I recommend it to anyone that&#8217;s interested in taking game development or programming in a seriously yet elegant manner. I learned a lot from it, and still intend to learn more.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/reading-re-reading-and-groking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second editor release</title>
		<link>http://versus-software.com/blog/second-editor-release/</link>
		<comments>http://versus-software.com/blog/second-editor-release/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 15:28:48 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[vKernel]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rebar]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[windows development]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=138</guid>
		<description><![CDATA[Well, heres the second release of the editor and details on how it&#8217;s going. Download here: Didn&#8217;t manage to get as much work done in the editor as I wanted to (kind of a busy week), but I did manage to put in some details that I wanted. The opengl windows now resize themselves as [...]]]></description>
			<content:encoded><![CDATA[<p>Well, heres the second release of the editor and details on how it&#8217;s going.</p>
<p style="text-align: center;"><a href="http://versus-software.com/blog/wp-content/uploads/2010/07/screenshot.png"><img class="size-medium wp-image-139 aligncenter" title="screenshot" src="http://versus-software.com/blog/wp-content/uploads/2010/07/screenshot-300x192.png" alt="" width="300" height="192" /></a>Download here: <a class="downloadlink" href="http://versus-software.com/blog/wp-content/plugins/download-monitor/download.php?id=2" title="Version0.2 downloaded 7 times" >vtool (7)</a></p>
<p style="text-align: left;">Didn&#8217;t manage to get as much work done in the editor as I wanted to (kind of a busy week), but I did manage to put in some details that I wanted. The opengl windows now resize themselves as the master window gets resized and I added an automatic resize button. It only works though when the number of windows is a perfect square: 1,4,9,16&#8230; Still trying to figure out how to handle the non square situations. I think i&#8217;ll do a drop down menu with several choices you can choose.</p>
<p style="text-align: left;">The top menu now is a rebar also. That means the user can position them as he wishes. I prefer that sort of design more than toolbars because users generally have their own work preferences.</p>
<p style="text-align: left;">My long term goal with this project is to have a very flexible editor where the user can edit in any way he feels comfortable with, and to achieve that it needs to be as customisable as possible. Ideally I see the user being able to have an environment with windows where he interacts with the &#8220;game world&#8221; in many ways. For example he can have one master window that sees the world on top where he can edit it, and two sub-windows where he can see on-sight how those changes are ocurring. If this system is robust enough he can change that to any way he wants.</p>
<p style="text-align: left;">I&#8217;m heading towards that sort of design because I think one of my flaws in designing both the <a href="http://versus-software.com/blog/solis/">Solis</a> and <a href="http://versus-software.com/blog/world-train-royale/">World Train Royale</a> editors is that they gave no artistic freedom for the user. I see artists messing around with Photoshop and they all have their preferences and designs they call their own, not Photoshop&#8217;s in itself.</p>
<p style="text-align: left;"><strong>By the way I still don&#8217;t know how to properly name this project. Anyone got any suggestions? Also I would like to get people&#8217;s feedback on the project. So if you were to use an FPS editor, what sort of features would you want to have in it?<br />
</strong></p>
<p style="text-align: left;">Anyway I guess that&#8217;s it for now. My next goal is making the editor more interesting, so I&#8217;ll be adding level building next. Until then!</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/second-editor-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slow Agile Development</title>
		<link>http://versus-software.com/blog/slow-agile-development/</link>
		<comments>http://versus-software.com/blog/slow-agile-development/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 22:15:09 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[comparissons]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rambling]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[conira]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[system design]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=120</guid>
		<description><![CDATA[While riding the subway today I saw a man my age holding a book titled &#8220;Agile Software Development, Principles, Patterns and Practices&#8220;. This reminded me of a few opinions I had about software enginnering. I talked on a previous post that it&#8217;s important to take into consideratoin the final product that&#8217;s going to be developed [...]]]></description>
			<content:encoded><![CDATA[<p>While riding the subway today I saw a man my age holding a book titled &#8220;<a href="http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1279574440&amp;sr=8-2">Agile Software Development, Principles, Patterns and Practices</a>&#8220;. This reminded me of a few opinions I had about software enginnering. I talked on a <a href="http://versus-software.com/blog/?p=41">previous</a> post that it&#8217;s important to take into consideratoin the final product that&#8217;s going to be developed in order to choose a proper software Engineering methodology.</p>
<p style="text-align: center;"><img class="size-medium wp-image-121 aligncenter" title="1208-f1-4" src="http://versus-software.com/blog/wp-content/uploads/2010/07/1208-f1-4-300x252.jpg" alt="" width="300" height="252" /></p>
<p>Today I&#8217;d like to keep talking about that but focusing more on the technological nature of that which is being developed. Here&#8217;s a short story to better explain why:</p>
<p>While I was working on <a href="http://versus-software.com/blog/?page_id=19">Conira</a>, early on I decided just for the hell of it that this game would be multithreaded. Given my previous experience developing the <a href="http://versus-software.com/blog/?page_id=16">Solis engine</a> I saw that you could dissect the game engine into three threads.</p>
<ol>
<li>One that renders all the objects in the game, be it sprites, particles or models. This thread uses the &#8216;get&#8217; methods each object had.</li>
<li>Another that updates all the objects in the game, their displacement, acceleration, hit detection, etc. This thread uses the &#8216;set&#8217;  and &#8216;get&#8217; methods each object had.</li>
<li>One thread that takes care of loading/unloading objects and handling the Operating System calls like windows and messages.</li>
</ol>
<p>Initially I thought this would be a good design. I elaborated on how the threads would communicate, tried to figure out and reduce potential deadlock /livelocks and set off to code!</p>
<p>It wasn&#8217;t but one day later that I had to redo the whole design.</p>
<p>You see there is a technical limitation when dealing with rendering systems, threads and the Win32 specification. MSDN clearly states that &#8220;the same thread that RENDERS the objects MUST be the same thread that CREATES the WINDOW and handles its OPERATING SYSTEM calls.&#8221; In other words, thread 1 and 2 had to be same. In the end it wasn&#8217;t a big alteration, meerely trivial given the design I had but it did bring me into re-thinking certain software engeneering practices people take for granted.</p>
<p>When I was in college I was basically told that &#8220;code development is a final product of a series of design decisions&#8221;. You figure out your system first, its classes, structures, layers and then the code you write is merely an extension of that. In other words, take the broad view of a project and as you develop it, handle the inner details and its intricancies as they come. But that type of methodology fails to work in development environments where those same inner details and intricancies are what actually defines the system as whole.</p>
<p>I think Agile Software advocates say the same thing but with different words. &#8220;Work on the code first, let the inner details of a system be delt as they come, so don&#8217;t worry about documentation, design, etc. Code, code and code!&#8221;. They also usually point cases where such methodologies worked. However they fail to point out the architecture of the system in which they developed. Most, if not all, of those success stories I heard were either web applications or with an interpreted language such as Java or C#.</p>
<p>Well it makes sense for those projects to work on those scenarios! They were built on top of languages where it is expected to delegate the inner details of a system to <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine">whomever </a>is <a href="http://www.apache.org/">handling </a>it. So all they have proven is that those agile methods work on those environments, which is ok, but not that agile methods work as a whole, which is what they usually advocate. Honestly, I&#8217;m yet to see an long run story of a sucessfull low level driver or high optmized high-level assembly language project using Agile methodologies.</p>
<p>Don&#8217;t get me wrong, I&#8217;m not saying that Agile methods suck or that they don&#8217;t work. They do and can work quite well but one must understand the context in which they work, or else failing into the trap of beliving that they work in any environment.</p>
<p>If one doesn&#8217;t take into consideration the end product as well as it&#8217;s internal architecture while taking enginnering decisions, he&#8217;ll end up eventually just making bad or lucky engineering.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/slow-agile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Project</title>
		<link>http://versus-software.com/blog/new-project/</link>
		<comments>http://versus-software.com/blog/new-project/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 16:04:55 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[vKernel]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[rambling]]></category>
		<category><![CDATA[vkernel]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=110</guid>
		<description><![CDATA[I have thus decided to start a new project. I&#8217;m aiming to do something 3D again, since my last project, Train Royale, was a 2D casual game. I&#8217;m gearing towards a 3D shooter for now, so lets see how it goes. However I do intend to make things different this time. You see all my [...]]]></description>
			<content:encoded><![CDATA[<p>I have thus decided to start a new project. I&#8217;m aiming to do something 3D again, since my last project, <a href="http://versus-software.com/blog/?page_id=10">Train Royale</a>, was a 2D casual game. I&#8217;m gearing towards a 3D shooter for now, so lets see how it goes.</p>
<p>However I do intend to make things different this time. You see all my other projects I would only talk about them once they were done. This time though, I intend to talk openly about it through out it&#8217;s development.</p>
<p>It&#8217;s not that I like to keep things secret. It&#8217;s that I always worried about becoming something I usually criticized: talking more about a game than developing it, and in the end have tons of rambling about a never finished project.</p>
<p>But now I think I can go beyond that point since I at least proved to myself I can get a project done, regardless of how much I talk about it or not. So my intention with this new project is to do at least a weekly post about it, displaying how it&#8217;s current development is going. And it doesn&#8217;t matter how simple or stupid the project is going thus far, the point is talking about it. Don&#8217;t really know why, I guess I&#8217;m trying to make a social experiment out of this thing,  just to see what happens in the end.</p>
<p>Anyway here is a picture of how the &#8220;editor&#8221; is going.</p>
<p><a href="http://versus-software.com/blog/wp-content/uploads/2010/07/editor.png"><img class="alignnone size-medium wp-image-112" title="editor" src="http://versus-software.com/blog/wp-content/uploads/2010/07/editor-300x224.png" alt="" width="300" height="224" /></a></p>
<p>To download:  <a class="downloadlink" href="http://versus-software.com/blog/wp-content/plugins/download-monitor/download.php?id=1" title="Version0.1 downloaded 9 times" >vtool (9)</a></p>
<p>Basically I intend to do something where you can have multiple windows showing multipler things about whatever you&#8217;re editing. I&#8217;ll start focusing on that once I get the gist of the toolbars and rebars going.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/new-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fan mail &amp; Community development</title>
		<link>http://versus-software.com/blog/fan-mail-community-development/</link>
		<comments>http://versus-software.com/blog/fan-mail-community-development/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 22:08:27 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[game development]]></category>
		<category><![CDATA[rambling]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[fan mail]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[solis]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=99</guid>
		<description><![CDATA[Few days ago I got fan mail from a game I developed, Solis. The e-mail I got basically complemented the game, saying he liked the style but thought it had too much text hahah. Always good to get feedback from my projects. Solis is sort of a special project to me. It was the first [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Few days ago I got fan mail from a game I developed, <a href="http://versus-software.com/blog/?page_id=16">Solis</a>.</p>
<p style="text-align: left;"><a href="http://versus-software.com/blog/?page_id=16"><img class="alignnone size-medium wp-image-104" title="screenshot" src="http://versus-software.com/blog/wp-content/uploads/2010/07/screenshot1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: left;">The e-mail I got basically complemented the game, saying he liked the style but thought it had too much text hahah. Always good to get feedback from my projects.</p>
<p style="text-align: left;">Solis is sort of a special project to me. It was the first BIG project that I developed and every now and then I check how many downloads it managed to get (5000+ and counting). It`s not a big project and it ain`t no RPG Maker killer but it was a fun game to make.</p>
<p style="text-align: left;">With this game I learned 3 very important things:</p>
<ol>
<li>No matter how close you are to finishing a project you will only, and only after you finish it, be able to learn and truly take a critical perspective of it. This is the sort of thing you can&#8217;t really explain why. Basically you know why when it happens to you and after that you understand why it can&#8217;t really be explained.</li>
<li>Different games take different amount of resources. Quite obvious, but it&#8217;s the sort of issue that gets commonly overlooked. Solis was a 2D rpg game, and with it came hundreds of sprites, tiles, images, maps, sounds&#8230; The list just kept getting bigger and bigger and I was soon to find that I needed an <a href="http://raqsonu.deviantart.com/">artist</a>.</li>
<li>Know your user base before doing the project. During halfway through developing the Solis tool set, I thought I had actually found a development niche. You see, people make RPG maker maps and images all the time, write tutorials about it, etc. But most of them use pirated versions of it. I thought an <a href="http://www.sourceforge.net/projects/solis">open source</a> RPG maker would fill that need and actually be able to create a community out of it.<br />
Boy was I wrong heh. The RPG maker community is mostly of artists and script writers and since Solis was written in C++ that didn&#8217;t really appeal to them. Maybe if I kept investing into it I could have pulled that one off. But after such a long development process, I felt I wanted to do something <a href="http://versus-software.com/blog/?page_id=19">else</a>.</li>
</ol>
<p>And I guess that`s it. There was one interesting side effect of developing this game though&#8230; and hasn&#8217;t faded yet:</p>
<blockquote><p>I never managed to play a JRPG again. Ever. I finished Solis and could not stand looking at JRPG&#8230;. Pretty weird heh.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/fan-mail-community-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shame</title>
		<link>http://versus-software.com/blog/shame/</link>
		<comments>http://versus-software.com/blog/shame/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 01:09:52 +0000</pubDate>
		<dc:creator>J.Raza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[rambling]]></category>

		<guid isPermaLink="false">http://versus-software.com/blog/?p=74</guid>
		<description><![CDATA[Because my father was in the navy I lived all over the world. I grew up meeting hundreds of different people, different cultures, different habits. As a way to blend in, meet people and generally make friends in these conditions, it was video games that allowed me to have a common background with people. I [...]]]></description>
			<content:encoded><![CDATA[<p>Because my father was in the navy I lived all over the world. I grew up meeting hundreds of different people, different cultures, different habits. As a way to blend in, meet people and generally make friends in these conditions, it was video games that allowed me to have a common background with people.</p>
<p>I would go to a new school and usually the topic of games would come up. We talked, played it for hours and generally had a good time. Games have been my companions since early on and they served me as a way to become accustomed to the new place I found myself at.</p>
<p>Now, usually one thing that struck me is that people, no matter where I go, would generally have the same game preferences and the same emotions and experiences as they played the same games. I did to. Every gamer remembers the first time they played a Mario game, beat a Final Fantasy, saw Ryu&#8217;s haduken and so on. These are all common experiences we have and shared.</p>
<p>However there are a few that pretty much everyone I know has had except me. These are my video game moments of shame. So without further ado, here is the list :</p>
<ul>
<li>I never finished Final Fantasy 6 nor Chronno Trigger. Only got half way in FF6 and to the final lavos battle in CT.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-75" title="chronno trigger" src="http://versus-software.com/blog/wp-content/uploads/2010/07/images.jpeg" alt="" width="133" height="90" /></p>
<li>Never finished Street Fighter without using a continue or resorting to using a very easy level.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-76" title="street fighter" src="http://versus-software.com/blog/wp-content/uploads/2010/07/street-fighter.jpeg" alt="" width="111" height="78" /></p>
<li>I never won a Stracraft  multiplayer match.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-77" title="starcraft" src="http://versus-software.com/blog/wp-content/uploads/2010/07/starcraft.jpeg" alt="" width="137" height="103" /></p>
<li style="text-align: left;">I cannot for the life of me beat a Heroes of Might and Magic 3 map. I always get my ass kicked.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-78" title="heroes" src="http://versus-software.com/blog/wp-content/uploads/2010/07/heroes.jpeg" alt="" width="102" height="130" /></p>
<li>Never killed a person in Counter Strike with an AWP. Ok, I hated using the weapon and everyone that used it, but still.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-79" title="counter" src="http://versus-software.com/blog/wp-content/uploads/2010/07/counter.jpeg" alt="" width="150" height="113" /></p>
<li>Never beat a Megaman game without save states.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-80" title="megaman" src="http://versus-software.com/blog/wp-content/uploads/2010/07/megaman.jpeg" alt="" width="114" height="150" /></p>
<li>I love all the point &amp; click adventure games by Lucas Arts but I am still yet to play Grim Fandango.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-81" title="grim" src="http://versus-software.com/blog/wp-content/uploads/2010/07/grim.jpeg" alt="" width="119" height="150" /></p>
<li>It took me almost a decade, with the same save state on the NES cartridge, to beat Dragon Warrior. I played that game to death when I was 11, maxed out my character but got stuck in the story. When I was 21 I dusted of the cartridge, got a FAQ and finished the fucker.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-82" title="dragonwarrior" src="http://versus-software.com/blog/wp-content/uploads/2010/07/dragonwarrior.jpeg" alt="" width="97" height="133" /></p>
<li>I actually enjoyed playing Star Wars Shadows of the Empire.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-83" title="empire" src="http://versus-software.com/blog/wp-content/uploads/2010/07/empire.jpeg" alt="" width="137" height="95" /></p>
<li>I own a original copy of Daikatana. Didn&#8217;t buy it but I still managed to get  copy, for free at least.</li>
<p style="text-align: center;"><img class="alignnone size-full wp-image-84" title="daikatana" src="http://versus-software.com/blog/wp-content/uploads/2010/07/daikatana.jpeg" alt="" width="103" height="137" /></p>
</ul>
<p>I guess that&#8217;s it for now. Quite shame full. Triple face palm.</p>
]]></content:encoded>
			<wfw:commentRss>http://versus-software.com/blog/shame/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: versus-software.com @ 2010-09-05 21:57:41 -->