<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>The Chosen</title>
	<link>http://rts.freshprogramming.com/wp</link>
	<description>Chapter 1: Those Forgotten</description>
	<pubDate>Tue, 03 Feb 2009 20:24:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Some updates</title>
		<link>http://rts.freshprogramming.com/wp/?p=58</link>
		<comments>http://rts.freshprogramming.com/wp/?p=58#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:21:18 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[Scrolling]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=58</guid>
		<description><![CDATA[Well, the bad news is, this project is not currently my top priority so it may be a while until I get back to working on it full time. The good news is, this project still has a special place in my heart and I still spend quite a bit of time thinking about it. [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the bad news is, this project is not currently my top priority so it may be a while until I get back to working on it full time. The good news is, this project still has a special place in my heart and I still spend quite a bit of time thinking about it. Even though this is not my top priority, I still have found some time to do some minor coding on some of the smaller features.</p>
<p>I have added unit order queuing and some simple code to show those orders so now the units can be moved through multiple waypoints effortlessly. I&#8217;ve also added the distinction to separate your units from enemy units, and adjust the cursor icon as necessary. This also includes code to prevent you from moving or mass selecting enemy units. I haven&#8217;t incorporated actual teams yet, which will allow for allied units that are not yours to control, but not enemies to attack, but that will be the next addition. I&#8217;ve added some minimal code to link the GUI to the action by showing the currently selected units in the bottom left of the screen, giving a count for each unit type and listing every unit. I&#8217;ve added code to allow the game to be played at any resolution, and even full screen, but for now the game will remain at a constant windowed size. I’ve added a splash screen. Recently, I&#8217;ve added the text display part of the GUI that will inform you of unit completion or base attacks. This has all been added and tested but still needs a little tweaking and I will probably incorporate much of it into the current scripting system, but that&#8217;s a task for another day.</p>
<p>All in all, I am bummed out that I can t spend much more time on this, but it does give me something to look foreword to when I finish the other projects I&#8217;m currently vested in.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=58</wfw:commentRss>
		</item>
		<item>
		<title>The new server</title>
		<link>http://rts.freshprogramming.com/wp/?p=57</link>
		<comments>http://rts.freshprogramming.com/wp/?p=57#comments</comments>
		<pubDate>Sun, 24 Aug 2008 09:34:59 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Delays]]></category>

		<category><![CDATA[Designing]]></category>

		<category><![CDATA[JDBC]]></category>

		<category><![CDATA[Networking]]></category>

		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=57</guid>
		<description><![CDATA[I&#8217;ve had a lot going on lately and haven’t had much time to sit down and document my adventures, let alone sit down and actually write code for the RTS. Hopefully this will catch you up on what I have been working on for the past 2+ months. Progress on the RTS had slowed down [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a lot going on lately and haven’t had much time to sit down and document my adventures, let alone sit down and actually write code for the RTS. Hopefully this will catch you up on what I have been working on for the past 2+ months. Progress on the RTS had slowed down mainly because I still had some legitimate doubts about the server-side code I was going to have to write to handle the enormous amount of data. I was sure that I could get something working, but instead of storing data in cryptic text files like I have done before, I wanted to try something entirely new. I had been looking into Java database clients (JDBCs) for a while but never had the real need to get one working, so this seemed like the perfect time to push my limits once again. In addition, the actual performance of my previous servers was severely limited because of the code structure I used, and it needs to be drastically re-designed.</p>
<p>Knowing that a major overhaul was gonna be necessary on my server&#8217;s design, I figured that now would be as good a time as any to design a new server structure that incorporated a complete database back end, as well as data protection and more sophisticated client management interface. Not entirely sure what would be necessary in the RTS database, I made the tough decision to put the RTS engine on hold while I dedicated my designing, coding and testing a completely new sever structure.</p>
<p>I started by once again trying to get a JDBC client to run, this time with the HSQLDB package. My past attempts at getting the JDBC working all failed miserably so this time I was absolutely determined to get it working. I sat down expecting a big fight to get it up and running and much to my surprise, this time it just worked. With very little fight at all I got a small test app setup and running just like I would like. After a very brief celebration, I began writing a new server.</p>
<p>While it would be nice to just be happy about the new server and start implementing it into the RTS, I would rather see the design tested in some working environment to ensure that this structure will, in fact, do what I need it to do. I eventually decided that I would use pieces of my old chess program to create a new stratego program to use the new server. The concept is an entire tabbed interface where users login, chat in the lobby, join as many games as they want, and play stratego with other players over the internet, with all the traffic running through my server of course. Most of the networking and database code is complete and working but there is still a lot that need to be fixed and/or improved in the client side code. As of right now, it is entirely playable but still has a few code bugs that need to get worked out, and some design issues that need to get fully implemented before I release it beta group. More news will be posted on <a href="http://Freshprogramming.com">FreshProgramming.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=57</wfw:commentRss>
		</item>
		<item>
		<title>Moving units</title>
		<link>http://rts.freshprogramming.com/wp/?p=56</link>
		<comments>http://rts.freshprogramming.com/wp/?p=56#comments</comments>
		<pubDate>Mon, 12 May 2008 05:32:29 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Videos]]></category>

		<category><![CDATA[Graphics Engine]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Scrolling]]></category>

		<category><![CDATA[Units]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=56</guid>
		<description><![CDATA[


The whole reason I had to design and implement a new mouse engine was because the addition of units before was seriously conflicting with the old mouse engine. With this new mouse engine working perfectly in the RTS I was then free to change my focus back to the units. Before this big haste, I [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/i2t7Mo_OkSQ&#038;hl=en&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/i2t7Mo_OkSQ&#038;hl=en&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p class="MsoNormal">The whole reason I had to design and implement a new mouse engine was because the addition of units before was seriously conflicting with the old mouse engine. With this new mouse engine working perfectly in the RTS I was then free to change my focus back to the units. Before this big haste, I had units, and they were clickable, and even movable. Of course all of this fancy movement was a direct location change and not a fancy, slow, speed based movement, and all of the selection and move orders only worked at the origin view location. Basically, interacting with units didn&#8217;t work after scrolling and the movement was actually more like a teleport. However, all of that has been changed now. <a href="http://rts.freshprogramming.com/wp/?p=56#more-56" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=56</wfw:commentRss>
		</item>
		<item>
		<title>Bugs in the new mouse engine</title>
		<link>http://rts.freshprogramming.com/wp/?p=51</link>
		<comments>http://rts.freshprogramming.com/wp/?p=51#comments</comments>
		<pubDate>Mon, 05 May 2008 04:05:39 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[Pause]]></category>

		<category><![CDATA[Scrolling]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=51</guid>
		<description><![CDATA[While the new mouse engine did fix countless obvious bugs and prevent lots of future headaches, that’s not to say that it didn’t come with a few bugs of its own. To start, because the new system was repositioning the now invisible mouse cursor to the center of the screen, it had some issues that [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">While the new mouse engine did fix countless obvious bugs and prevent lots of future headaches, that’s not to say that it didn’t come with a few bugs of its own. To start, because the new system was repositioning the now invisible mouse cursor to the center of the screen, it had some issues that arose whenever I would try to move the window from its default loading location. I also have to convert all of the old mouse action code to flow through the new mouse system. In addition, because the new mouse engine locks the cursor inside the window, i added a procedure to unlock the cursor when pause to allow the user to exit the exit or perform other tasks when necessary.I also fixed a bug that popped up that was throwing the scroll engine into overdrive ever since I started painting the cursors with the graphics engine. After finishing all of that, and finalizing the new mouse engine I made one final change and fixed some of the liking for use hovering and mouse cursor sensors to show off some of the new cursors. At this point the new mouse engine and taken the full load and has completely replaced the stock old one, which leaves me with no other choice but to move on to bigger and better, and cooler tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=51</wfw:commentRss>
		</item>
		<item>
		<title>New mouse engine</title>
		<link>http://rts.freshprogramming.com/wp/?p=50</link>
		<comments>http://rts.freshprogramming.com/wp/?p=50#comments</comments>
		<pubDate>Sat, 03 May 2008 05:28:35 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[Delays]]></category>

		<category><![CDATA[Graphics Engine]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Programming Problems]]></category>

		<category><![CDATA[Scrolling]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=50</guid>
		<description><![CDATA[After returning to the RTS again, I decided that I would no longer live in fear of the major unit issues that I had run into before. When I last worked on the RTS I discovered that because I was using Java&#8217;s swing classes just for their mouse listeners, the class was running much more [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">After returning to the RTS again, I decided that I would no longer live in fear of the major unit issues that I had run into before. When I last worked on the RTS I discovered that because I was using Java&#8217;s <em>swing</em> classes just for their mouse listeners, the class was running much more code then was necessary for my needs. For example, every time I would change the cursor, every <em>swing</em> child would automatically repaint, which was totally unnecessary because I am maintaining my own graphics engine. To correct this, and numerous other problems that were a result of using the <em>swing</em> classes, I changed the type of my base game object to no longer extend <em>swing</em>&#8217;s JComponent. I also went ahead and stripped out the old mouse engine which let windows control the mouse, and replaced it with my own. My new custom mouse engine allows me to much more control over what the mouse can, and cannot do. By handing all mouse movement from within the Java code, I can easily, and smoothly, lock the mouse inside the window making scrolling and other complex interactions much simpler.</p>
<p class="MsoNormal">With the new mouse engine I have added modifiers for numerous things that I could not have controlled before such as mouse sensitivity and also allows me to handle all mouse actions a new all in one procedure. Because the new mouse engine is running from within the Java I can directly what happens when the mouse is pressed and no longer have to worry about mouse listeners or which object is on focusable or anything else. With this great progress I hope do some more work with the units soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=50</wfw:commentRss>
		</item>
		<item>
		<title>New cursors</title>
		<link>http://rts.freshprogramming.com/wp/?p=49</link>
		<comments>http://rts.freshprogramming.com/wp/?p=49#comments</comments>
		<pubDate>Tue, 08 Apr 2008 23:40:00 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[Graphics Engine]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=49</guid>
		<description><![CDATA[After returning to work on the RTS I decided to start by fixing some the problems that were on my mind. I knew the major painting problems needed to be fixed soon, but I decided to first start by working on new cursors, and a completely new mouse management system. In previous versions, to achieve [...]]]></description>
			<content:encoded><![CDATA[<p>After returning to work on the RTS I decided to start by fixing some the problems that were on my mind. I knew the major painting problems needed to be fixed soon, but I decided to first start by working on new cursors, and a completely new mouse management system. In previous versions, to achieve cool cursors I simply just changed the current windows cursor icon to one of my custom cursors. The new system I have put in place is completely new and different. In addition, to solve the issue of the cursor leaving the screen when I didn&#8217;t want it to, I decided I would lock the cursor in the center of my application, and let my graphics engine render the cursor. With the windows cursor locked in the center of the application, i simply measuring the distance traveled and on each move and adjusting the rendered cursor location accordingly. In addition, I replaced the windows cursor with a transparent image, so the windows cursor is completely unnoticeable and the user never even imagines that the change has been made.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=49</wfw:commentRss>
		</item>
		<item>
		<title>Fresh Wars</title>
		<link>http://rts.freshprogramming.com/wp/?p=48</link>
		<comments>http://rts.freshprogramming.com/wp/?p=48#comments</comments>
		<pubDate>Sat, 29 Mar 2008 01:46:47 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 4: Alpha Testing]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=48</guid>
		<description><![CDATA[When I came across the recent problems in my RTS, I knew they would delay work on the project as a whole, but I underestimated their full mental effect on the developers. My designer thought I should take this chance to further explore the complexity of how a game server will work. Even after re-writing [...]]]></description>
			<content:encoded><![CDATA[<p>When I came across the recent problems in my RTS, I knew they would delay work on the project as a whole, but I underestimated their full mental effect on the developers. My designer thought I should take this chance to further explore the complexity of how a game server will work. Even after re-writing almost my entire chat program to use dynamic socket connections, my designer still doubted the possibility of getting this whole project playable online. As he requested, I put the RTS on hold and shifted my attention to a new project, a small 2D TDS (Top Down Shooter) designed for 8+ players at one time across the internet.</p>
<p><a href="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/03/development-01.jpg" title="Fresh Wars Demo 01"><img src="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/03/development-01.jpg" alt="Fresh Wars Demo 01" /></a></p>
<p> <a href="http://rts.freshprogramming.com/wp/?p=48#more-48" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=48</wfw:commentRss>
		</item>
		<item>
		<title>Slight problem</title>
		<link>http://rts.freshprogramming.com/wp/?p=42</link>
		<comments>http://rts.freshprogramming.com/wp/?p=42#comments</comments>
		<pubDate>Tue, 11 Mar 2008 01:41:42 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 4: Alpha Testing]]></category>

		<category><![CDATA[Delays]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Optimization]]></category>

		<category><![CDATA[Programming Problems]]></category>

		<category><![CDATA[Scrolling]]></category>

		<category><![CDATA[Units]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=42</guid>
		<description><![CDATA[After adding Unit to the interface it became very obvious that something was wrong with the way the game objects network with game engine and all of the mouse and keyboard actions. When working to  get the GUI interface to work, I struggled to find the correct setup that allowed mouse actions to pass [...]]]></description>
			<content:encoded><![CDATA[<p>After adding Unit to the interface it became very obvious that something was wrong with the way the game objects network with game engine and all of the mouse and keyboard actions. When working to  get the GUI interface to work, I struggled to find the correct setup that allowed mouse actions to pass into the frame but get caught before hitting the actual game engine. After finding a working scenario, I worked up a system to properly handle the actions caught by the GUI. Unfortunately, the current setup will not work at all with what I need to do with clickable elements that exist inside the game engine. Currently the units, which are extensions of the base game object, which is an extension of awt.Component, are attempting to maintain themselves in a variety of ways that are all causing issues with my current setup. For example, the source behind the moving lag is actually the result of the unit trying to repaint it&#8217;s self after being moved, which clashes with the existing graphics engine. In addition, because the scroll engine doesn&#8217;t actually move every element when scrolling the units move but the locations to click on them do not. Anyways, my first instinct was to create my own very stripped version of the Component, which would involve me writing all the back end code to handle mouse, and key actions. After some more thought I decided that I would first try creating a complete catch all object that would catch all the actions and just forward them to the main engine to be handed to by my code. Both of these solutions would remove the Component from the issue and leave me to handle all mouse actions, sending them to the appropriate units. On the positive side, once I optimize the entire engine I should much more control over which elements get tested for mouse actions, painting, and other general searches.</p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=42</wfw:commentRss>
		</item>
		<item>
		<title>Hey, those are units&#8230;</title>
		<link>http://rts.freshprogramming.com/wp/?p=41</link>
		<comments>http://rts.freshprogramming.com/wp/?p=41#comments</comments>
		<pubDate>Wed, 05 Mar 2008 07:58:47 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Screenshots]]></category>

		<category><![CDATA[A.I.]]></category>

		<category><![CDATA[Collision Detection]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[Graphics Engine]]></category>

		<category><![CDATA[Pathfinding]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[Scrolling]]></category>

		<category><![CDATA[Units]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=41</guid>
		<description><![CDATA[
After months of coding and design, the game is finally taking shape as I can now handle units on the screen. I put several finishing touches on the selection system and the scroll system to prep the RTS for another build. Also I have recently added numerous new script variables to a root script file [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/03/demo-09.jpg" title="Demo 009"><img src="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/03/demo-09.jpg" alt="Demo 009" /></a></p>
<p>After months of coding and design, the game is finally taking shape as I can now handle units on the screen. I put several finishing touches on the selection system and the scroll system to prep the RTS for another build. Also I have recently added numerous new script variables to a root script file that allows my other developers and I to very easily tweak the code before it runs. I added script variables for screen size, tile size, an array of GUI/mouse interaction variables, nearly all variables involved in the scroll system,  and even variables to set preferred frame rates in the graphics engine. I am still amazed at just how helpful these script variables can be, and how they make the designing of the game much more simple and enjoyable.</p>
<p> <a href="http://rts.freshprogramming.com/wp/?p=41#more-41" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=41</wfw:commentRss>
		</item>
		<item>
		<title>Now thats a GUI</title>
		<link>http://rts.freshprogramming.com/wp/?p=39</link>
		<comments>http://rts.freshprogramming.com/wp/?p=39#comments</comments>
		<pubDate>Tue, 26 Feb 2008 07:25:27 +0000</pubDate>
		<dc:creator>Dougie Fresh</dc:creator>
		
		<category><![CDATA[Phase 3: Development]]></category>

		<category><![CDATA[Screenshots]]></category>

		<category><![CDATA[Buildings]]></category>

		<category><![CDATA[Cursors]]></category>

		<category><![CDATA[GUI]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[Units]]></category>

		<guid isPermaLink="false">http://rts.freshprogramming.com/wp/?p=39</guid>
		<description><![CDATA[
Finaly I&#8217;m done with the scripting portion of the GUI. Though I&#8217;m sure that I will need to modify a thing of two as I start witting other code to interact with the GUI, but still it feels like a big accomplishment. While finishing touches on my script code for the GUI, I was also [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/02/demo-08.jpg" title="Demo 008"><img src="http://rts.freshprogramming.com/wp/wp-content/uploads/2008/02/demo-08.jpg" alt="Demo 008" /></a></p>
<p>Finaly I&#8217;m done with the scripting portion of the GUI. Though I&#8217;m sure that I will need to modify a thing of two as I start witting other code to interact with the GUI, but still it feels like a big accomplishment. While finishing touches on my script code for the GUI, I was also working on the cursor animation engine which is also up and running beautifully. Sadly, because the cursors are automatically removed from the screen shot, my cool animated cursors don&#8217;t appear in the picture, but I assure you they are very cool. In almost no time at all, after minimal explanation, I was able to hand off the script files to my game designer and he was able to construct his own version of the GUI as seen above. He was also able to modify the new cursors file, and using a constant code base, work with multiple new cursors and see how they looked in the real engine. Before I knew it, he had completely redesigned by default test GUI (bellow) into something that looks much yet functions exactly the same.</p>
<p> <a href="http://rts.freshprogramming.com/wp/?p=39#more-39" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rts.freshprogramming.com/wp/?feed=rss2&amp;p=39</wfw:commentRss>
		</item>
	</channel>
</rss>
