<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7175706</id><updated>2011-12-14T13:54:55.785+10:00</updated><title type='text'>Doolwind's Game Coding Journal</title><subtitle type='html'>My blog about games, directx, programming and stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7175706.post-113886034623346544</id><published>2006-02-02T16:04:00.000+10:00</published><updated>2006-02-02T16:05:46.243+10:00</updated><title type='text'>Moved Blog</title><content type='html'>Just a quick note to say that I've moved my blog to my website.  It can now be found at &lt;a href="http://www.doolwind.com/blog"&gt;www.doolwind.com/blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113886034623346544?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113886034623346544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113886034623346544' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113886034623346544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113886034623346544'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/02/moved-blog.html' title='Moved Blog'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113851293125731264</id><published>2006-01-29T15:10:00.000+10:00</published><updated>2006-01-29T15:42:24.060+10:00</updated><title type='text'>Advice about my phalanx, thanks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/phalanx.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/200/phalanx.jpg" alt="" border="0" /&gt;&lt;/a&gt;I’m looking for everyone’s opinion about the control the player should have over the phalanx system on their capital ship.&lt;span style=""&gt;  &lt;/span&gt;I’ve implemented a simple system where the player chooses the direction and width to fire their phalanx defence in order to shoot down incoming missiles.&lt;span style=""&gt;  &lt;/span&gt;The skill comes from figuring out where the enemy is going to attack your ship and therefore where you should fire your phalanx system to shoot down as many incoming missiles as possible.&lt;span style=""&gt;  &lt;/span&gt;The phalanx system is basically a group of large cannons which fire large projectiles towards incoming missile in the hopes of hitting and destroying them.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;While this initial system works well, I’m unsure of the control the player should have when actually firing the phalanx batteries.&lt;span style=""&gt;  &lt;/span&gt;The choices I can thin of are:&lt;span style=""&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;The phalanx fires continuously wherever the player points it. This is my least favourite option as it doesn’t add any depth to the game and isn’t what would really happen.&lt;/li&gt;   &lt;li&gt;The computer automatically decides when a missile is close and automatically starts firing. This option is fairly realistic and is the option I’m thinking is the best so far. The problem being it doesn’t add a gameplay choice for the player.&lt;/li&gt;   &lt;li&gt;The player clicks when they want to fire the phalanx system and when to turn it off. This adds a choice for the player however I don’t think it’s an interesting choice. Every time a group of missiles is close the player would always turn the phalanx on and then turn it off a little later. If I go for this option then I must make the choice an interesting one. For example, I could add a maximum time the phalanx can fire for before reloading. I don’t want players to be rewarded for just timing the firing of the phalanx to the nearest second and then turning off as soon as possible as this isn’t really interesting and would be better done by a computer.&lt;/li&gt; &lt;/ol&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;So which of these options would you prefer, and can you think of any other options I can add to the list.&lt;span style=""&gt;  &lt;/span&gt;As I said, I’m leaning towards option two as I can’t see a way of making this an interesting choice for the player.&lt;span style=""&gt;  &lt;/span&gt;Please post any ideas as comments to this post or email me at &lt;a href="mailto:alistair@doolwind.com"&gt;alistair@doolwind.com&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Below is a picture of the phalanx firing from the ship. I don't have the phalanx batteries on my model yet so I'm just firing from random positions on the ship.&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/cicphalanx.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/cicphalanx.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113851293125731264?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113851293125731264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113851293125731264' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113851293125731264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113851293125731264'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/advice-about-my-phalanx-thanks.html' title='Advice about my phalanx, thanks'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113801898386176257</id><published>2006-01-23T22:19:00.000+10:00</published><updated>2006-01-23T22:23:03.870+10:00</updated><title type='text'>Powered by Aphelion</title><content type='html'>Just a quick update.  I've just finished the auto path generation (version 1.0) and it's working well.  You can now choose where on the enemy ship to target and whether to fire directly or indirectly towards the target.  The former means the missile will be travelling as fast as possible and is harder to shoot down while the latter can confuse the enemy as to where your missile is heading.&lt;br /&gt;&lt;br /&gt;Also a quick note that I'm now calling the engine CIC is running on, the "Aphelion Engine".&lt;br /&gt;&lt;br /&gt;The video can be found &lt;a href="http://www.doolwind.com/cic/vids/Auto%20Path.wmv"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113801898386176257?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113801898386176257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113801898386176257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113801898386176257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113801898386176257'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/powered-by-aphelion.html' title='Powered by Aphelion'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113784750332118696</id><published>2006-01-21T22:44:00.000+10:00</published><updated>2006-01-21T23:08:10.303+10:00</updated><title type='text'>How to keep your programmers happy</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;I’ve had a few programming jobs in my time and at least once in each of them I’ve had a period where I’ve been unhappy. I wondered if this was simply because I get bored easily or that I complain too much, however after talking to my colleagues in all of my jobs I found most people around me felt the same way. Now, I’m of the opinion that a happy coder is a hard working coder as I know when I’m happy and enjoying my work I’ll be working at peak capacity and often will work an extra hour or two in the day. Obviously different projects have differing levels of interest to each of the programmers on the team, but I’ve compiled a list of points that any good manager needs to take into account when dealing with their programmers.&lt;/p&gt;   &lt;ol start="1" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Tell us when we’re right      and wrong&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;A few years ago I was working on a project where I was given tasks to perform that ranged from a week to a couple of months in length. At the end of each task I’d show my manager the new features; he’d look them over and then give me my next task to go on with. He never commented whether he liked or disliked what I had done. Occasionally if the feature was running over he’d come over and ask why I hadn’t finished yet, I’d explain and he’d simply accept it and ask me to work a little harder. I was ‘coding blind’ and had to just keep pumping out features as if we I was production line. Money goes in the front, I sit there working away, and software comes out the other end. &lt;/p&gt;   &lt;p class="MsoNormal" style=""&gt;There needs to be some way of telling your programmers when they’re right and when they’re wrong. If someone does a particularly good job, tell them, even let the whole team know in a simple email that the latest feature is exactly what you were looking for. On the same token, if someone is slacking off and does a poor job with something let them, constructively, know that there were particular parts you didn’t like. If someone is continually running over time on tasks then sit them down and let them know that you’d like them to work a little faster if they could and see why it’s taking longer than the scheduled time to complete their tasks.&lt;/p&gt;   &lt;p class="MsoNormal" style=""&gt;Some managers have a system such as this in place, however most of them will tend to concentrate on the negative feedback. Far too many managers will happily keep their programmers back late if they’ve made mistakes or are behind schedule, but will simply dish out new tasks if they finish early. Make sure the split between giving positive and negative feedback is as even as possible and if you find you're always dishing out negative comments then maybe it’s time to look whether there are problems within the team.&lt;/p&gt;   &lt;ol start="2" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Let us decide on the      specific lengths of milestones&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;In nearly every project I’ve been on scheduling has been this secret activity that management and the leads carry out while we’re not around. All of a sudden this magical schedule is produced and each of the programmers warily open up project or excel to see what they’ve been given and how long they’ve got to do it. Grabbing arbitrary values out of the air and guessing how long a task will take isn’t helping anyone, and is a sure way to annoy your programmers. The best option is to figure out a ballpark figure, put it in the schedule then sit down with each of the programmers and talk to them about how long they think they will take on that particular task. Whatever your means of deciding, make sure that the programmer working on the task is the one who gets the final say in what value goes down in stone on the schedule. They will feel more responsibility for the task and it will be far more accurate estimation.&lt;/p&gt;   &lt;ol start="3" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Give us faster computers&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;This is one of the most expensive of the ten points, but it’s also one of the most beneficial ones. There’s nothing more frustrating than sitting there waiting for my computer to do something simply because there isn’t enough RAM in it. If you’re working on a game then give your programmers the best video cards you can afford. It will not only show that your company is doing well, it’ll also make an early un-optimized debug version of the game playable so your programmers can start getting a feel for the game as early as possible. When it comes to CPU and RAM upgrades you also get the added advantage of build times being substantially faster which means your programmers spend more time coding and less waiting for it to build.&lt;/p&gt;   &lt;ol start="4" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Don’t get us to do QA&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;Quality Assurance is an important part of any project and needs a lot of time spent on it; however programmers aren’t the best people to be doing the core of your QA work. Programmers have spent years refining their skills so they can make the computer do things the average user didn’t even know were possible. Being told to try alt-tabbing to and from the application for 6 straight hours is not the best use of these finely honed skills. It’s a waste of time, it becomes boring extremely quickly and it will make your programmers feel worthless. Hire a bunch of college students at a few dollars an hour to come and do the boring tasks, leave your programmers to pumping an extra 5 fps out of your latest game.&lt;/p&gt;   &lt;ol start="5" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Don’t make entering a bug      more than a 1 minute job&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;Leading on from point four, it’s important to make sure your programmers do enter bugs if they find them in their day to day programming. A while back I was on a project where the list of steps required to enter a bug was astronomical. It took about 5 minutes to follow all of the steps. Not only is it wasting your programmers time, but your programmers are going to do as I (and every other programmer on the project) did and simply pretend like they didn’t see the bug. The simple fact is that unless it’s a simple task of entering the bug into the system or emailing the QA department with simple instructions on how to reproduce the bug your programmers aren’t going to do it.&lt;/p&gt;   &lt;ol start="6" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Keep us isolated from the      day to day business of the company, but not too isolated&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;I was on a project where the boss would come in every single day, or multiple times a day, and ask if we’d finished the project yet. He’d tell us all about the latest publishers he’d spoken to and what they’d said about the product. Programmers don’t need this information on a daily basis and it’s not going to help productivity at all. We’re smart people so if you come in every day and tell us that another publisher is interested in the product then after a while we’ll realise that actually none of them are interested and that’s why you have to talk to so many of them.&lt;/p&gt;   &lt;p class="MsoNormal" style=""&gt;The other end of the spectrum is not letting your programmers know anything about the project. This is almost as bad as being interrupted daily to find out that the deal has ‘almost’ been signed. We like to know what the future is for the software we’ve put our love and sweat into and being left in the dark is not a good feeling, especially in the games industry where so many studios are closing down recently.&lt;/p&gt;   &lt;ol start="7" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Don’t let us find out that      you’re charging us out at $100 and we’re seeing $20 of it.&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;At every job that I’ve been outsourced to I’ve known, through some means, exactly how much my employer has been making off my time. I know the reasons behind these mark ups and it still annoys me; imagine how the programmers that don’t know the reasons are feeling. The other problem you have is when you have egocentric programmers that find out they’re only being charged out at $70, they’ll feel undervalued and think you don’t understand just how much pure genius they have squeezed into their craniums.&lt;/p&gt;   &lt;ol start="8" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Talk to us&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;This list isn’t some form of divination, it’s just how I as a programmer, feel about my job. If you actually make your way through the caffeine rich atmosphere and excuse the lack of social skills attached to your average programmer you’ll find a sensitive human being that has feelings and will probably tell you exactly why they’re not happy. Some managers have been quite good in this regard and have talked to me regularly about how my work is going and if there’s anything they can help out with. At other companies I’d be lucky if I spoke to my manager more than once per week. I’d simply churn out the software and his name would be at the top of my pay slip. This doesn’t really make us feel appreciated nor does it let you know how you can help to make your programming team more productive.&lt;/p&gt;   &lt;ol start="9" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;But also leave us alone      sometimes&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;When it’s coding time, it’s coding time. If you need to just have a quick chat about something then come on over, but if it’s the 4&lt;sup&gt;th&lt;/sup&gt; time today, maybe you need to start scheduling daily meetings where you can meet and discuss everything in one go. This doesn’t include scheduling a meeting for 30 minutes into the future and assuming that because you did it in a formal way it’s going to be any less distracting. Every time someone interrupts me it takes me between 5 and 30 minutes to get back on track. This is the simple truth of programming, there’s a lot going on upstairs and stopping for human interaction usually clears out most of this data. I also pity the manager that interrupts a programmer when they're in the zone. Not only will the programmer be angry, but you’ll be lucky if they get back into the zone again that day.&lt;/p&gt;   &lt;ol start="10" type="1"&gt; &lt;li class="MsoNormal" style=""&gt;Stop using overtime      excessively&lt;/li&gt; &lt;/ol&gt;   &lt;p class="MsoNormal" style=""&gt;Every programmer I’ve ever worked with has achieved less work per day the further they get into overtime. For the first few days productivity goes up substantially, but after about the third day programmers start getting tired, and unhappy about working so much. There is a time and place for overtime and in the game industry it’s a necessary evil of the current developer-publisher relationship, however it needs to be kept down to no more than one work week. For every hour that you add to a programmer’s day, they’ll usually spend fifteen minutes of it complaining, thirty minutes surfing the web in protest, and fifteen minutes drinking coffee to stay awake. Factor in that time spent programming becomes less productive in crunch time, and you can quickly see that you’re actually hurting the schedule. The best example of this was when a few of us had to keep coding for two straight days before E3. We certainly got all the work done, however we spent the 3 weeks after we returned from E3 fixing the bugs we’d add in those two days. There’s nothing worse for a programmer than looking at code they wrote and not having any memory of it nor any comprehension of what it’s actually for, simply because they were too tired when writing it.&lt;/p&gt;   &lt;p class="MsoNormal" style=""&gt;That’s about all. If you have any comments either way on any of these points I’d be glad to hear them. Some of them have been biased towards games programming, however there are a lot of parallel’s between business and games when it comes to disgruntled programmers. Just remember, a happy coder is a productive coder.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113784750332118696?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113784750332118696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113784750332118696' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113784750332118696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113784750332118696'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/how-to-keep-your-programmers-happy.html' title='How to keep your programmers happy'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113739617478210510</id><published>2006-01-16T17:19:00.000+10:00</published><updated>2006-01-17T07:10:13.316+10:00</updated><title type='text'>Back To Normal</title><content type='html'>Normal mapping is now in. If you excuse the dodgy programmer art you can see the difference. Also in the background is my first attempt at a new skyscape.&lt;br /&gt;&lt;br /&gt;The screenshot shows on the left, without, and on the right, with, normal maps.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/7404/428/1600/normal_before_after.jpg"&gt;&lt;img style="" alt="" src="http://photos1.blogger.com/blogger/7404/428/400/normal_before_after.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113739617478210510?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113739617478210510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113739617478210510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113739617478210510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113739617478210510'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/back-to-normal.html' title='Back To Normal'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113739106873442289</id><published>2006-01-16T15:56:00.000+10:00</published><updated>2006-01-16T15:57:48.746+10:00</updated><title type='text'>DirectX Not Normal (Mapping)</title><content type='html'>The last week I've been working on making the graphics in CIC a little better than they are.  I've created a new star field in Photoshop thanks to &lt;a href="http://gallery.artofgregmartin.com/tuts_arts/making_a_star_field.html"&gt;this&lt;/a&gt; tutorial.  I wanted to keep the skybox textures to a maximum of 1024x1024 pixels which caused the star field to become quite pixelated.  I had a think about possible solutions and the technique I have come up with works quite well without giving a noticeable artefact problem.  I've tweaked the field of view of the camera when rendering the sky box so it's now more like a fishbowl which means more of the skybox is on screen at once which in turns reduces the size of each pixel when rendering.&lt;br /&gt;&lt;br /&gt;Currently I'm working on adding normal mapping support to my ship models.  Surprisingly, the HLSL to get this working was quite simple; the difficulties have been in getting DirectX to play nicely.  I had the following problems in order:&lt;br /&gt;&lt;br /&gt;1) My first simple shader which lights triangles based on whether their normal was pointing towards the light had issue as the .x file exporter that comes with the DirectX SDK exported my normals incorrectly.&lt;br /&gt;&lt;br /&gt;2) I used Panda's .x file exporter (which actually works) and can be found &lt;a href="http://www.andytather.co.uk/Panda/directxmax.aspx"&gt;here&lt;/a&gt;.  This worked well except for the fact it doesn't export binormals and tangents (needed for normal map calculation).  This was not an issue as DirectX has a function for generating these.  Unfortunately the function doesn't work.  D3DXComputeTangentFrame simple fails, giving no reason why.  I eventually found that other people were having troubles and they recommended using the older D3DXComputeTangent function, and it worked.&lt;br /&gt;&lt;br /&gt;3)  Now I had everything I needed I simply needed to add a normal map to my max model and re-export.  Unfortunately DirectX materials can have only 1 texture each and so only the diffuse (colour) map was exported with the model and the normal map is ignored.  So to keep DirectX happy I thought' I'd apply two materials to my max model, one with the diffuse map, the other with the normal map.  Unfortunately Max doesn't allow more than one material per object.&lt;br /&gt;&lt;br /&gt;So after all that, the solution is the manually specify which textures will be used with each model.  I'm going to try that this afternoon and I should hopefully have my normal mapping working in game within my 2 hours of work tonight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113739106873442289?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113739106873442289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113739106873442289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113739106873442289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113739106873442289'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/directx-not-normal-mapping.html' title='DirectX Not Normal (Mapping)'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113643285733590229</id><published>2006-01-05T13:38:00.000+10:00</published><updated>2006-01-05T13:47:37.346+10:00</updated><title type='text'>Help! Bubbles!</title><content type='html'>Just a quick note to say I’ve finished the initial implementation of my ‘Help Bubble System’.&lt;span style=""&gt;  &lt;/span&gt;Each User Interface item (button, image etc) can have two pieces of help information added to them.&lt;span style=""&gt;  &lt;/span&gt;When you mouse over the item for a few seconds a small help bubble is displayed, and if you keep mousing over for a little longer a second, more detailed, bubble is displayed.&lt;span style=""&gt;  &lt;/span&gt;I also quickly rewrote my user interface parser so it now reads in all of the key-values pairs for a user interface control and can parse them in any order.&lt;span style=""&gt;  &lt;/span&gt;This allows me to add fields that are not required, such as help info.&lt;span style=""&gt; &lt;/span&gt;Below is a screenshot showing an example with both levels of help bubble displayed.&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/HelpBubble.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/HelpBubble.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113643285733590229?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113643285733590229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113643285733590229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113643285733590229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113643285733590229'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/help-bubbles.html' title='Help! Bubbles!'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113629421595722786</id><published>2006-01-03T23:07:00.000+10:00</published><updated>2006-01-03T23:16:55.983+10:00</updated><title type='text'>Passive Aggressive</title><content type='html'>&lt;p class="MsoNormal"&gt;I’m back home again and enjoying my second week of holidays.&lt;span style=""&gt;  &lt;/span&gt;Unfortunately it’s so incredibly hot and humid that it’s making life difficult to work in front of the computer.&lt;span style=""&gt;  &lt;/span&gt;I decided to spend a few hours working out my schedule of what I need to do before I’m ‘feature complete’ for the tech demo.&lt;span style=""&gt;  &lt;/span&gt;I’ve got a list of 20 things I need to complete, totally approximately 126 hours.&lt;span style=""&gt;  &lt;/span&gt;This time is overcompensating and hopefully it should be done with a lot less time than that.&lt;span style=""&gt;  &lt;/span&gt;However, assuming that about right, I should be able to complete it within about 12 weeks.&lt;span style=""&gt;  &lt;/span&gt;That puts my deadline at about the 7&lt;sup&gt;th&lt;/sup&gt; of April.&lt;span style=""&gt;  &lt;/span&gt;I’m going to set that for now and see how I go over the coming weeks before I make it a definite date.&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;I’ve completed the first item on my list, the passive defence logic.&lt;span style=""&gt;  &lt;/span&gt;I know have large circles moving around an ellipsoid (that happens to be a perfect sphere for now) surrounding the players ship.&lt;span style=""&gt;  &lt;/span&gt;The logic is put in to shoot down missiles if the passive defence is in position.&lt;span style=""&gt;  &lt;/span&gt;So far the two passive defences are fighters and phalanx.&lt;span style=""&gt;  &lt;/span&gt;The circles are an abstraction of where the phalanx is to fire, and where the fighters should patrol.&lt;span style=""&gt;  &lt;/span&gt;In the future (one of the last items on the list) is to actually put small fighters and bullets for the phalanx; however they aren’t really necessary for now.&lt;span style=""&gt;  &lt;/span&gt;My main aim with the passive defences where to have a consistent interface for controlling both and I’m happy with how it has turned out.&lt;span style=""&gt;  &lt;/span&gt;It still needs to be ‘prettied’ up, but I thought I’d post a screenshot to show what the initial implementation looks like.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/PassiveDefence.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/PassiveDefence.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113629421595722786?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113629421595722786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113629421595722786' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113629421595722786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113629421595722786'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2006/01/passive-aggressive.html' title='Passive Aggressive'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113567922338314250</id><published>2005-12-27T20:16:00.000+10:00</published><updated>2005-12-29T19:53:00.566+10:00</updated><title type='text'>Merry Christmas</title><content type='html'>This message is a little belated as I've been without the internet for the past week.  My parents computer is now virus free and everything is back to normal so I can surf and email at a speedy 42Kbps.&lt;br /&gt;&lt;br /&gt;I'm not getting any work done for this week while I'm back at my parents, however at home I've been making quite a lot of progress at home.  I'll post some screenshots when I get home and I have another week on holiday where I hope to make quite a bit of progress getting ready for my tech demo.&lt;br /&gt;&lt;br /&gt;That's about it, just wanted to wish everyone a Merry Christmas and hope everyone has a safe and happy holiday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113567922338314250?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113567922338314250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113567922338314250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113567922338314250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113567922338314250'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/12/merry-christmas.html' title='Merry Christmas'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113404100501273355</id><published>2005-12-08T21:01:00.000+10:00</published><updated>2005-12-08T21:23:25.026+10:00</updated><title type='text'>CIC, the 'i' is for internet</title><content type='html'>Again a lot has happened since my last post and I'll try and remember everything I've been doing since I last reported in. Firstly, with &lt;a href="http://www.r2.com.au/"&gt;Cliff's&lt;/a&gt; help I tested CIC over the internet and it worked without a hitch. All the messages were passed around correctly and considering I haven't put any timing code in there was very little lag. I took a quick screenshot of the game we played against each other below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/net%20game.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/net%20game.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've been testing CIC at work quite a bit and getting people's opinions as early as I can. Even with the extremely limited gameplay people can see the possibilities and are saying it looks like it could be quite fun. It's always hard to get good feedback from friends as they are extremely biased, but I'm hoping most people will be honest if they have issues. I've been working quite a bit on fleshing out the gameplay of missile selection and interception. It's all come together quite nicely and while it needs quite a bit of testing to iron out some issues, I'm happy with how it's looking so far. Most of the features of the missile selection/interception have been implemented and I'm just about ready to start 'phase 2' of the defensive system. This section involves setting up the 'passive' defenses of the ship, such as where fighters should patrol the ship and where the 'phalanx' system should fire at incoming missiles. This will make choosing a path for the missile important and once complete will round out the first implementation of the offensive and defensive states.&lt;br /&gt;&lt;br /&gt;I've also started on a little optimization of the dynamic vertex buffers so they are all grouped into a single large vertex buffer based on their material. This creates 4 extra vertices for each smoke trail in the form of 2 degenerate triangles however it means I can put the entire group into one 'stripified' dynamic vertex buffer which increases performance quite substantially (about 20fps bringing it up to 70 with a lot of missiles on the screen). There still needs to be quite a bit of optimization, however I'm simply going to analyze it so I'm aware of the trouble areas and leave the bulk of the optimizing until I reach my major milestone early next year.&lt;br /&gt;&lt;br /&gt;That's about all that's happening, I'll just give a quick shout out for Damian who's released v0.5 of &lt;a href="http://glintercept.nutty.org/"&gt;GLIntercept&lt;/a&gt; which I recommend to anyone writing an OpenGL app, or who would like to find out how their favourite OpenGL game does all it's fancy effects. I had a lot of fun looking at Homeworld 2 and seeing they implemented their smoke trails in a similar way to mine :).&lt;br /&gt;&lt;br /&gt;That's about it, I'll leave you with a riddle we had at the quiz night for our church Christmas party:&lt;br /&gt;If 1.5 chickens lay 1.5 eggs in 1.5 days, how many chickens does it take to get 12 eggs in 6 days. It's fairly easy but I enjoyed it as a brain teaser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113404100501273355?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113404100501273355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113404100501273355' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113404100501273355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113404100501273355'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/12/cic-i-is-for-internet.html' title='CIC, the &apos;i&apos; is for internet'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113280647187148907</id><published>2005-11-24T14:25:00.000+10:00</published><updated>2005-11-24T14:27:51.880+10:00</updated><title type='text'>State your defence</title><content type='html'>I've made quite a bit of progress over the past week and have completed the core implementation of both the offensive and defensive states.  Along with the ability to choose the path and type of missiles to fire the player can now select incoming groups of missiles and choose which counter missiles to fire at them.  I've also put some extremely simple AI in so the enemy ship fires missiles as well.  Over the next week I'm going to be getting the spider webs out of the network system and making sure everything runs smoothly.  From there I'm going to put together the first closed alpha test of the game.  It will allow two players to shoot it out against each other both firing missiles and shooting down their opponents missiles.  I'm hoping for some feedback on which areas of the game need tweaking, and a general idea of how much fun CIC is.&lt;br /&gt;&lt;br /&gt;After that I'm going to continue work on the next part of the defensive state which will include setting up fighter and phalanx support around the capital ship.  This will give a reason for choosing the path of missiles as the player will need to find the best route to get through these passive defences.&lt;br /&gt;&lt;br /&gt;I'm having some initial thoughts about the AI to implement for the ships and I'm researching how applicable neural network are to my situation.  If you are interested in testing CIC over the next few weeks, or even the next few months send me an email and I'll add you to my list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113280647187148907?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113280647187148907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113280647187148907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113280647187148907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113280647187148907'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/11/state-your-defence.html' title='State your defence'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113191994863595887</id><published>2005-11-14T07:55:00.000+10:00</published><updated>2005-11-19T19:19:52.546+10:00</updated><title type='text'>Interwebsite</title><content type='html'>I've been wanting to get a website for quite some time now. On Friday I went into negotiations with my credit card and we decided a website was finally worth the time and money. &lt;a href="http://www.r2.com.au/"&gt;Cliff&lt;/a&gt; from work suggested &lt;a href="http://www.dreamhost.com/r.cgi?doolwind"&gt;Dreamhost&lt;/a&gt; as he's been with them for a while and hasn't had any problems at all. I must say so far they are even better than I had hoped. It took a matter of hours to set up my site with ftp access and I was able to access the site &lt;a href="http://www.doolwind.com/"&gt;here&lt;/a&gt; the next day. So far I only have a template design up and a simple forum (which installed with one click thanks to dreamhost's "one click install" section). I'll slowly add pics and videos of CIC and generally put any important information there.&lt;br /&gt;&lt;br /&gt;In other news, I've updated CIC to use Visual Studio 2005 Express. It's a cut down version of Microsoft's new Visual Studio and is free for the first year of use. After that it's &lt;$100 to buy, so I'll test it for the year and see how it goes. The only thing it didn't have is source control, however thanks to &lt;a href="http://glintercept.nutty.org/"&gt;Damian&lt;/a&gt; I've got a button which allows you to check out the current file. If you want to add the same button follow these simple steps:&lt;br /&gt;&lt;br /&gt;!!!WARNING!!! Below is some nerd speak, if you're not a coder, just move along :D&lt;br /&gt;&lt;br /&gt;1) Click tools -&gt; external tools&lt;br /&gt;2) Click add to add a new tool&lt;br /&gt;3) Enter the 'title' as whatever you like (eg "CheckOut")&lt;br /&gt;4) In the 'command' field enter the command for your source control program. For perforce this is "C:\Program Files\Perforce\p4.exe" (or wherever perforce is installed)&lt;br /&gt;5) In the 'Arguments' field add the command the edit/check out a file.  For perforce this is 'edit $(ItemPath)'&lt;br /&gt;6) You can untick 'Close on Exit' for the first few times and it will leave the command window up so you can make sure files were successfully checked out. After you are comfortable untick this and it will automatically go away.&lt;br /&gt;&lt;br /&gt;To add it to the top tool bar:&lt;br /&gt;7) Right click on the tool bar and click customize&lt;br /&gt;8) In 'categories' go down to tools&lt;br /&gt;9) Select the 'External Command x' where x represents the position of the command you just added to external tools. For me this was 'External Command 3' as there were 2 other external commands in the list by default.&lt;br /&gt;&lt;br /&gt;I'm just working through adding the defensive state to CIC and generally getting the website set up. If you have any comments or suggestions about the site please email me at my new address (alistair -at- doolwind -dot- com).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113191994863595887?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113191994863595887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113191994863595887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113191994863595887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113191994863595887'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/11/interwebsite.html' title='Interwebsite'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113153603802722205</id><published>2005-11-09T21:21:00.000+10:00</published><updated>2005-11-09T21:33:58.036+10:00</updated><title type='text'>Missing a Missile</title><content type='html'>I've finally finished the first pass over my missile interception code. It took me quite a while to iron out the remaining bugs, but it's all done now. I ended up having 3 bugs which were causing the missile to miss slightly, however now they're fixed it's looking quite good.&lt;br /&gt;&lt;br /&gt;The counter missile flies along and appears to be reacting the the target missile path even though it's course has been pre-generated. I've also put some simple AI in which shoots down incoming missiles if they are unprotected by ECM missiles. Below is a picture of the counter missile in action. The target missile started on the left and is flying towards the right, the counter missile begins at the right and flys towards the left. As you can see, the target rotates slightly towards is left and so the counter missile follows by rotating to it's right.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/MissileIntercept.0.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/MissileIntercept.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next on my todo list is implementing the defensive state so two players can play against each other. I'm also going to start implementing some more complex AI as I add new features. So far the AI system is working really well. The fact that the entire system is event driven makes adding new AI behaviours simple and flexible. I'm also going to start putting together a schedule so I should know an approximate date for the 'tech demo' alpha release soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113153603802722205?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113153603802722205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113153603802722205' title='35 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113153603802722205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113153603802722205'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/11/missing-missile.html' title='Missing a Missile'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113093805087624558</id><published>2005-11-02T23:18:00.000+10:00</published><updated>2005-11-02T23:30:02.070+10:00</updated><title type='text'>Un-Civilized</title><content type='html'>So I just finished my first game of Civ IV. It took a little over 8 hours and I ended up loosing closely to the Germans in a space race. The game is simply amazing. I'll need to have a few more games before I can make a detailed description of exactly why it's so good, but I thought I'd give a few details on what I think makes it such a good game.&lt;br /&gt;&lt;br /&gt;The first thing is the fact it feels like Civ. I was a little worried when I first started reading info about it, and especially when I started seeing the screenshots. The game has changed quite a lot, however it still holds true to the civ flavor that I've come to love. It all fits together in a cohesive game which stays interesting and exciting the whole way through. The 'end-game' has been fixed up and I like the way the first few ages take quite a bit longer to get through. The changes to combat are excellent and while it will take a while to get some solid strategies down, it handles the paper-scissors-rock style of so many RTS games extremely well. I might put up a full review of the game once I've had a few more tries if anyone is interested.&lt;br /&gt;&lt;br /&gt;In other news, I did some AI coding this morning before I began my day long civ-fest. I've now got the enemy ship firing counter missiles in response to missiles you fire at it. I also sat down with a math's friend and went through the missile interception problem. It seems that it IS in fact extremely hard to calculate, and so far the best I can get to is a 4th order polynomial, which is no walk in the park to solve. For that reason I'm going to fall back to my 'plan b' for now. I will basically break the path up into small parts and find the best point to aim at. This will be substantially slower than a simple mathematical formula, and not truly accurate, however for now I believe it will do that job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113093805087624558?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113093805087624558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113093805087624558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113093805087624558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113093805087624558'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/11/un-civilized.html' title='Un-Civilized'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113074364374473395</id><published>2005-10-31T17:04:00.000+10:00</published><updated>2005-11-01T10:05:23.860+10:00</updated><title type='text'>Backups are for suckers</title><content type='html'>Well it finally happened. I've been using computers for about 15 years now and today I lost my first group of files due to not backing up. I had the bright idea of reinstalling windows over the weekend as it was becoming quite slow and freezing for 10 seconds whenever I opened "My Computer" (you'd be surprised how often I do that).&lt;br /&gt;&lt;br /&gt;I took a backup of my 'depot' directory of CIC and assumed that would be enough for me to copy over my fresh install of perforce. To cut a long story short, I needed to copy the database files as well, which are nicely placed in the root of the Perforce install directory so I didn't even notice them. This wouldn't have been an issue as I still had my latest copy of CIC on the 'client' area of my PC....or so I thought. When I formatted my drive with the perforce server on it, some of the files on the client space were also deleted. I'm unsure why this happened, but this meant my latest copy was now gone. Luckily I had made a backup about a week ago onto my memory stick so I've just spent the last few hours sifting through the cryptic Perforce history files trying to put back together the code I've done in the past week. Luckily there wasn't a great deal, and I think it was worth it for the lesson it's taught me in backing up. I've always kept multiple copies on multiple media of any work I'm doing, however for some reason I didn't make a backup when formatting this time. Lets just say I've learnt my lesson and I'll now be doing even more backing up.&lt;br /&gt;&lt;br /&gt;In other news, I've been designing my AI system which I was going to start implementing today but will now put off until tonight or tomorrow. I've decided to go with an event driven system and I'm going to code it with the intention of making the AI system run in a different thread in the future. I decided, for debugging purposes mainly, it's best to keep it in the same thread to begin with. I'm going to break up each ship to have each different section controlled by a different AI system. I really liked the way the priority system in my RTS worked so I'll be implementing an updated version of that for most of the AI systems in CIC.&lt;br /&gt;&lt;br /&gt;Civ IV is upon us. It's been released in the US and is coming out here in Australia on the 3rd. After traveling half way around the world, my copy is currently on it's way from Sydney to Brisbane, so I'm hoping I'll have it tomorrow. It's then up to me to juggle Civ and CIC time to make sure I get enough relaxing and work done for the final week of my holiday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113074364374473395?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113074364374473395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113074364374473395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113074364374473395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113074364374473395'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/10/backups-are-for-suckers.html' title='Backups are for suckers'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-113012609973241086</id><published>2005-10-24T13:40:00.000+10:00</published><updated>2005-10-24T13:54:59.810+10:00</updated><title type='text'>Holiday</title><content type='html'>My first holiday in quite some time has just begun. I don't have any concrete plans for the fortnight, however I do plan to do as much work on CIC as I can while still relaxing. I haven't had a lot of time recently to work on CIC, and I've spent a lot of my time trying to work out an equation for counter-missile interception. I thought I'd post the problem and see if anyone can come up with a solution. As far as I can see, this is a non-trivial problem, and requires quite a complex equation to calculate. My closest attempt so far has me factoring a polynomial equation, which I'm currently reading up on as I haven't done it since high-school. The problem is described below.&lt;br /&gt;&lt;br /&gt;I have 2 missiles, A and B.&lt;br /&gt;Missile A has a current velocity (Va) and direction (Da), a known constant acceleration (Aa) and a known position (Pa).&lt;br /&gt;Missile B has a current velocity (Vb), a known maximum constant acceleration (Bb) and known position (Pb).&lt;br /&gt;&lt;br /&gt;What needs to be calculated is the direction to fire B (Db) so that it can accelerate at it's maximum acceleration and intercept missile A. It can be assume that the current velocity of B is in the direction that will be calculated, to simplify the problem. This equation must be calculated in 3D with the resultant direction having 3 components, x, y and z.  I believe there may be multiple results within a solution, it would be best to have all of these results, however the result that is the shortest distance from B would usually be used.&lt;br /&gt;&lt;br /&gt;If anyone has any questions please ask, otherwise please post your answer or email me at adoulin@hotmail.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-113012609973241086?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/113012609973241086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=113012609973241086' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113012609973241086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/113012609973241086'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/10/holiday.html' title='Holiday'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112908660743298267</id><published>2005-10-12T12:49:00.000+10:00</published><updated>2005-10-12T13:19:34.196+10:00</updated><title type='text'>Mighty Fine Spline</title><content type='html'>I'm experimenting with an idea for the movement of the missiles in CIC. Rather than having the missiles move independently using their speed and direction I'm pre-calculating the missile paths. The missiles still use the movement under constant acceleration equations (suvat) to have correct movement speeds, however my new approach comes with a lot of advantages over simply calculating the new position based on the old one each frame. These advantages are:&lt;br /&gt;&lt;br /&gt;1) The entire path for a missile can be pre-calculated before it launches meaning a very small calculation each frame to find it's current position.&lt;br /&gt;2) Very little data needs to be sent over the network. The spline calculation is done based on the control points chosen by the user, and the acceleration of the missile. The server can use this minimal information to create intricate missile path's.&lt;br /&gt;3) The positions can't get 'out of sync' between clients and the server. Rather than using an offset based on the current position, the position each frame is calculated independently. This means that even running the game at completely different frame rates with large pings (&gt;1 second) the two games will always display the same world to each user.&lt;br /&gt;&lt;br /&gt;So far I have a simple implementation of the splines. My next step is to create counter-missiles with shoot down the current missiles I have in the game. Due to the use of splines I have another new technique I'm going to experiment with. As my missiles paths are pre-calculated, I will be able to pre-calculate the counter-missile paths as well. To look realistic the counter-missile needs to fly towards an intercept course with its target.&lt;br /&gt;&lt;br /&gt;Usually this is complicated, as each time the target missile changes course; the counter missile must also correct its course to make sure it intercepts the target missile. However, as I'm using splines and I already know the complete path of the target missile, the counter missile's path can be created to seem as though it's reacting to the changes in the target missiles path. Every control point on the target missiles path will have a corresponding control point for the counter-missile.&lt;br /&gt;&lt;br /&gt;If all goes according to plan this means that only a handful of control points need to be sent over the network for each missile and counter-missile meaning an extremely large number of missile's can be fired and the game should handle it nicely (good scalability).&lt;br /&gt;&lt;br /&gt;If this seems a little confusing, or if you'd like to know more, let me know and I can mock up some simple diagrams to show you exactly what I'm talking about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112908660743298267?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112908660743298267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112908660743298267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112908660743298267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112908660743298267'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/10/mighty-fine-spline.html' title='Mighty Fine Spline'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112804258819935345</id><published>2005-09-30T11:08:00.000+10:00</published><updated>2005-09-30T11:09:48.203+10:00</updated><title type='text'>RakNet-working</title><content type='html'>I had a couple of extra hours last night to code and decided it was time to start implementing the Network System for CIC using &lt;a href="http://www.rakkarsoft.com/"&gt;RakNet&lt;/a&gt;.  I'm pleased to say that RakNet is everything I had hoped it would be.  It took about 15 minutes to get my client and server implemented and connected to each other.  The tutorials are helpful and any problem I ran into I solved quite quickly.  The only substantial issue I had was my first message I passed was not working as I expected.  This was simply because I didn't cast the enum of it's type to a (uchar) and so it was taking 4 bytes rather than 1.&lt;br /&gt;&lt;br /&gt;I had spent a fair amount of time designing my network system and so far I'm happy with how well the implementation is going.  My two main goals for this system were:&lt;br /&gt;&lt;br /&gt;1) Centralize the creation of new events/messages so that the networking system needs little if any changes&lt;br /&gt;2) Make the reading and writing of packets use the exact same code to remove any problems with reading data differently to how it was written.&lt;br /&gt;&lt;br /&gt;My design meets both of these requirements nicely, once I've implemented the core system I'll put up some diagrams and give a more in-depth explanation of how I accomplished this.  I am only using the lowest level parts of RakNet as I prefer having complete control over what's being sent.  RakNet feels very similar to the socket wrapper I wrote for my last personal project which is why it feels so natural to use.&lt;br /&gt;&lt;br /&gt;I'll keep you posted on how my progress with RakNet and my networking goes and will hopefully have the core system with CIC's 3 events implemented by next week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112804258819935345?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112804258819935345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112804258819935345' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112804258819935345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112804258819935345'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/09/raknet-working.html' title='RakNet-working'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112743674500989433</id><published>2005-09-23T10:47:00.000+10:00</published><updated>2005-09-23T11:37:58.790+10:00</updated><title type='text'>Kill All Menus</title><content type='html'>I've recently been listening to some of the GDC 2005 presentations. While listening to Molyneux's speech about 'The Movies' I heard a statement that I'm starting to hear more often. It went something like "I was playing an early build of the game and realised I was spending too much time navigating through menus". Firstly I believe this shows a poor design as it should have been obvious from the initial design doc that most of the game was going to be based within menus, and if this isn't what was intended, it should have been fixed back at this early stage. That aside however, I have a problem with what most people in the industry tend to do next. Molyneux's solution to this problem was almost identical to Mark Skagg's solution I heard for Battle for Middle Earth (BfME) at E3 last year. The solution was "To completely remove the menus". Both guys loaded up the game and proudly showed a 3D scene with absoultely no menus.&lt;br /&gt;&lt;br /&gt;To me, this is an issue. While I agree that sifting through menu's is not what I generally call 'fun', I think moving to this polar opposite is actually counter-productive. Menu's are good at doing a number of things, and if games use them correctly they can be extremely powerful without bogging the user down. When a designer decides they want to remove all menu's from the game they are actually making life more difficult for the user. In BfME it meant every time you wanted to build a unit you had to move the camera all the way to your base, click on the small spot for the building and then find your way back to what you were originally looking at. Rather than completely removing the usual build menu from the bottom of the screen, why didn't they use a system similar to Battle Isle: Andosia War. This game had one small icon for building, you clicked on it and it brought up a slightly larger menu where you could select the buildings to create. This way you still have the speed of a menu, however it doesn't take up 1/8 of the screen as most menu's do. Another option would be to have 'hot spot' buttons at the bottom of the screen. Each area of interest would have it's own 'hot spot' button, such as your base, the enemies base or the latest game event. One click on the 'base' button would jump you to your base, another click on the base button would jump you back to where you were originally. Having a few small, unobtrusive buttons or menu's will make the players life so much easier without them getting bogged down.&lt;br /&gt;&lt;br /&gt;In contrast, I made a similar comment to the first one above when designing CIC. I believed that in a lot of 3D games today, players spend too much of their time in a 2D representation of the game world or a screen full of icons representing different game objects. In Homeworld 2 I (and most people I know) spend most of their time in the zoomed out tactical view. Due to it's design the player is not looking at glorious 3D models of ships, but instead looking at icons representing each of their ships. You can't find out the health of individual ships nor the direction the ship is facing. I decided I wanted players spending most of their time looking at the 3D view of the game which showed not only a 3D world, but 3D ships and objects so they could have good situational awareness all the time, without resorting to icons and other 2D representations. A game like Hegemonia did this well as all units were visible in the main view. This looked a little weird with ships being the same size as planets, however I think a hybrid of these styles will work really well.&lt;br /&gt;&lt;br /&gt;Only time will tell as to whether my ideas are going to work, however I'm excited to be stepping out of the mould and trying something new. If you have any thoughts either way on this please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112743674500989433?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112743674500989433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112743674500989433' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112743674500989433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112743674500989433'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/09/kill-all-menus.html' title='Kill All Menus'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112713040486011775</id><published>2005-09-19T21:35:00.000+10:00</published><updated>2005-09-19T21:46:44.883+10:00</updated><title type='text'>Interface Interface</title><content type='html'>I've been working on an interface system for CIC and so far it's coming along nicely.  I looked into using XML however decided it would be easier to roll my own file format for the UI's.  I've added functionality for array's of components to be loaded from the file.  So far I have images, buttons, radio buttons and containers for the radio buttons.&lt;br /&gt;&lt;br /&gt;I'm updating my material system to cache loaded textures.  I was giong to update the material system so whenever a new material was created it would check if the identical material (same colour, transparency, texture etc) existed in the system and use that material instead of creating a new one.  I decided that although this was a nice generic solution that catered for all cases, it was also slightly slower than I'd like.  The specific game engine that creates the materials can best decide which materials should be reused.  Keeping a cache of the textures will stop large textures being reloaded twice, however I believe it will be more powerful for the game engine to decide which materials are shared and which should be kept seperate.&lt;br /&gt;&lt;br /&gt;That's about all that's going on at the moment.  The release of MVH will be on the front cover of BH&amp;G magazine Wednesday so things are getting a little busy at work.  So far we don't have any overtime planned although Nick (my roommate) is heading in during the evenings and on the weekend for technical support).  Hopefully all will go well and I'll be on a new project soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112713040486011775?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112713040486011775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112713040486011775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112713040486011775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112713040486011775'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/09/interface-interface.html' title='Interface Interface'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112661657957266574</id><published>2005-09-13T22:51:00.000+10:00</published><updated>2005-09-13T23:02:59.580+10:00</updated><title type='text'>It's coding time</title><content type='html'>Ahoy hoy,&lt;br /&gt;&lt;br /&gt;I've been quite busy since my last post, both at work and on my design.  I've completed the first pass on my game design doc and I decided it was time to move into some technical design.  I went and formalized my design into UML for my framework and I've also put together a design for the game engine.  I was happy enough with the design that I've decided to start getting back into coding to put together my first 'state'.  I made some big design decisions relating to both gameplay and engine design.&lt;br /&gt;&lt;br /&gt;I formalised my thoughts on an 'event' system and so far the implementation is going well.  All objects in the world fire events which get passed to the event manager.  This manager can then do any checks on the event and will pass it on to either the game world (for single player and a server) and/or send the information to the netcode to be sent to other players.  This will allow great control over the events and will allow events to be generated from the network, by the AI, by a scripting language or by the player.&lt;br /&gt;&lt;br /&gt;I've been getting up to date with &lt;a href="http://www.rakkarsoft.com/"&gt;RakNet&lt;/a&gt; ready to implement some simple netcode to test the game.  I rolled my own netcode for the last project and while I learned a lot, I've decided to get RakNet a try as it seems perfect for what I need.&lt;br /&gt;&lt;br /&gt;That's it for now....I'm back playing Counter Strike: Source (and I've even joined a clan for the first time).  Looking forward to Civ4 and Black&amp;amp;White 2 next month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112661657957266574?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112661657957266574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112661657957266574' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112661657957266574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112661657957266574'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/09/its-coding-time.html' title='It&apos;s coding time'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112557766264848007</id><published>2005-09-01T22:22:00.000+10:00</published><updated>2005-09-01T22:27:42.653+10:00</updated><title type='text'>First screen shot</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/cic11.JPG"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/cic11.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I won't be updating my code for a while, I thought I'd upload a screenshot of CIC so far. This is an extremely early shot, so a lot of the models and textures are simply placeholders. In the picture two missile have exploded, and the shockwave for the top one can be seen. This shockwave is a simple pixel shader which uses a normal map as a post process effect.&lt;br /&gt;&lt;br /&gt;The game design doc is coming along still and I'm getting close to having the basics of all sections finished. Once I've finished the first version I'll start looking at working on a technical design document. I'll then review the code I've completed so far and start adding new features again ASAP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112557766264848007?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112557766264848007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112557766264848007' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112557766264848007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112557766264848007'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/09/first-screen-shot_01.html' title='First screen shot'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112510915127034840</id><published>2005-08-27T12:09:00.000+10:00</published><updated>2005-08-27T12:19:11.276+10:00</updated><title type='text'>Concept Art</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7404/428/1600/IsaiahConcept.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7404/428/400/IsaiahConcept.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here's a simple sketch of some concept art I've done for CIC.  It's a Longbow Class Battleship and I will be using it in the first tech demo of CIC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112510915127034840?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112510915127034840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112510915127034840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112510915127034840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112510915127034840'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/08/concept-art.html' title='Concept Art'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112471214030150906</id><published>2005-08-22T21:52:00.000+10:00</published><updated>2005-08-22T22:02:20.536+10:00</updated><title type='text'>Game Design</title><content type='html'>The game design document is coming along nicely.  Crunch time has been, gone, and is back again already.  We had 5 days off last week, and I took that time to relax and plan my design.  I've made a few changes to some of my initial ideas, however I think the gameplay will benefit from it.&lt;br /&gt;&lt;br /&gt;I've changed the missile selection to be a simple 2D grid, rather than a 3D cube as it was going to be too hard to represent it in an easy to use UI.  This will allow more focus on the types of missiles to put in the group, rather than fighting against the UI to figure out which square is which.  The other change I've made is adding fighters to the defence network.  I wanted to increase the reason for directing the missiles and having fighter cover to move around is perfect.  The fighters only defend the capital ship and fly around it shooting down incoming missiles.&lt;br /&gt;&lt;br /&gt;I'm working my way through the design doc and trying to get all of my ideas down on paper, which is helping me to flesh out my ideas.  I can highly recommend anyone who has a few game ideas in there head to try and formalise it on paper.  Doing this forces you to think about the complex areas of your game you would normally skim over.  I've also been drawing a few concept sketches of what I imagine the combat will be like, I'll try scanning or photographing some of them and putting them up here when I get some time.&lt;br /&gt;&lt;br /&gt;Other than that, thanks to Damian I know how the warp effect working on all cards other than my own.  I was trying to use a non-power of 2 texture which was only working on my 6800.  I'm finding it quite challening to keep away from coding, however so far I've been quite successful and the game design is getting some depth to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112471214030150906?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112471214030150906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112471214030150906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112471214030150906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112471214030150906'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/08/game-design.html' title='Game Design'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112246771458749913</id><published>2005-07-27T22:25:00.000+10:00</published><updated>2005-07-27T22:35:14.593+10:00</updated><title type='text'>Space Shuttle Discovery</title><content type='html'>The crew of the space shuttle Discovery have been in space now for a little over 10 hours.  The launch went spectacularly and other than a few damaged tiles all is going well so far.  I'm a big fan of all things space (in case that wasn't already obvious) and I think NASA's current plans for the future are a positive sign for humanity.  I will reveal more about what I believe the future of space flight to be with my 'Future History' to go along with my space game.  I want to make it as believable as possible, with a little wishful thinking added in for good measure.  My prayer's are with the crew and I wish them a safe trip and return.&lt;br /&gt;&lt;br /&gt;Overtime is still cranking along.  We've been called in for the weekend as well so I won't be getting anything done this weekend.  I'm rounding up all the features I can add without fleshing out more of my ideas in a game design document.  I've also decided now would be a good time to update some of the core features of my framework that I've put off due to time constraints.  I have a plethora of 'TODO's I've placed throughout the framework which I'd like to go back to and update until I'm comfortable with the code.  I've also decided to brush up, and solidify my Software Engineering principles and I may take some time to reassess my framework now that it's taken shape and decide if there are any design decisions I'd like to change before continuing.&lt;br /&gt;&lt;br /&gt;That's about all for now, my eyes have had enough of computer screens for one day so I'm off.&lt;br /&gt;&lt;br /&gt;P.S. Happy birthday Walter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112246771458749913?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112246771458749913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112246771458749913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112246771458749913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112246771458749913'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/07/space-shuttle-discovery.html' title='Space Shuttle Discovery'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-112148116614974345</id><published>2005-07-16T12:26:00.000+10:00</published><updated>2005-07-16T12:32:46.156+10:00</updated><title type='text'>Overtime</title><content type='html'>Howdy,&lt;br /&gt;&lt;br /&gt;I'm now officially in the 'crunch period' of our current project at work.  We're working overtime every evening for the next 8 weeks leading up to the big release of MyVritualHome.  This is really cutting into my time for working on the tech demo, however I'm making an effort to still get up early and get an hour or two of coding done before work.&lt;br /&gt;&lt;br /&gt;I've finished the first phase of my interface system, with the manager, images and buttons working nicely.  I've decided to take a step back from coding for a while and refocus my work for the tech demo.  I need to decide exactly what the most important features are that I want to add so I can get a good demo up and running to show people.  I will then be able to access the 'fun' factor of the game, and whether it's worth me taking it to the next step.&lt;br /&gt;&lt;br /&gt;In other news, I spoke with Cliff today and he has finished making my bow.  I'm going to go shooting in a fortnight and will get to try it out and buy it then, I'm really excited.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-112148116614974345?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/112148116614974345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=112148116614974345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112148116614974345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/112148116614974345'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/07/overtime.html' title='Overtime'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-111991435090232840</id><published>2005-06-28T09:14:00.000+10:00</published><updated>2005-06-28T09:19:10.906+10:00</updated><title type='text'>Interface System</title><content type='html'>Just a quick note to let you know I'm currently working on a simple 2D interface system for the tech demo.  I decided to write most of it from scratch and may use some of DirectX's framework interface system for complex menus.&lt;br /&gt;&lt;br /&gt;I figured it would be both a good addition to my framework, and I was running out of features I could implement using only the 3D scene.  Having said this, my emphasis is on having as much of the interface as possible in the 3D world, and using the 2D interface only where it's absolutely necessary.  I find that some games over-use 2D interfaces when the equivalent representation in 3D is far simpler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-111991435090232840?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/111991435090232840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=111991435090232840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111991435090232840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111991435090232840'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/06/interface-system.html' title='Interface System'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-111953306015061208</id><published>2005-06-23T23:21:00.000+10:00</published><updated>2005-06-23T23:46:56.653+10:00</updated><title type='text'>Space Game</title><content type='html'>&lt;!--&lt;span class="end-tag"&gt;My work project (&lt;a href="http://myvirtualhome.com.au"&gt;MyVirtualHome&lt;/a&gt;) is coming along nicely and we have a new website which shows off some of the fancy graphics we've been working on over the past year. I've also been working on a small tech demo in my spare time. I thought I'd start to gives some updates on how I'm going on this project....&lt;br /&gt;&lt;br /&gt;The tech demo is a capital-ship based tactical space game. What's that mean exactly? Well the capital ship part means that giant kilometre long ships will be dueling it firing hundreds of missiles and torpedo's at each other. I'm using David Weber's Honor series as inspiration for some of my ship design. The tactical part means that you will be deciding what projectile types to be using and where to attack the enemy ships, as well as which defensive weapons to use and which incoming projectiles are the most dangerous. The final part (space game) means that it's based, obviously, in space. However not the 3rd dimensionally challenged space that so many games are based in. I'm talking true 3D, where up isn't based on some pre-set axis but is based on where you ship is currently facing. I've spent a fair bit of time working out how the interface for such a game can work. So far I've implemented a simple point and click interface within the 3D world and I'm quite pleased with it so far. I'm going to give it to a few friends to try out and tell me just how good/bad/moronic my design is.&lt;br /&gt;&lt;br /&gt;So far, I've been working on a simple framework with which I can build the tech demo (and future tech demo's) on. I've got a few simple systems completed in the framework so far. These include a material manager, post process effect manager (with some effects such as warped explosions and glow effect), chunk/mesh manager, input manager and I'm currently working on the design for an interface manager. I've only just started working on the actual game engine and currently have two ships sitting there with the ability to plot the course of a missile between the two.&lt;br /&gt;&lt;br /&gt;I decided to learn High Level Shader Language (HLSL) to do my effects, and I'm really pleased with how it's shaping up. I feel like an assembly programmer who has just been introduced to C for the first time. I'm trying not to get too carried away with all the special effects, and I'm starting to get into the core design of the game engine, which I'm excited about. I'll keep updating regularly and put up some screen shots in the coming weeks.&lt;br /&gt;&lt;br /&gt;P.S. I've got Battlefield 2 and love it, even though someone forgot to put the headsets in the Australian version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-111953306015061208?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/111953306015061208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=111953306015061208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111953306015061208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111953306015061208'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/06/space-game.html' title='Space Game'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-111607738740488210</id><published>2005-05-14T23:10:00.000+10:00</published><updated>2005-05-14T23:29:47.410+10:00</updated><title type='text'>Battlefield 2</title><content type='html'>I've just read another preview for Battlefield 2 (BF2) and I thought I'd share my thoughts on what I believe is going to happen once it's released.&lt;br /&gt;&lt;br /&gt;I look forward to games as much as the next obsessed gamer, and I'm often dissapointed with the final result. However with BF2, I think we are going to see a new era in PC gaming. For all the amazing featuers BF2 hosts, the most important feature is going to be the Voice-over-IP (VoIP) built right into the game. A few games already have VoIP (Counter-Strike for example) however so far this has been more of an annoyance than any amazing feature.&lt;br /&gt;&lt;br /&gt;The first thing that's different with BF2's VoIP is that EA are shipping it with a free headset. This means every single person who own's BF2 will be able to listen and chat to everyone else playing. This could be cause for concern on some server's with a bunch of moronic gamers all yelling and swearing at each other, however I hope we see the opposite. With the squad and commander features of BF2, everyone having VoIP and a headset means everyone can communicate and work together. This is how the real military works, and will not only make it more 'realistic', but will mean those that work together as a team, should have more success. This will in turn make players want to work together more, and take even more advantage of the techonology.&lt;br /&gt;&lt;br /&gt;I also think that having the VoIP technology, the commander role might actually prove a success. The first game I remember playing with a 'commander' was Tribes 1. I don't remember a single game when the commander was used for an extended period of time, even in clan matches. In a 32 player game, players genuinly believed that their was more benefit from having another 'gun' than having a commander unit. In other words, no matter how good a commander was, a team of 16 versus a team of 15 would always end with the larger team winning. I think finally the commander is being given enough power, in artillery and visibility of the battlefield, to make them truly useful, and I look forward to hopping into the role from time to time.&lt;br /&gt;&lt;br /&gt;So again, I look forward to another game. As time goes on, I'm trying to do this less and less, however I think BF2 is a game that deserves some of the hype. I guess time will tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-111607738740488210?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/111607738740488210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=111607738740488210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111607738740488210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111607738740488210'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/05/battlefield-2.html' title='Battlefield 2'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-111087824364082435</id><published>2005-03-15T19:12:00.000+10:00</published><updated>2005-03-15T19:17:23.640+10:00</updated><title type='text'>Top 10 Games</title><content type='html'>I decided it's time I added my top 10 games of all time.  After uttering the words "X is the greatest game, it's in my top 10" for about 30 different games I thought I should put them in writing.  Here goes:&lt;br /&gt;&lt;br /&gt;10. Battle Isle: Androsia War&lt;br /&gt;9.   Half-Life (Counter-Strike)&lt;br /&gt;8.   Tribes&lt;br /&gt;7.   Civilization&lt;br /&gt;6.   Battlefield 1942 (Desert Combat)&lt;br /&gt;5.   Morrowind&lt;br /&gt;4.   Warrior Kings: Battles&lt;br /&gt;3.   Half-Life 2&lt;br /&gt;2.   Command and Conquer: Tiberian Dawn&lt;br /&gt;1.   Dune 2&lt;br /&gt;&lt;br /&gt;So that's about it.  Work is going well, I've been playing a bit of Call of Duty at work lately, great game!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-111087824364082435?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/111087824364082435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=111087824364082435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111087824364082435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/111087824364082435'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2005/03/top-10-games_15.html' title='Top 10 Games'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-110120093202876096</id><published>2004-11-23T19:02:00.000+10:00</published><updated>2004-11-23T19:08:52.026+10:00</updated><title type='text'>New Computer</title><content type='html'>After much contemplation I have finally chosen my new computer.  I went with the Geforce 6800 GT mainly becasue of Pixel Shader 3.0 support and as I prefer the stability of NVidia's drivers.&lt;br /&gt;&lt;br /&gt;I've bought Half-Life 2 and Rome:Total War recently.  I'll put up a review of HL2 when I finish it, I'm about half the way through and loving it.  It's definately in my top 5 games of all time.  The way the graphics, physics, sound come together to create one of the best atmosphere's in a game to date is superb.  Rome: Total War is another game which has lived up to it's hype.  The graphics engine is simply amazing, especially it's level of detail which let it run smoothly on my old Geforce 3 and my new one.&lt;br /&gt;&lt;br /&gt;Work is going well, I'll be working on MyVirtualHome (&lt;a href="http://www.myvirtualhome.com.au"&gt;www.myvirtualhome.com.au&lt;/a&gt;) until mid 2005.  I'm learning a lot every day and enjoying every bit of it.  It's been one year since I started in the games industry and I'm loving every minute.&lt;br /&gt;&lt;br /&gt;That's about all, I'm moving house over the next few weeks, after which I'm going to get into a routine and start coding my space game, it's all coming together in my head and I've written a simple design doc.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-110120093202876096?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/110120093202876096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=110120093202876096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/110120093202876096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/110120093202876096'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2004/11/new-computer.html' title='New Computer'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-109386974988257285</id><published>2004-08-31T15:38:00.000+10:00</published><updated>2004-08-30T22:46:44.440+10:00</updated><title type='text'>New Job</title><content type='html'>I'm now 2 months into my new job at Auran. Everything is going well and it is great to be in an experienced team. I can see I have a lot to learn but I'm not having any troubles with the work I am doing which is great.&lt;br /&gt;&lt;br /&gt;I'm undecided as to what to do in my personal time now. I have started to learn OGRE and I'm looking at putting together a proof of concept for a space game I've been thinking of making for a while. It is a good opportunity to both work on a new style of game while learning OGRE at the same time.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-109386974988257285?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/109386974988257285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=109386974988257285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/109386974988257285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/109386974988257285'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2004/08/new-job.html' title='New Job'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-108623869511959701</id><published>2004-06-03T14:54:00.000+10:00</published><updated>2004-06-03T14:58:15.120+10:00</updated><title type='text'>At Work</title><content type='html'>Well I'm at work at the moment.  Working through some bugs in our code, there's nothing more fun than spending a whole day fixing a handful of bugs :).  It's my girlfriend's birthday tonight so I'm taking her out for dinner.  Our game is coming along nicely at the moment, we've been a bit slow to get started since E3 but we are on track now.  My game at home "Preemptive Strike" is coming along slowly as usual, I'm writing a new terrain engine for it at the moment.  Once I've finished that I'm going to start adding some more gameplay and see if I can actually make the game fun.&lt;br /&gt;&lt;br /&gt;The Medieval Fayre is on this weekend, I wouldn't mind heading along to see it, depending on how much spare time I have.  I still want to get back into archery and get myself a bow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-108623869511959701?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/108623869511959701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=108623869511959701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/108623869511959701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/108623869511959701'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2004/06/at-work.html' title='At Work'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7175706.post-108609220452965611</id><published>2004-06-01T22:15:00.000+10:00</published><updated>2004-06-01T22:16:44.530+10:00</updated><title type='text'>First Blog</title><content type='html'>So, how you doing.  My name is Alistair and I've decided to write this to keep a record of stuff I'm doing.  I'm currently a games programmer in Australia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7175706-108609220452965611?l=doolwind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://doolwind.blogspot.com/feeds/108609220452965611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7175706&amp;postID=108609220452965611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/108609220452965611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7175706/posts/default/108609220452965611'/><link rel='alternate' type='text/html' href='http://doolwind.blogspot.com/2004/06/first-blog.html' title='First Blog'/><author><name>Doolwind</name><uri>http://www.blogger.com/profile/10473293441057355649</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
