<?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-7472467918818089852</id><updated>2012-01-11T00:08:03.422-08:00</updated><category term='chad queen'/><category term='google ai contest'/><category term='Microsoft'/><category term='milestone'/><category term='aaron'/><category term='bartosz kijanka'/><category term='meshes'/><category term='chris taylor'/><category term='GDC'/><category term='sounds'/><category term='Dave Mark'/><category term='shana'/><category term='localization'/><category term='Demigod'/><category term='Age Of Empires: Online'/><category term='lua'/><category term='gautam vasudevan'/><category term='effects'/><category term='Kings and Castles'/><category term='PC Gamer'/><category term='sound'/><category term='patrick'/><category term='AI'/><category term='unit creation'/><category term='animation'/><category term='AiGameDev.com'/><category term='code'/><category term='GamesCom'/><category term='Supreme commander 2'/><category term='c++'/><category term='patch'/><category term='stardock'/><category term='gas powered games'/><category term='achievements'/><category term='forged alliance'/><category term='play test'/><category term='vacation'/><category term='programming'/><category term='PAX'/><category term='square enix'/><category term='screen shot'/><category term='servo'/><category term='Supreme commander'/><category term='voice over'/><category term='squareenixdave'/><category term='dru'/><category term='neural network'/><category term='coding'/><category term='pathing'/><category term='Steam'/><category term='model'/><category term='pathfinding'/><category term='matt'/><category term='gordon'/><category term='gamereplays'/><category term='Mike Swanson'/><title type='text'>Life of a Newbie Game Developer</title><subtitle type='html'>A chronicle of my experience as a new game developer after being a long time modder.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7168084693759720625</id><published>2011-09-27T22:06:00.000-07:00</published><updated>2011-09-27T22:06:06.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural network'/><category scheme='http://www.blogger.com/atom/ns#' term='Age Of Empires: Online'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Reflection</title><content type='html'>I have a habit of keeping a notepad next to my keyboard at work and using it to take notes, write out debug info I need, or making a list of things I need to get done. Not too long ago I went through my first full pad. Instead of throwing it away I decided to hang onto it. Judging from the last couple of pages it appears I finished with the pad back in April or May, since it has references to the work I did on the Protip notification system in Age of Empires: Online.&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-B7iAhLZfnEE/ToKj0y7jR_I/AAAAAAAAA0I/125C1PizDtk/s1600/Photo+Sep+27%252C+9+31+18+PM.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-B7iAhLZfnEE/ToKj0y7jR_I/AAAAAAAAA0I/125C1PizDtk/s200/Photo+Sep+27%252C+9+31+18+PM.jpg" width="149" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;First page of notepad&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;It is interesting looking back and seeing where it all started, or at least close to where it all started. The first page of the notepad has engineering tasks for Supreme Commander 2 on it. Tasks that included engineer repairing while idle, making their auto repair functionality prioritize by need and veterancy, and a bug where engineers would keep moving along their last vector when told to reclaim. There are even scribbles where I was trying to figure out why the engineers were behaving the way they were.&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-iQk-V3ykS1c/ToKlefObkCI/AAAAAAAAA0M/o4MkIpQq4pk/s1600/Photo+Sep+27%252C+9+40+46+PM.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-iQk-V3ykS1c/ToKlefObkCI/AAAAAAAAA0M/o4MkIpQq4pk/s200/Photo+Sep+27%252C+9+40+46+PM.jpg" width="149" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Land AI improvement&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Seven pages in you can see where GPG decided to give me a shot at fixing the AI. I gave each AI type a page where I outlined some of the things I wanted to fix specifically for that AI. As you can see for the Land AI the research needed to be re-worked, it needed reactionary platoons, and they needed help woth platoon retreating (although, that was more of an all around issue). There are pages of notes specific to AI.&lt;br /&gt;&lt;br /&gt;Then, of course, many more pages in is my first written down idea for the AI Team Manager. The Team Manager for the Supreme Commander 2 AI was not originally planned to even be in Supreme Commander 2. I came up with the idea while brainstorming for the Kings and Castles AI. Since Kings and Castles did not have a functioning AI at the time, I decided to implement my idea in Supreme Commander 2. It turned out so well and ended up being such a nice feature that I was allowed to release it for Supreme Commander 2.&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; float: left; margin-bottom: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-iTYJ077jLSY/ToKn-PqxasI/AAAAAAAAA0Q/jjlWq6ZoWjs/s1600/Photo+Sep+27%252C+9+49+31+PM.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-iTYJ077jLSY/ToKn-PqxasI/AAAAAAAAA0Q/jjlWq6ZoWjs/s200/Photo+Sep+27%252C+9+49+31+PM.jpg" width="149" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;KnC prototyping&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-RLfpjb3zyKs/ToKn_GezgOI/AAAAAAAAA0Y/CkvfvAUfMGw/s1600/Photo+Sep+27%252C+9+50+37+PM.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-RLfpjb3zyKs/ToKn_GezgOI/AAAAAAAAA0Y/CkvfvAUfMGw/s200/Photo+Sep+27%252C+9+50+37+PM.jpg" width="149" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;More KnC ideas&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I also wrote out other things I had planned for the Kings and Castles AI. Lots of other things that I still have yet to implement. Things like the platoon manager, the frontline manager, improvements to the AIs influence mapping system. I even wanted to increase the AIs use of neural networks.&lt;br /&gt;&lt;br /&gt;I still hope to get to implement them at some point. Whether it is on another Supreme Commander game, a complete overhaul of the Age of Empires: Online AI, or on an entirely new IP, it doesn't matter to me.&lt;br /&gt;&lt;br /&gt;What matters is that AI is fun, challenging, and just plain awesome.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7168084693759720625?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7168084693759720625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/09/reflection.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7168084693759720625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7168084693759720625'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/09/reflection.html' title='Reflection'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-B7iAhLZfnEE/ToKj0y7jR_I/AAAAAAAAA0I/125C1PizDtk/s72-c/Photo+Sep+27%252C+9+31+18+PM.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-1215403108724232914</id><published>2011-08-30T20:48:00.000-07:00</published><updated>2011-08-30T20:48:47.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Age Of Empires: Online'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Two weeks later</title><content type='html'>Age of Empires: Online has been out for two weeks now, but it doesn't feel like we have released at all. We are still working like we are still in production. We are working on the next civilization, the next booster, as well as working on improving features and bug fixes. The pace of work hasn't changed a bit.&lt;br /&gt;&lt;br /&gt;AoE:O has been a huge success so far. The number of people playing the game is staggering. We had an office pool going for how many people would play in the first 24 hours after launch. Microsoft gave us their estimate and most guesses in the office were within that range. Nobody was even close.&lt;br /&gt;&lt;br /&gt;The launch went very smoothly. There haven't been any huge game breaking bugs. There are, of course, some minor issues, but we are tackling those as quickly as possible. I wish I could share more detail about what is coming.&lt;br /&gt;&lt;br /&gt;This project is quite different than Supreme Commander 2. Sure, we worked on it after launch, but not to this level. We are planning things and working on things you guys wont see for months. Even though the game has launched it still seems like we are in the production phase. Will take some getting used to.&lt;br /&gt;&lt;br /&gt;Also, tomorrow is my two year anniversary at Gas Powered Games!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-1215403108724232914?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/1215403108724232914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/08/two-weeks-later.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1215403108724232914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1215403108724232914'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/08/two-weeks-later.html' title='Two weeks later'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7472457978553187747</id><published>2011-07-10T16:26:00.000-07:00</published><updated>2011-07-10T16:26:19.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Age Of Empires: Online'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Getting close</title><content type='html'>In a little over a month Age of Empires: Online will be released to the world. This will mark the second shipped game to go on my resume in as many years. Many game developers spend that long, or longer, just getting one shipped game, so I feel very fortunate have had the opportunities I have had thus far.&lt;br /&gt;&lt;br /&gt;The game is looking better and better every day. We have managed to clean up a lot of the code base which is making our tasks easier as time goes on. I haven't had much game play work to do on this project, which has been frustrating, but understandable given the nature of the project. There have been glimpses of my work on the few video blogs that are out, such as the Defense of Crete UI and the player trading UI. It is amazing the amount of work that goes into seemingly simple tasks.&lt;br /&gt;&lt;br /&gt;Work has already started on the design and art side for the next civilization, while the programmers (such as myself) continue to work on bug fixing and new feature work. Fixing bugs in this engine has proven to be complicated and tiring, but that is probably because the engine was created by another company and is organized quite differently than the SupCom engine. It has taken quite a while to get used to.&lt;br /&gt;&lt;br /&gt;There is a light at the end of the tunnel, for this phase at least. With a game like this there really isn't an end date. Patches will continue to be released at regular intervals as well as new civilizations and other content. This project wont be truly over for some time yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7472457978553187747?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7472457978553187747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/07/getting-close.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7472457978553187747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7472457978553187747'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/07/getting-close.html' title='Getting close'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7361655404379286846</id><published>2011-05-08T19:25:00.000-07:00</published><updated>2011-05-08T19:28:24.030-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural network'/><category scheme='http://www.blogger.com/atom/ns#' term='Dave Mark'/><category scheme='http://www.blogger.com/atom/ns#' term='GDC'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Game Theory</title><content type='html'>As I mentioned on Twitter (and probably Facebook), I have been studying game theory lately in the hopes of finding a use for game theory concepts in AI.I picked up a couple of books from my local library on the subject of game theory. The first book wasn't very useful at all. It would have been helpful if I had no idea what game theory was, but since I had a basic understanding of it the entire book was basically a review of things I already knew. I didn't get very far into the second book before another book I had ordered from Amazon arrived at the office.&lt;br /&gt;&lt;br /&gt;After mentioning my interest in game theory as it relates to AI on twitter Dave Mark (&lt;a href="https://twitter.com/#%21/IADaveMark"&gt;@IADaveMark&lt;/a&gt; - President and Lead Designer, Intrinsic Algorithms) said I would find a lot of useful information. He suggested that I view his slides from his GDC talk last year and to see if I could gain access to the GDC vault to view his presentation. I was able to view the slides, but was unable to find anyone I knew with access to the GDC vault (No matter, I got the gist of it from the slides). He also suggested I grab a copy of his book. Now, I know how that looks, but seriously, his is the only book I can find that covers the topic of game theory in AI.&lt;br /&gt;&lt;br /&gt;The book arrived last Monday and I just finished this afternoon and I have to say, I am glad someone else out there gets it. His entire book is dedicated to to creating dynamic behaviors in game AI where the AI reacts to situations and events as humanly as possible. Most, if not all, of the other AI books I have looked at simply go over the various tools you can use to get a functioning AI (decision trees, state machines, and such), but fail to mention how to get the AI to behave in a believable fashion.&lt;br /&gt;&lt;br /&gt;All of that being said, I'm not sure I am 100% sold on some of the methodology. One of Dave's comments to me was that after reading the info I may decide that neural networks are no longer worth the trouble. And, while I do see the appeal, I would have to disagree. Dave and I are out to achieve the same thing; feed the AI with various info so that it can make an informed intelligent decision. Dave achieves this by creating a series of complex formulas designed to assign priorities to a number of choices the AI can make. The problem with this approach is that you have to create the formulas. With neural networks those associations are made for you. Once you have neural network code that works it is relatively simple to create new networks that take in available information and returns an action to take.&lt;br /&gt;&lt;br /&gt;I am not saying my ideas on AI design are better than Dave's or even that his ideas are better than mine, in fact, a good mix of both is probably the best solution. One thing is for certain, though, I certainly have a lot more ideas about how to create even better AI systems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For those interested, Dave Mark's book can be found here: &lt;a href="http://amzn.to/iklz0g"&gt;http://amzn.to/iklz0g&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7361655404379286846?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7361655404379286846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/05/game-theory.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7361655404379286846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7361655404379286846'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/05/game-theory.html' title='Game Theory'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4405640270556399588</id><published>2011-04-25T20:28:00.000-07:00</published><updated>2011-04-25T20:28:31.272-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Age Of Empires: Online'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Back in the thick of it</title><content type='html'>&lt;span id="goog_340028635"&gt;&lt;/span&gt;&lt;span id="goog_340028636"&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;/a&gt;Things have been very busy lately. Microsoft handed Age of Empires: Online development to us not too long ago, which meant that are current production schedule went out the window. Most of my work has still been in the UI and the backend support for the UI. Thankfully, I worked out a better work flow with Steve, so it is a lot easier on me and allows us to both be working on the UI at the same time. Previously, I would work out the initial layout, do all the supporting code, then send it to Steve. It would then come back to me to update the code for whatever changes Steve had made to my layout. It was quite frustrating. That and UI is not my favorite thing in the world, but the backend stuff is interesting.&lt;br /&gt;&lt;br /&gt;This project has been quite interesting on the whole. I have had an opportunity to learn a lot more on this project than I have on the Supreme Commander 2 project. I think the reason for that has been because, unlike the SupCom 2 project, I am creating parts of the game from scratch and I own that part of the engine. This also means my code gets reviewed more often and more closely, which gives me the opportunity to learn. Thankfully, I haven't done anything that has made James want to throw me out a window, yet.&lt;br /&gt;&lt;br /&gt;It looks like Microsoft is in the process of expanding the beta. Not sure if Curse.com still has keys left, but if you aren't in the beta yet head on over there and sign up.&lt;br /&gt;&lt;br /&gt;One last piece of info. Servo has made a post over on the GPG forums asking people to submit any known game exploits to him so we can compile a list. No guarantees, of course, but do it anyway. His post can be found here: &lt;a href="http://forums.gaspowered.com/viewtopic.php?p=895485#p895485"&gt;http://forums.gaspowered.com/viewtopic.php?p=895485#p895485&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4405640270556399588?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4405640270556399588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/04/back-in-thick-of-it.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4405640270556399588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4405640270556399588'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/04/back-in-thick-of-it.html' title='Back in the thick of it'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7204553480490431513</id><published>2011-02-13T17:03:00.000-08:00</published><updated>2011-02-13T17:03:03.258-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='google ai contest'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='AiGameDev.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Been a while</title><content type='html'>Wow, it has been a while since I have posted anything. My apologies for that, but, honestly, there has not been a whole lot to write about until recently. Let me get you up to speed.&lt;br /&gt;&lt;br /&gt;Shortly after my last blog entry I entered the Google AI contest. I didn't get to put a ton of time into it, but winning the contest really wasn't my goal. I had two goals going into the contest. One goal was to beat the AIGameDev.com bot created by Alex Champandard. The other goal was simply to create a bot that functioned and did relatively well. I did and up beating the AIGameDev.com bot (he placed 633, I placed 431), so goal number one complete.&lt;br /&gt;&lt;br /&gt;As far as the second goal, my bot functioned well and placed in the top 10% of the contest, so I consider that a good showing for the relatively small amount of work I put into it. But, it was more than that. This was the first time I coded something like this from scratch. Most of the work I have done up until that point felt more like modding to me. Sure, I created the AI Overlord, but that wasn't really all that big and really not that hard at all. No, I really wanted to challenge myself to make something from, essentially, nothing. No existing code to look at. Nothing to cut and paste from. Just pure, out of my head, code. I even had a co-worker look at it for me when the contest was over to get a code review. I know, it sounds a little paranoid (for lack of a better term), but I really needed to see if I could do it.&lt;br /&gt;&lt;br /&gt;The rest of October was spent porting code from SupCom 2 over to Kings and Castles and getting it to the point that it didn't cause the game to crash. Then came the new project. Most of November and December were spent doing lots and lots of documentation and investigation. That is why I said there really wasn't much to write about. Who wants to hear about me having to investigate code and write documentation? Heck, who wants to be the person writing all the documentation? I learned I don't like to be that guy. That was also a part of why I entered the contest. I needed a project to work on and it came at a good time.&lt;br /&gt;&lt;br /&gt;More recently, I have started getting to code things again. For now, I have mostly been working on UI stuff, which has been interesting. At least I am getting to work on code again. I think my upcoming project assignments will put me back onto the game play side of things again, and I truly look forward to that. I can't wait to be able to share more detailed info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7204553480490431513?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7204553480490431513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2011/02/been-while.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7204553480490431513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7204553480490431513'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2011/02/been-while.html' title='Been a while'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5357888490876360708</id><published>2010-10-10T20:59:00.000-07:00</published><updated>2010-10-10T20:59:17.727-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural network'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='AiGameDev.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><title type='text'>Patch 1.23</title><content type='html'>Patch 1.23 came out for Supreme Commander 2 last week and brought with it the infinite build queue system. This system allows players to queue up build commands as much as they want, whether they have the resources for it or not. This means players don't have to wait for the resources to be available before placing a building and don't have to check their factories to see if they paused themselves. I think that was worth calling it a "big change", don't you?&lt;br /&gt;&lt;br /&gt;Patch 1.23 also included the new AI neural networks. This has given the AI's platoons a much needed boost to their intelligence. So much so that they may have become a little too timid. Previously, the AIs platoons would move back and forth because of a bug in the neural networks that would give them bad data and make them make bad decisions. Now, the neural networks have become smart enough to recognize bad decisions and it makes them not want to take any risks. They always want to have the advantage.&lt;br /&gt;&lt;br /&gt;The solution, in my opinion, is the yappy dog approach. You know, that annoying small dog that thinks it is a doberman. We can take a queue from the small yappy dog and make the AIs platoons think they are bigger than they really are. When we get the data for the platoon and enemies for the neural network we can adjust the platoons numbers by a multiplier, say 25%. So, if the platoon had 100 DPS, we would raise that to 125 and send that data to the neural network. That way, the AIs platoons still get valid data back from the neural network and will still run if they are greatly outnumbered. But, if it is close, they will attack. This will give players the sense that the AI is being more aggressive and will push the AI to take more chances. Now, this is no guarantee that this change will make it out in a patch, that isn't up to me.&lt;br /&gt;&lt;br /&gt;I spent most of last week integrating all of my recent AI changes over to Kings and Castles in preparation for full production. I can't wait to get started. I will be the Lead AI Engineer on the project so this will truly be my baby and I hope to get the opportunity to really push the limits of RTS AI design.&lt;br /&gt;&lt;br /&gt;Lately, I have been trying to become more active in the AI community and hope to utilize AIGameDev.com as a resource to help me take RTS AI to the next level. So far, I think Supreme Commander 2's AI is a great starting point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5357888490876360708?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5357888490876360708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/10/patch-123.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5357888490876360708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5357888490876360708'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/10/patch-123.html' title='Patch 1.23'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6174126828468977681</id><published>2010-10-02T15:19:00.000-07:00</published><updated>2010-10-02T15:19:40.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural network'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><title type='text'>Neural nets in more detail</title><content type='html'>Since so many of you have requested more info on how the neural nets in Supreme Commander 2 work I have decided to make another blog entry to go into the neural nets in more detail. Actually, I am a bit surprised I haven't made a blog entry about them already.&lt;br /&gt;&lt;br /&gt;Supreme Commander 2 contains 4 neural networks, each of them consisting of 3 layers of neurons (input, hidden, and output) and learn via backpropagation. There is a neural network for Land, Naval, Fighter, and Bomber/Gunship. The neural networks are used for AI platoon fight or flight mechanics which are used by the bulk of the AIs combat platoons.&lt;br /&gt;&lt;br /&gt;When a platoon is formed it contacts the AI's strategic manager and requests a place to attack. The strategic manager looks at the map and chooses a place to attack based on a risk versus reward ratio. It also checks for pathability. Once it has chosen a spot it generates a path using good old A* and returns the path to the platoon. The platoon then sets up a series of move orders to take them to the attack location.&lt;br /&gt;&lt;br /&gt;Up until now the neural networks have not even come into play (although, that is one thing I would like to change in KnC). Once the platoon encounters an enemy it gathers information about the enemies in the area and it also gathers information about allies in the area. Note the difference between live and training. In training the platoon only gathers information about itself, in live the platoon gathers information about all allies (including player controlled units) in the area.&lt;br /&gt;&lt;br /&gt;It then takes all of that information and feeds it into the input neurons of the neural network and feeds the network forward. It then gathers the outputs from the neural network and evaluates the output. Each output corresponds to an action that the platoon can take such as, attack structure from range or attack highest value target. Each output is going to have a value of between 0.0 and 1.0 with below 0.5 being a bad decision and above 0.5 being a good decision. If there are no good decisions returned by the neural network it means run away. After a small delay the enemy and ally data are gathered up again, feed to the neural network, and a new decision is made.&lt;br /&gt;&lt;br /&gt;The neural networks are trained by having the AI fight it out repeatedly and backpropagating the results. At the end of a match the game writes out the new neural networks to a file. The game runs using a few special command lines which do the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set the game to run at +/- 50 sim speed.&lt;/li&gt;&lt;li&gt;Automatically restart the game when it ends.&lt;/li&gt;&lt;li&gt;Enable neural network training.&lt;/li&gt;&lt;li&gt;Set which map to play on.&lt;/li&gt;&lt;li&gt;Sets up the AIs.&lt;/li&gt;&lt;/ul&gt;This allows me to run neural network training 24 hours a day on a dedicated machine. For Kings and Castles I want to look at having several computers running training at once and merging the results. The more iterations the neural networks get the better they can be. This is because, during training, the platoons are choosing actions at random and recording the results. It can take a long time to test every action in large set of circumstances. &lt;br /&gt;&lt;br /&gt;Hopefully this answers most, if not all, the questions you all had.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6174126828468977681?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6174126828468977681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/10/neural-nets-in-more-detail.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6174126828468977681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6174126828468977681'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/10/neural-nets-in-more-detail.html' title='Neural nets in more detail'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7580684176554005642</id><published>2010-09-30T21:12:00.000-07:00</published><updated>2010-09-30T21:13:29.472-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural network'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><title type='text'>Finally!</title><content type='html'>A couple of weeks ago I made a list of things I wanted to work on to start prototyping things for the Kings and Castles AI. So far, I made it to item number one. The first thing I wanted to work on was the neural net system. I was never really happy with it and, up until today, I was thinking about pulling it out of Kings and Castles. So, I decided I wanted to go into the core of the neural net system and see what might be up.&lt;br /&gt;&lt;br /&gt;Up until two weeks ago I had been treating the core neural net system as a black box. I had assumed that the system was working as intended. In hindsight, that may not have been the best idea. Now, I know patch 1.2 says that I improved the neural nets, and I did, sort of. I worked on a layer above the neural nets. I added new inputs and messed with some other stuff, but I never messed with the core neural net code. I also retrained the neural networks by having them play against each other over and over while having the AI platoons choose actions at random and feeding the results back through the neural network.&lt;br /&gt;&lt;br /&gt;Before I go much further I should take the time to explain what a neural network is for any of you that may have no idea what it is. A neural network is basically our attempt at mimicking a cluster of neurons in code. The neurons in a brain receive signals from several other neurons and if those signals are above a threshold, the neuron fires off. A neuron in a neural network is much the same. The neurons in the neural networks that Supreme Commander 2 uses are set up as a feed forward network.&lt;br /&gt;&lt;br /&gt;A feed forward network has layers of neurons; an input layer, one or more hidden layers, and an output layer. The input layer takes the inputs, feeds them to the hidden layer which then feeds to the next hidden layer until they finally feed to the output layer. When a neuron receives input from a neuron in a higher layer that input is weighted. These weights are how the neural networks learn. The networks learn which weights are more important for which outputs. They accomplish this via back propagation, which is where I found my first issue with the neural networks in Supreme Commander 2.&lt;br /&gt;&lt;br /&gt;Back propagation basically goes back through the neural network and adjusts the input weights so that next time a more correct answer will be chosen. In order to do that you have to take the inputs from when the decision was made using the neural network and put them back into the neural network. You then feed the network forward so that the outputs are the same as when the decision was reached last time. Then the neural network goes back through, from the output layer to the input layer, and adjusts the weights as needed. Unfortunately, the function that was being called forgot the feed forward step, which completely invalidates any learning that was trying to be done.&lt;br /&gt;&lt;br /&gt;In order to cope with this, there was code placed that would force the platoon to take an offensive action regardless of what the neural nets said if certain parameters were met. This is why the AI's platoons were seen to go back and forth after patch 1.2, I had forgotten to uncomment those sections of code. Even with that fixed, the neural networks still were not giving me the output I expected, until this afternoon.&lt;br /&gt;&lt;br /&gt;I finally found the last piece of the puzzle. When a platoon encounters resistance it gathers up data about it's platoon and any enemies in the area. It then hands this info off to the neural network and gets an answer about what to do. When the platoon dies, kills all the enemies in the area, or hits its re-evaluation timeout, it sends the results to the neural network so that it can learn. It gets the results by doing the same thing it did when making the decision. It gathers the information about the platoon and the enemies in the area. The problem is, by the time it goes to report back to the neural network there could be a lot more enemies in the area. This skews the results.&lt;br /&gt;&lt;br /&gt;So, I decided to try something different. When the platoon encounters resistance it gathers information about the platoon and enemies in the area. It also stores all of the enemies in the area. When it goes to report back to the neural network it only reports about the enemies that were in the area when the decision was made. We don't care about the platoon of gunships that just arrived after we killed that mass extractor, we only care that the decision to kill the mass extractor was a good one because it is now dead. We will deal with the gunships when we re-evaluate again. This change has made me a believer in neural nets again. They are performing exactly as I would expect and the hard-coded situations that force the platoons to attack are a thing of the past.&lt;br /&gt;&lt;br /&gt;Before I left for the evening I had one more flash of insight. Among the hard-coded situations was one that made the AI's platoons attack an ACU if it saw one. Since I don't want those hard-coded situations anymore I had to come up with a way to still have that behavior, but not make it so two tanks think they can take on an ACU. Now, you would think the neural nets would learn that taking out the ACU is a good thing, and they probably would if it weren't for that fact that the ACU goes nuclear when it dies and kills almost the whole platoon that took it down. So, I made a change where if a platoon was told to attack the ACU during training and killed it, it will be bumped up as a good decision. This will make it so that those two tanks that encounter an ACU will run as expected, but if a Monkeylord finds your ACU, it is toast.&lt;br /&gt;&lt;br /&gt;As an aside, I am being interviewed live over the internet by Alex Champandard of AIGameDev.com Sunday October 10th at 1PM PST. It will be available for viewing by Plus and Premium members of the site. So, if you happen to subscribe (Plus membership is like $7 a month), you should drop in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7580684176554005642?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7580684176554005642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/09/finally.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7580684176554005642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7580684176554005642'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/09/finally.html' title='Finally!'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8359433446946766111</id><published>2010-09-04T10:17:00.000-07:00</published><updated>2010-09-04T10:17:09.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>One year down</title><content type='html'>August 31st was my 1 year anniversary date with Gas Powered Games. My how the time has flown. This time last year I was working mostly in Lua wiring up the two new characters for Demigod. A couple of weeks after that I was learning C++. Now, a year later, I am spending most of my time in C++. This whole situation still has a dream-like quality to it. I still can't really believe I am here.&lt;br /&gt;&lt;br /&gt;Patch 1.20 went out last week, finally. If you haven't seen the patch notes, you can find them here: &lt;a href="http://www.supremecommander2.com/na/blog/2010/08/30/supreme-commander-2-patch-notes-v1-20/"&gt;http://www.supremecommander2.com/na/blog/2010/08/30/supreme-commander-2-patch-notes-v1-20/&lt;/a&gt;. A lot of changes went into this patch. I think my favorite change has to be the new AI options menu. Being able to custom tailor an AI like that is awesome and should be a standard feature for any game that features a skirmish mode.&lt;br /&gt;&lt;br /&gt;Work still has not stopped on Supreme Commander 2. In fact, there was a video released yesterday that showed off a few things that will be included with the upcoming DLC pack. You can find the video on GameSpot's site here: &lt;a href="http://www.gamespot.com/pc/strategy/supremecommander2/video/6275172/supreme-commander-2--strategies-from-team-gpg"&gt;http://www.gamespot.com/pc/strategy/supremecommander2/video/6275172/supreme-commander-2--strategies-from-team-gpg&lt;/a&gt;. In addition we are working on fixing the bugs that have been brought up after the latest patch as well as work on other super secret stuff that I am sure you will all enjoy.&lt;br /&gt;&lt;br /&gt;More videos to come, more cool patches on the way, and the epic return of the Monkeylord is drawing nearer. It is a good time to be a SupCom fan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8359433446946766111?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8359433446946766111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/09/one-year-down.html#comment-form' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8359433446946766111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8359433446946766111'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/09/one-year-down.html' title='One year down'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3550571808470610639</id><published>2010-08-01T13:18:00.000-07:00</published><updated>2010-08-01T13:18:56.538-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='squareenixdave'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='Mike Swanson'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>The one drawback</title><content type='html'>After working for Gas Powered Games for 11 months I have found only one drawback to this job. While patching Supreme Commander 2, there have been many times when the game is so much better on my dev machine than the version installed at home. This was especially true back before the first AI patch was released. I wanted the patch to be released as much as any of the Supcom 2 fans just so I could have the improved AI on my home machine. The same is true of the upcoming patch. There are so many game improvements that I can't wait to be able to play with at home.&lt;br /&gt;&lt;br /&gt;Recently &lt;a href="http://twitter.com/squareenixdave"&gt;@squareenixdave&lt;/a&gt; posted that some new news regarding Supreme Commander 2 should be released soon and I truly can't wait. We have been hard at work doing all sorts of things I wish I could post here. For me, the news can't come fast enough.&lt;br /&gt;&lt;br /&gt;Over the past month I have been writing down ideas that I would like to implement for the Kings and Castles AI (assuming I am in charge of it). I have a habit of keeping a notebook nearby and just writing down any wild idea I get. Lately, I have been taking those ideas and trying to form them together into a cohesive plan. I still have a lot of refining to do before I actually put it all into a document.&lt;br /&gt;&lt;br /&gt;In Supreme Commander 2 the addition of neural nets gave the AI some tactical thinking capability. It could decide if a single platoon should run or engage and, if it chose to engage, which target to focus fire on first. For Kings and Castles I not only want to improve upon that, I want to focus on the AI's strategy game. I don't want the AI to decide it has enough troops to send out and then send them somewhere solely based on threat values. I want the AI to keep track of enemy threats on the map and when it finds one that is a high priority I want the AI to grab nearby platoons, already in the field, and send them to take the threat out.&lt;br /&gt;&lt;br /&gt;Having the AI oversee its platoons, rather than having the platoons basically doing their own thing as they are now, would allow the AI to react faster to high threats. If the AI found an group of enemy long range artillery in range of it's main base it could find all of its nearby platoons that are on lower priority missions and redirect them to this new threat. If the AI sent out a platoon on a low priority mission and suddenly found a large group of incoming enemy units, it could immediately bring that large platoon back to take up a defensive position.&lt;br /&gt;&lt;br /&gt;I also don't want to the AI to see threats as single places on the map. I want to improve the AI's threat map by giving units a threat range. That way, those long range artillery (using SupCom 2 as an example) can not only be seen as a large static threat, but as a threat with a long range. Using the threat map for this purpose could give the AI a much better sense of safe and dangerous areas, threats that are very dangerous, and a better sense of who has the better map control. Best of all, it would be cheap to implement performance wise.&lt;br /&gt;&lt;br /&gt;Next on my list is to give the AI the concept of front lines. This would also help give the AI a sense of map control as well as allow the AI to post units near the front lines in an attempt to hold them. I want to move away from the AI hording units in its base before sending them out onto the battlefield and instead have the AI build units, send them to forward position near the front line, and send attack waves from there. That way, the AI is not constantly fighting to retake land it had under its control just a minute ago. It would also allow the AI to easily implement advanced tactics such as PD or TML creeps (again, using SupCom 2 as an example) without having to code anything specific to handle it. Just defend the front line.&lt;br /&gt;&lt;br /&gt;My goal is to make people say "Wow, I can't believe an &lt;i&gt;AI&lt;/i&gt; just did that." I don't necessarily want the AI to wipe the floor with average joe player by default, that isn't any fun. But, I do want the option to make the AI very hard to be there for the hardcore players. It would make my month if Mike Swanson walked into my office and said that they need to give the normal AI a handicap to make it accessible by average joe player. Hell, it would probably make my year.&lt;br /&gt;&lt;br /&gt;This is just a small sample of the ideas rattling around in my head. I hope to, over the next few months, refine more ideas and get a battle plan together for truly improving the AI system. Chris seems to be on board with it so far. I can't wait to see some of these ideas in action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3550571808470610639?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3550571808470610639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/08/one-drawback.html#comment-form' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3550571808470610639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3550571808470610639'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/08/one-drawback.html' title='The one drawback'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4070000436901086416</id><published>2010-07-08T22:47:00.000-07:00</published><updated>2010-07-09T11:31:25.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='PC Gamer'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Week off</title><content type='html'>I never thought I would see my face in an issue of PC Gamer magazine, but its happened. The latest issue of PC Gamer UK features an article about the recent improvements to the Supreme Commander 2 AI and the amount of praise it received is astonishing. However, I can't take all the credit. If it weren't for Dru the AI wouldn't have existed in the first place. He was hard at work on the AI before I even started at GPG. The way Dru set up the core of the AI made it easy for me to make the necessary changes to take the AI to the next level. Dru truly deserves as much credit for the current state of the AI as I do.&lt;br /&gt;&lt;br /&gt;I am currently on a well deserved, in my opinion, week off. My parents and 2 sisters are in town visiting for a couple of week and it has been a blast so far. This is the first time I have lived so far from the rest of my family, so getting a chance to see them has been great.&lt;br /&gt;&lt;br /&gt;I will be back to work next week finishing up some stuff for Supreme Commander 2 and then going back to the un-announced project. Busy, busy, busy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4070000436901086416?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4070000436901086416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/07/week-off.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4070000436901086416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4070000436901086416'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/07/week-off.html' title='Week off'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3689919525591975338</id><published>2010-06-19T16:46:00.000-07:00</published><updated>2010-06-19T16:46:39.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Human pinball</title><content type='html'>Things have been hectic over the past month. I have gone from SupCom 2, to Demigod, back to SupCom 2, to Kings and Castles, and now I am back on SupCom 2 and an un-announced project at the same time. Very, very busy. It is nice to have a variety of things to do, but being on 2 projects at one time is crazy. I end up getting questions from both projects (and KnC) throughout the day and my brain has to lurch from one project to another to find the answer.&lt;br /&gt;&lt;br /&gt;After working for GPG for nine and a half months, I have discovered that no matter how hard the assignment is, I love this job. Actually, I like the harder assignments (like getting ships to sink and leave wreckage) because it feels awesome when I finally finish and have it working.&lt;br /&gt;&lt;br /&gt;Variety is also nice. I can sit and work on AI for months at a time, but bug fixing is draining. It is nice to get a break from tracking and fixing bugs to do something else. On the un-announced project I am focusing on UI work which is quite interesting. Most of my work so far has been prototype stuff, but now I am going to start focusing on building out organized systems for all of the UI features. &lt;br /&gt;&lt;br /&gt;The time leading up to E3 was crazy. The frantic pace reminded me of milestone dates during the production of SupCom 2. If you haven't seen our E3 demo video, you can find it here: &lt;a href="http://www.youtube.com/watch?v=AB-Xdee1nN8&amp;amp;hd=1"&gt;http://www.youtube.com/watch?v=AB-Xdee1nN8&amp;amp;hd=1&lt;/a&gt;. Not bad for 4 and a half months of production. I can't wait until we get more assets in place and I get to start working on the AI. Big plans, oh yes.&lt;br /&gt;&lt;br /&gt;On the SupCom 2 front, patch 1.15 was released a little while back. After a lot of effort, skirmish save/load was finally put in place. Thankfully, this means putting skirmish save/load into KnC should be quite simple. We also got a couple of my pet issues fixed as well. 1) Replays stopping when a player leaves the game and 2) no version information in the replay file. There were also some minor AI changes. I wish I could give you some information about the upcoming changes, but alas, I cannot. You will just have to wait and see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3689919525591975338?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3689919525591975338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/06/human-pinball.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3689919525591975338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3689919525591975338'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/06/human-pinball.html' title='Human pinball'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3338919332645294285</id><published>2010-05-17T21:43:00.000-07:00</published><updated>2010-05-18T08:44:12.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander'/><category scheme='http://www.blogger.com/atom/ns#' term='chad queen'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>How the AI got to where it is now</title><content type='html'>I have been getting a lot of questions about what I did to the Supreme Commander 2 AI and why. I certainly have no trouble talking about the AI (ask my family or anyone I work with) so hopefully I can shed some light on what changed and maybe even what didn't make it...yet.&lt;br /&gt;&lt;br /&gt;Back in March I got received a list of bugs that were reported about the AI and was asked to give a time estimate on how long I thought it would take to fix them all. I was also asked to provide a list of things I would personally like to see fixed. It was a fairly long list with some of the issues being very broad ( like: "AI does not adapt to player strategy.") which I was very happy to see. Broad bugs can mean broad solutions. My reply was that I would need a month to go through and fix all of the issues. Now, I believe in the Scotty theory. When your boss asks you how long something will take, always add extra to your estimate.&lt;br /&gt;&lt;br /&gt;The day I was supposed to transition to working on the Supreme Commander 2 AI I was pulled aside by Chad (SupCom 2 engineering lead at the time) and he said the most beautiful words to me. He said I would have autonomy with regards to the AI. I don't remember if I giggled after he said that, but it would not surprise me if I had. Basically, I could do whatever I wanted with the AI as long as the bugs got fixed, there was an overall improvement in the AI, and I didn't kill perf or introduce any more bugs.&lt;br /&gt;&lt;br /&gt;Starting out, a lot of my time was spent fixing the various bugs. There were issues with the AI getting stuck in its starting build order and then not doing anything else. There was a bug that was preventing the threat build conditions from working at all (threat build conditions allow the AI to change behavior based on enemy threat). The AI had trouble with exclusions, factory upgrades, build queues, even just picking somewhere to attack. I probably spent a good solid week just working on some of the simpler bugs.&lt;br /&gt;&lt;br /&gt;Some of the bugs, however, were not so simple. You would think getting the AI to build an anti-nuke when it gets nuked would be simple, but you would be wrong. I had to write support for an OnDamaged event for the Event Manager (AI manager that controls what happens when certain events get triggered, such as when experimental research is obtained) that would get checked whenever an AI controlled unit took damage. This was something I could only dream of in SC/FA. This is the kind of change I really like.&lt;br /&gt;&lt;br /&gt;Reaction. Such a simple concept, but something that I think is underutilized by RTS AI. Simply making an AI react to things that the player does adds so much more immersion, especially if you do it right. Making the AI build shields when it sees an artillery being built or starts taking artillery fire. Making the AI build AA when it sees a lot of enemy air units. Making the AI send bigger and bigger waves as the game progresses. I am a huge fan of making an AI react, and react intelligently and I think some of the biggest gains in the AI came from this concept.&lt;br /&gt;&lt;br /&gt;The other system that gave the AI huge gains was the economy system. I discussed one of the changes in a previous blog post (the AI constantly taking from the same resource bucket over and over). There are two more changes that had significant impact. One change affects the AI late game. I noticed that the AI would end up having a huge amount of resources in its slush bucket, but was unable to build because its other buckets were empty. Now, every so often, the AI will check to see if it has more resources in its slush bucket than it has missing from its other buckets. If so, it will pull those resources from slush and distribute them into the other buckets. Now when you watch the AIs resource buckets late game they are almost always full.&lt;br /&gt;&lt;br /&gt;The other big econ change was to the reservation system. The reservation system is used by engineers to reserve resources for build orders. This prevents the situation where an engineer is given a build order, but the resources get used before the engineer can get into position. The problem is that these reservations were not always being removed when the engineer died. To prevent that, the resource manager now goes over all of its reservations every so often to make sure the unit that owns the reservation is still alive. So, the AI no longer ends up in the late game with 3000 mass worth of reservations for dead units.&lt;br /&gt;&lt;br /&gt;I think my favorite change, however, is the recent AI Overlord system. Playing against teamed AIs and seeing a massive group of units comprised of units from more than one AI just brings a smile to my face. This is another one of those changes I could only dream of in SC/FA and I am so glad it is finally here. The AI Overlord system is a manager that controls how the AI acts as a team. It ensures that all AIs on a team are attacking the same target, it allows the team members to group units together, it provides a system for a team member to call for help, and also has a system for team members to warn other team members when one of their OnDamaged events gets fired off (so if you start hitting one AI with artillery, the others on the team will know it and build shields in response).&lt;br /&gt;&lt;br /&gt;Of course, people want to know what things got cut from the AI. What did I want to do, but was not able. Honestly, that is a difficult question to answer. I never believe an AI is done, because there is always something else my twisted mind will come up with. I keep a word document scratch pad of sorts that I can access from home and the office. Whenever I get an idea, it goes on the scratch pad. There quite a few ideas on there both from before and after the latest AI updates went out. Anything that does not make it into Supreme Commander 2 you will surely find in Kings and Castles. Hopefully Square Enix will be willing to put some more time into the AI. Who knows what I could do with another month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3338919332645294285?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3338919332645294285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/05/how-ai-got-to-where-it-is-now.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3338919332645294285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3338919332645294285'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/05/how-ai-got-to-where-it-is-now.html' title='How the AI got to where it is now'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5343074955547696295</id><published>2010-05-06T20:16:00.000-07:00</published><updated>2010-05-06T20:16:21.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>Patch 1.14 is live</title><content type='html'>Patch 1.14 is live and in the wild. The patch debuts the AI Team Manager, a system that allows the AI to work together when on the same team. I am very excited to see this finally out in retail. I was able to do things that I could only dream of doing in SC/FA, like having the AIs group units from multiple AIs into one platoon to be controlled by one AI. They also pass the word along if they start taking Nuke or Artillery damage. I hope this makes the AI more fun to play against.&lt;br /&gt;&lt;br /&gt;Patch notes for 1.14: &lt;a href="http://store.steampowered.com/news/?feed=steam_updates&amp;amp;appids=40100"&gt;http://store.steampowered.com/news/?feed=steam_updates&amp;amp;appids=40100&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I spent a couple of days last week working in VB Script, something I haven't touched since High School, and hope to not have to do again for a while. It is kind of rewarding getting some features into an internal tool that have been wanted for quite a while, especially when they said it couldn't be done. I also had to work with 3dsMax scripts for the first time. It is always interesting trying to fix bugs in a language you have never used before, but it had to get done. I needed the exporters to work for....wait, I can't talk about that yet. Ha ha.&lt;br /&gt;&lt;br /&gt;I have also spent a good chunk of this week working on Demigod fixes. Apparently Stardock has sent us a list of bugs they would like to see fixed, and I am happy to oblige. It gives me a reason to kick some AI butt with Demon Assassin on work hours. I did manage to fix a bug that has been bothering me since the last patch, which is nice. As per usual, I don't have a time frame. I am hoping a build gets put together tomorrow and then it will have to go through Stardock QA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5343074955547696295?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5343074955547696295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/05/patch-114-is-live.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5343074955547696295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5343074955547696295'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/05/patch-114-is-live.html' title='Patch 1.14 is live'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3710897826274699518</id><published>2010-04-21T19:41:00.000-07:00</published><updated>2010-04-21T19:42:36.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Patch 1.12 is live</title><content type='html'>Finally, I think the AI will look the same on your machine as it does on mine. The bug that was causing the AI to repeatedly build things from factories was just a stupid little thing that was hard to track down, mainly because it would only happen in retail.&lt;br /&gt;&lt;br /&gt;For those of you who do not know, there are 3 possible builds of the game. If we want to be able to break into the code as it is running and see things like variable values and such, we make a Debug build. For most everything else we make a Release build. Release builds still have some debug info and also allow us to insert assertions for really strange behavior to let someone know that something that should never happen in the game just happened. Retail builds are what actually ships. These builds take a lot longer to make, which is the main reason devs use Release builds.&lt;br /&gt;&lt;br /&gt;So, when I went to test the reported issue of AIs building massive amounts of transports, I, of course, tested on a Release build. That is why I couldn't reproduce the bug. It wasn't until I played a game with my brother-in-law that I saw the bug for the first time. This is what led me to believe it was a Retail only issue. Now, thanks to patch 1.12, it should finally be fixed. It even gave me an opportunity to fix some other issues as well.&lt;br /&gt;&lt;br /&gt;Is the AI done? The AI is never done! I still have a list of things I would like to work on, if given the opportunity. We'll see what happens. &lt;br /&gt;&lt;br /&gt;Patch notes for 1.12:&lt;br /&gt;&lt;br /&gt;New Features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added a warning dialog when a player accesses multiplayer with modified data&lt;/li&gt;&lt;li&gt;Adjusted exploit handling for research during game initialization&lt;/li&gt;&lt;li&gt;Adjusted exploit handling for hotkey-triggered commands&lt;/li&gt;&lt;li&gt;Land AI will default to Air factories faster on non land maps&lt;/li&gt;&lt;li&gt;AI will build units from factories that are outside its primary base radius&lt;/li&gt;&lt;li&gt;AI platoons will loiter less and instead attempt to move to the best possible place to do damage&lt;/li&gt;&lt;li&gt;The starting base locations will now generate less econ threat to the AI causing the AI to more aggressively target buildings outside the starting base locations&lt;/li&gt;&lt;li&gt;The AI will more quickly respond to attrition, and retreat appropriately&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Fixes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed a potential crash encountered when entering the game summary screen with an AI present&lt;/li&gt;&lt;li&gt;Fixed an issue where the AI could repeatedly queue the same unit (especially transports)&lt;/li&gt;&lt;li&gt;Cybran AI will now properly research naval walking&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3710897826274699518?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3710897826274699518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/04/patch-112-is-live.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3710897826274699518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3710897826274699518'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/04/patch-112-is-live.html' title='Patch 1.12 is live'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3214784636382541415</id><published>2010-04-09T17:23:00.000-07:00</published><updated>2010-04-09T17:23:45.372-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><title type='text'>Video blog #9 is up</title><content type='html'>Kings and Castles video blog #9 is up for viewing. It has some nice video of the dragon in action and some beautiful landscape shots. Check it out here: &lt;a href="http://gaspowered.com/kingsandcastles/video-blog-9/"&gt;http://gaspowered.com/kingsandcastles/video-blog-9/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3214784636382541415?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3214784636382541415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/04/video-blog-9-is-up.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3214784636382541415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3214784636382541415'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/04/video-blog-9-is-up.html' title='Video blog #9 is up'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6770696740652208915</id><published>2010-04-08T19:44:00.000-07:00</published><updated>2010-04-08T19:46:13.643-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Steam'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Ranked patch is live, AI delayed</title><content type='html'>The ranked patch for Supreme Commander 2 went live about an hour ago. The AI didn't get enough testing to go into this patch, but I am hopeful for the next one. This is by no means a guarantee, just a hope from someone who is looking forward to a good old comp stomp.&lt;br /&gt;&lt;br /&gt;Ranked isn't the the only thing that made it into this patch (which should give you an idea why the AI was delayed). From &lt;a href="http://store.steampowered.com/news/3685/"&gt;http://store.steampowered.com/news/3685/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New Features&lt;/b&gt;&lt;br /&gt;&lt;ul style="margin-bottom: 0px; padding-bottom: 0px;"&gt;&lt;li&gt;Ranked 1v1 System!&lt;/li&gt;&lt;li&gt;Ranked Challenge System&lt;/li&gt;&lt;li&gt;Unranked  Quickmatch&lt;/li&gt;&lt;li&gt;Map  Pings - Added three different kinds of map pings for team play. F5  issues a generic alert to your teammate at a specific location, and it  appears as a yellow arrow when zoomed in and a yellow animated ping  indicator in strategic mode. F6 is a Move ping, and it uses a blue  indicator. F7 is Attack ping, and it uses a red indicator. Color coded  arrows will appear on each edge of the screen where your teammate has  placed one of these for you to view&lt;/li&gt;&lt;li&gt;Multi-player lobby  ready-up checkboxes will now "uncheck" any time a host changes the  settings &lt;/li&gt;&lt;li&gt;Changes to multi-player lobby exclusions,  game-type, etc. will show up in the multi-player lobby chat box when the  host makes changes &lt;/li&gt;&lt;li&gt;Voice icons display next to each player  in the multi-player lobby allowing the user to mute individual players&lt;/li&gt;&lt;li&gt;Menu  version number â€“ The game now displays a version number on the Main  Menu. The versioning has been adjusted at this update to 1.10 to  accommodate future updates&lt;/li&gt;&lt;li&gt;AI now starts as a random faction&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Fixes&lt;/b&gt;&lt;br /&gt;&lt;ul style="margin-bottom: 0px; padding-bottom: 0px;"&gt;&lt;li&gt;Cheating fix:  Closed a loophole in the code that allowed some players to enable  limited cheats&lt;/li&gt;&lt;li&gt;Fixed rare crash if player gets kicked out of  the lobby and submits chat text&lt;/li&gt;&lt;li&gt;Fixed rare crash when  player hits the enter key in the Skirmish menu&lt;/li&gt;&lt;li&gt;Fixed  replacing ready kicked player with AI causes the AI options to be locked&lt;/li&gt;&lt;li&gt;Fixed  inability to join DLC map games if you don't have the pack as a client&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Tuning  and Balance&lt;/b&gt;&lt;br /&gt;&lt;ul style="margin-bottom: 0px; padding-bottom: 0px;"&gt;&lt;li&gt;UEF  Assault Bot Research cost decreased from 4 to 3. &lt;/li&gt;&lt;li&gt;Cybran  Battleship Range reduced from 128 to 115. &lt;/li&gt;&lt;li&gt;Cybran Destroyer  Energy cost increased from 500 to 650. &lt;/li&gt;&lt;li&gt;ACU Training bonus  reduced to +25% per level. &lt;/li&gt;&lt;li&gt;Soul Ripper II Anti-Air Damage  reduced by 50%. &lt;/li&gt;&lt;li&gt;King Kripter, Colossus and  Cybranasaurus-Rex Health and Damage increased by 35%. &lt;/li&gt;&lt;li&gt;Cybranasaurus-Rex  Range increased from 22 to 32. &lt;/li&gt;&lt;li&gt;Wilfindja Speed increased  from 3.6 to 4.6. &lt;/li&gt;&lt;li&gt;Gantry build time reduced from 120 to 100  seconds. &lt;/li&gt;&lt;li&gt;Pulinsmash weapon range increased from 50 to 100. &lt;/li&gt;&lt;li&gt;Darkenoid  Health increased from 20,000 to 27,500. &lt;/li&gt;&lt;li&gt;AC-1000 primary  weapon damage blast radius increased from 1.5 to 3. &lt;/li&gt;&lt;li&gt;Cybran  Air Rate of Fire boost Research cost increased from 3 to 5. &lt;/li&gt;&lt;li&gt;Bodaboom  Health boost increased from +20% to +30%.  Aura radius increased from  20 to 30.  Added a +200% regeneration bonus. &lt;/li&gt;&lt;li&gt;ACUs are now  repaired 150% slower. &lt;/li&gt;&lt;li&gt;Increasing ACU storage size to 15. &lt;/li&gt;&lt;li&gt;UEF  Submarine weapon range increased by 50%.  Movement speed reduced from 6  to 5.25. &lt;/li&gt;&lt;li&gt;Structure bubble shields now take twice as long  to come back online. &lt;/li&gt;&lt;li&gt;Anti-Air Tower damage increased by  25%. &lt;/li&gt;&lt;li&gt;ACUs and Engineers now get a Sonar range equivalent to  their Radar range. &lt;/li&gt;&lt;li&gt;ACU/Escape Pod Experience value  increased to 7500. &lt;/li&gt;&lt;li&gt;Gantry Experience value decreased to  1250. &lt;/li&gt;&lt;li&gt;UEF/Illuminate Mass Convertor Experience value  increased to 750. &lt;/li&gt;&lt;li&gt;UEF/Illuminate Mobile Anti-Air Experience  value decreased to 100. &lt;/li&gt;&lt;li&gt;Fighter/Bomber Experience value  decreased to 250. &lt;/li&gt;&lt;li&gt;Transport Experience value increased to  750. &lt;/li&gt;&lt;li&gt;UEF Fighter &amp;amp; Bomber Experience value decreased to  200. &lt;/li&gt;&lt;li&gt;UEF/Cybran Battleship Experience value increased to  1500. &lt;/li&gt;&lt;li&gt;Cybran Destroyer Experience value increased to 750. &lt;/li&gt;&lt;li&gt;UEF  Submarine Experience value decreased to 150. &lt;/li&gt;&lt;li&gt;King Kriptor,  Universal Colossus, Cybranasaurus Rex and Pulinsmash Experience value  reduced to 3000. &lt;/li&gt;&lt;li&gt;Cybran Intel Add-on Vision radius is now  correctly set to 75. &lt;/li&gt;&lt;li&gt;Fixed an issue with Cybran tactical  missiles that prevented them from hitting a target if it was really far  away. &lt;/li&gt;&lt;li&gt;Illuminate ACU Teleport time reduced from 10 to 6  seconds&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;More good things to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6770696740652208915?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6770696740652208915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/04/ranked-patch-is-live.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6770696740652208915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6770696740652208915'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/04/ranked-patch-is-live.html' title='Ranked patch is live, AI delayed'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-155178283150614458</id><published>2010-04-06T20:08:00.000-07:00</published><updated>2010-04-06T20:09:39.992-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>On to Kings and Castles</title><content type='html'>Work on AI updates for Supreme Commander 2 has officially stopped, unless something breaks. I have now been moved to Kings and Castles to do the work on the AI for that game. I am really excited. I am like a kid in a candy store that has been told I can have anything I want, and as much as I want, for no charge. This AI isn't exactly a blank canvas, but it is blank enough. Besides, the parts that aren't blank are the basic systems that I probably wouldn't change much about anyway.&lt;br /&gt;&lt;br /&gt;I was able to make quite a few more improvements to the SupCom 2 AI before work halted on it. So far, the feedback from the people who have tested it is the Hard AI is challenging and fun. Hopefully the majority of players agree. It will absolutely destroy the AI mods that exists, which is unfortunate, but I also added some more stuff for the modders to play with, so hopefully it evens out.&lt;br /&gt;&lt;br /&gt;I still have a nice long list of things I want to add to the SupCom 2 AI (my whiteboard is almost full) and I hope I get an opportunity to implement at least of few of the major ones. If not, you will definitely get to see them in Kings and Castles. The beauty of doing the Kings and Castles AI is the framework is already there. I will (and have already started) have to update a few things to work with the new game, but the majority of the framework can remain unchanged. This will, theoretically, give me more time to do other cool stuff with the AI.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The AI patch for SupCom 2 is tentatively scheduled for later this week (according to the post here: &lt;a href="http://forums.steampowered.com/forums/showthread.php?t=1211680"&gt;http://forums.steampowered.com/forums/showthread.php?t=1211680&lt;/a&gt;). Now, that is by no means definite, but I am hopeful. I have comp stomps waiting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-155178283150614458?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/155178283150614458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/04/on-to-kings-and-castles.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/155178283150614458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/155178283150614458'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/04/on-to-kings-and-castles.html' title='On to Kings and Castles'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-1790416319643492119</id><published>2010-03-25T14:12:00.000-07:00</published><updated>2010-03-27T08:21:42.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Sneak peek at the AI changes</title><content type='html'>I didn’t realize how much I missed working on AI until I started working on it again. So far I think I have been able to make a vast improvement in how the AI plays. I want to thank everyone that posted feedback, it was very helpful. I will have to check the list again, but I am fairly certain I have fixed or at least improved upon all of the relevant issues. The change list for the AI so far is longer than any version of the AI I released for SupCom 1 or FA. Before I post highlights there are some things you need to know.&lt;br /&gt;&lt;br /&gt;First, you need to realize that some of these fixes may not make it in right away, if at all. They still have to be tested to make sure I am not epically breaking anything. Second, I still do not know when these fixes are going to be patched it, so don’t get upset if they aren’t in the next patch, or even the one after that. There are a lot of fixes spanning many files, so in the interest of keeping patch sizes down it may be delayed until we can include it without killing everyone’s bandwidth.&lt;br /&gt;&lt;br /&gt;Probably the biggest bug was the fact that threat conditions were not being used properly. Threat conditions are what we use to tell the AI to do something in reaction to a threat, such as building AA when an enemy has air units. Not only is this fixed, but the AI is using the threat value of its currently targeted enemy to determine how big of a platoon to send and how many experimentals it needs to have built before sending them out.&lt;br /&gt;&lt;br /&gt;The AI also takes into account build restrictions when choosing which archetype to use. It also recognizes when it has all research, so it won’t waste mass on research stations when it does not have to. Also, the AI should no longer get stuck if you rush it and destroy something while it was in the middle of its starting build. If you restrict a unit type in the game the AI now acts like that unit doesn’t even exist in the game. Don’t want nukes in the game? The AI won’t even have the option of giving one of its engineers the order to build one.&lt;br /&gt;&lt;br /&gt;Most of Thursday, Friday, and Monday the 22nd was spent fixing little bugs like the above. Tuesday and Wednesday were spent balancing and getting the AI focused. The biggest challenge was the AI’s economy.&lt;br /&gt;&lt;br /&gt;The AI uses a bucket system for its economy. When the AI gets resources it puts a set percentage in each of its buckets (defense, expansion, experimentals, land units, etc) and it puts any excess resources in a slush bucket. When the AI wants to build something, it checks the appropriate bucket to see if the resources are available. For immediate items (like emergency shields or economy related stuff) we tell the AI to use from all the buckets. The problem with that is the AI ends up taking from the same buckets over and over. Later in the game, when expansion is harder, the expansion buckets ends up getting filled and never used, so the AI ends up in a situation where it has a lot of mass, but can’t build.&lt;br /&gt;&lt;br /&gt;My solution was to make the AI take resources from the slush bucket first when taking from all buckets. Then, I sort the buckets from fullest to emptiest and take an amount from each bucket based on how full it is until we have enough or run out of buckets. If the first pass doesn’t get enough we re-sort and take all the resources from each bucket until we have enough. This way, full buckets that aren’t being used much are the first to get resources taken away and the AI has a much smoother economy.&lt;br /&gt;&lt;br /&gt;I also worked to get the AI to focus a lot more. The AI would constantly send units, that were doing hefty amounts of damage to an enemy base, across the map to kill and few units that had the audacity to get near of its expansion bases. It also didn’t focus its attacks on its targeted enemy very well either. It took a lot of trial and error, but I think I have it dialed in a lot better.&lt;br /&gt;&lt;br /&gt;Another nice upgrade is that the AI will now use the Mass Convertor. Prior to this the AI would never build one. Now, the AI will build one (it only needs one) or, in the case of Cybran, use the ability of one of its power generators.&lt;br /&gt;&lt;br /&gt;I am still working out the cheating situation. Some people complain that the Hard AI cheats too much and the Cheating AI cheats way too much. Currently, I have asked a few people in the office of different skill levels to try out the new changes and see what they think.&lt;br /&gt;&lt;br /&gt;Now, as with the last post, I have a request. I would like some ideas on research paths. I plan on going over them again and trying to optimize them and wanted ideas on what paths players use. I don’t need an exact path, per se, because I have a function I use in the AI that finds the cheapest path to get to a particular research. What I need is what research item you go for first, second, third, etc. If you are going air, do you get gunships first? Shields? Or, do you go for the experimentals? Let me know.&lt;br /&gt;&lt;br /&gt;For those of you who want a tl;dr list of the AI fixes, here you go. Bear in mind, this list is not exhaustive, so don’t get upset if you pet fix is not listed. This is also not a guarantee that they will show up in any patch, let alone a patch that is released soon.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed a bug where threat build conditions were not being used.&lt;/li&gt;&lt;li&gt;The AI will hold back units until it thinks it has enough to make a push.&lt;/li&gt;&lt;li&gt;Fixed an issue where the AI would constantly pull units back to attack an expansion base instead of pushing forward.&lt;/li&gt;&lt;li&gt;Added AI response to make a land AI get land unit AA upgrades if the enemy has air units.&lt;/li&gt;&lt;li&gt;The AI will no longer get stuck in its startup build sequence if rushed or if there are build restrictions in place.&lt;/li&gt;&lt;li&gt;The AI will no longer give every structure blip AA and Land threat; instead it will wait until it has seen the unit first.&lt;/li&gt;&lt;li&gt;The AI will no longer give blips on the water Naval threat, it will wait until it sees an actual ship.&lt;/li&gt;&lt;li&gt;If Research is disabled the AI will not build research facilities.&lt;/li&gt;&lt;li&gt;If a unit type is restricted the AI will act as though the unit does not exist in the game.&lt;/li&gt;&lt;li&gt;Platoons will try to only attack areas where they think they can do enough damage before dying.&lt;/li&gt;&lt;li&gt;The AI should no longer attempt to send attack platoons to unpathable areas.&lt;/li&gt;&lt;li&gt;The AI will choose an appropriate archetype based on unit restrictions.&lt;/li&gt;&lt;li&gt;Re-balanced the way the AI chooses an archetype.&lt;/li&gt;&lt;li&gt;The AI will react to enemy TML, artillery, or Experimentals by building more shields and placing them closer together.&lt;/li&gt;&lt;li&gt;Enemy shields are now given AntiLand and AntiAir threat.&lt;/li&gt;&lt;li&gt;AI will build and use Mass Convertors.&lt;/li&gt;&lt;li&gt;If the closest enemy to the AI is a lot weaker than the other enemies the AI will focus on the weak enemy.&lt;/li&gt;&lt;li&gt;You can now select which AI type you would like to play against from the dropdown in the game lobby (random is still an option).&lt;/li&gt;&lt;li&gt;AI will build factory shield upgrades more often, not just when the enemy has air.&lt;/li&gt;&lt;li&gt;Factory upgrades now have a threat value.&lt;/li&gt;&lt;li&gt;AI will not build research stations if it already has everything researched.&lt;/li&gt;&lt;li&gt;AI will now group units based on their target enemy's threat.&lt;/li&gt;&lt;li&gt;AI will now group experimentals based on their target enemy's threat.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Edit:&lt;br /&gt;The last few changes are in for this round, unless something pops up in testing.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; The AI is now aware of the victory condition and will focus attacks on the ACU more in assassination mode.&lt;/li&gt;&lt;li&gt;When an AI unit dies it will add threat to the instigator's location to warn other units.&lt;/li&gt;&lt;li&gt;AI will respond when an enemy turtles.&lt;/li&gt;&lt;li&gt;AI will now recognize when it is being attacked by nukes or artillery and respond.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-1790416319643492119?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/1790416319643492119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/03/sneak-peek-at-ai-changes.html#comment-form' title='57 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1790416319643492119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1790416319643492119'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/03/sneak-peek-at-ai-changes.html' title='Sneak peek at the AI changes'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>57</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-2442346641037146416</id><published>2010-03-18T22:47:00.000-07:00</published><updated>2010-03-18T22:47:49.385-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>I'm back, baby!</title><content type='html'>I have been pulled off my current project, at least for now, to work on SupCom 2 again. Yay! I will be working on fixing the bugs in the AI (found a huge one today) and generally improving the way the AI plays. For the most part, the AI does fairly well. Once I get the bugs ironed out and tweak some things you should see a pretty decent improvement. Unfortunately, I do not know when these fixes will actually make it into a patch, but I hope it is soon. We need to test these changes as much as possible before releasing them and finding out later that we made things worse.&lt;br /&gt;&lt;br /&gt;The other great thing about being back on SupCom 2 is I get to be brought up to speed on the other things we have planned. The next few patches are going to be cool. Some nice changes, some cool new features, and of course, ranked 1v1. Of course, this will give me more to blog about as well. I also got to sit down with Chris and go over some other things I would like to see changed. The outlook for future patches looks good.&lt;br /&gt;&lt;br /&gt;So far, I think I have found the main cause of the complaint about the AI not reacting to things the enemy does, as well as the AI getting stuck when you rush it early. I also have done some preliminary balance changes, and also changed some weights for how the AI chooses which archetype get used. This is just a small part of the list I have been given to work through. Any of you readers have any other complaints about the AI? Feel free to reply and let me know what you would like to see. I know I have my own list, but I want to hear from you. Please be as detailed as possible.&lt;br /&gt;&lt;br /&gt;The next few weeks should be exciting.&lt;br /&gt;&lt;br /&gt;( btw, Bender quote ftw :) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-2442346641037146416?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/2442346641037146416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/03/im-back-baby.html#comment-form' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2442346641037146416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2442346641037146416'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/03/im-back-baby.html' title='I&apos;m back, baby!'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3835689322015592793</id><published>2010-03-12T20:40:00.000-08:00</published><updated>2010-03-12T20:40:31.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gamereplays'/><category scheme='http://www.blogger.com/atom/ns#' term='gautam vasudevan'/><category scheme='http://www.blogger.com/atom/ns#' term='chad queen'/><category scheme='http://www.blogger.com/atom/ns#' term='GDC'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Video blog #5 is up</title><content type='html'>Video blog #5 is up at &lt;a href="http://kingsandcastles.com/"&gt;kingsandcastles.com&lt;/a&gt;. If you haven't been following the vblogs, now is the time to start. This time around Chris interviews Gautam Vasudevan (Lead Engineer - Kings and Castles) and barges in on an engineering meeting and interviews Chad Queen (VP of Engineering). Of course, there is also some craziness, this time involving trees.&lt;br /&gt;&lt;br /&gt;Supreme Commander 2 has been out for about a week and half, and, at last count, it has been patched twice already, which is awesome. &lt;a href="http://gamereplays.org/"&gt;GameReplays.org&lt;/a&gt; is even getting ready to host its second tournament. It is nice to finally get to see the game out in the wild and being enjoyed. Now, if I could just get an opportunity to get in there and tweak the AI a bit...&lt;br /&gt;&lt;br /&gt;I think I have about 3 more weeks on my current project (as I said, it was short term). I am looking forward to getting to take a crack at Kings and Castles and being on a project I can actually talk about. Hopefully, I get to dig into the AI more. On Supreme Commander 2 I only got to work on the AI for about a month. This time around I am hoping to work on the AI from start to finish. The base of the Supreme Commander 2 AI could definitely be used for Kings and Castles, which would give me more time to add in other cool and interesting ideas that pop into my head.&lt;br /&gt;&lt;br /&gt;GDC 2010 ends tomorrow. Wish I could have made it this year, but oh well. I am definitely going to try to go next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3835689322015592793?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3835689322015592793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/03/video-blog-5-is-up.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3835689322015592793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3835689322015592793'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/03/video-blog-5-is-up.html' title='Video blog #5 is up'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-1689424240866150242</id><published>2010-02-24T14:46:00.000-08:00</published><updated>2010-02-24T19:55:18.165-08:00</updated><title type='text'>SC2 demo now available.</title><content type='html'>Finally, the demo for Supreme Commander 2 is now available on Steam: http://store.steampowered.com/app/40140/&lt;br /&gt;&lt;br /&gt;I can't believe the game is almost here. 6 days until it hits store shelves (where I am, at least). I am really excited to see he demo online after waiting so long. I can't wait to see the feedback. I know it is only 2 campaign levels, but what do you expect from a demo.&lt;br /&gt;&lt;br /&gt;I have had a chance to see some of the initial feedback since I could not keep my eyes off the forums today. Someone mentioned that he lua files were all garbled. If I recall, there are 2 scd files that contain the lua. One contains the compiled versions and one contains the uncompiled versions. Not sure if the uncompiled ones are included in the demo version since I have not installed it.&lt;br /&gt;&lt;br /&gt;The project I am currently on has been quite interesting. I have even gotten a chance to work on  some ui code, which is a big change. This project is short term, so I am hoping I get a chance to move over to Kings and Castles after this is finished. That project looks like it is going to be fun. If you missed it, Chris posted his second video blog Sunday (see http://www.kingsandcastles.com). There is already a thread on the GPG forums trying to decipher what was written on the whiteboard and what it all means. Also, don't think for a second that Chris is acting, he really is that nuts on a regular basis.&lt;br /&gt;&lt;br /&gt;I hope those of you that downloaded the demo enjoyed it. To those of you that have purchased he game or plan on purchasing it, I would like to say thank you and I look forward to seeing you online.   &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-1689424240866150242?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/1689424240866150242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/02/sc2-demo-now-available.html#comment-form' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1689424240866150242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/1689424240866150242'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/02/sc2-demo-now-available.html' title='SC2 demo now available.'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5314192556637077654</id><published>2010-02-14T20:42:00.000-08:00</published><updated>2010-02-14T20:42:44.215-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Kings and Castles'/><title type='text'>New game announced</title><content type='html'>Kings and Castles, the next big thing from Gas Powered Games, has officially been announced. Check out www.kingsandcastles.com and see the new blog. Apparently, Chris has decided for a more open and informative approach this time around. I wonder where they got the idea to have a blog.&lt;br /&gt;&lt;br /&gt;Unfortunately, this is not the project I am on at the moment, but hope to be in the next couple of months. The project I am on is an external short term project that I, unfortunately, cannot talk about. I was able to see a short demo of the new game last week and it looks interesting. I don't have a whole lot of information about it yet since I am not on that project, but since Chris has already thrown in a blog maybe they will let me talk more deeply and in more detail about the game during the design process this time around.&lt;br /&gt;&lt;br /&gt;Hopefully I also get to be even more involved in the AI design process. &lt;br /&gt;&lt;br /&gt;For the full press release see here: http://gaspowered.com/kingsandcastles/press-release/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5314192556637077654?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5314192556637077654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/02/new-game-announced.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5314192556637077654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5314192556637077654'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/02/new-game-announced.html' title='New game announced'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7647559380994681602</id><published>2010-02-01T21:55:00.000-08:00</published><updated>2010-02-01T21:56:38.920-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Interesting changes</title><content type='html'>It is interesting how changes in a persons life can alter so many things. I spent 2 1/2 years of my life working on an AI mod. A mod that, when I started it, I never expected to grow into what it became. Now I have a job where I am on the inside and can affect change before the game even ships. It still boggles my mind, and it is still impacting my life in ways I never imagined.&lt;br /&gt;&lt;br /&gt;Now that I am getting my programming fix at the office my hobby interest has taken strange turn. I have now become more interested in cooking and baking. It is definitely something I have always been interested in, but has taken a back seat to programming, until now. Funny how that works.&lt;br /&gt;&lt;br /&gt;Work still continues on SupCom 2. It is amazing how much polish is going into the game. It is nice that we have some time for it. Even the effects are getting another iteraton. The game is looking really nice. I can't wait to see how it performs when my new video card gets here. I can't wait for this game to be released. &lt;br /&gt;&lt;br /&gt;Tomorrow I transfer to a different project, so there won't be as much SupCom 2 news for me to post. Wish me luck. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7647559380994681602?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7647559380994681602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/02/interesting-changes.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7647559380994681602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7647559380994681602'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/02/interesting-changes.html' title='Interesting changes'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7876178043569713996</id><published>2010-01-21T21:00:00.000-08:00</published><updated>2010-01-25T11:57:23.596-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='gordon'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Make it run faster</title><content type='html'>The word for this week for me has been optimization. Most of my time so far this week has been spent digging through Lua files trying to find where we can safely move things into code, restructure things to be faster, or things we can outright remove because we don't use them anymore.. The biggest example (from my plate) so far has been unit damage. The old unit damage stuff was calculated in Lua and made several calls into code to get the information it needed to make the calculations. Now, we call a function in Lua (where we can hook callbacks, or modders can override it) which checks if the unit can be damaged and then goes back into code to do all the calculations. Much faster.&lt;br /&gt;&lt;br /&gt;After seeing the system requirements for the game I was curious just how accurate they are. So, I built a retail build on my machine to try it out. It ran at +10 sim speed from start to finish, but I have a Core i7 machine with 6 GB of ram, so it wasn't really a accurate test and Gordon called me on it. So, he took his FA dev machine, synced up to the latest build, and ran a 1v1 on Seton's Clutch. As expected, the performance was awful. So, we synced up SC2 (which does not have his or my optimization changes yet) and ran a 1v1 on a similar map. Smooth as glass. We even turned the graphics up to high, which did cause some graphics lag because of his old video card, but sim speed was full on the whole time.&lt;br /&gt;&lt;br /&gt;Having the Digipen people (and there are more of them showing up now) around has been awesome. It is like having a mini beta test in the office and I think their presence has been a great thing for this game. The XBox 360 version has been very popular, which comes as a surprise to me. I am a PC gamer myself, so maybe I just don't get it.&lt;br /&gt;&lt;br /&gt;[Edit]&lt;br /&gt;Gordon's FA dev PC specs:&lt;br /&gt;Windows XP&lt;br /&gt;Pentium D 3.2 GHz&lt;br /&gt;2GB RAM&lt;br /&gt;ATI X1900&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7876178043569713996?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7876178043569713996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/01/make-it-run-faster.html#comment-form' title='47 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7876178043569713996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7876178043569713996'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/01/make-it-run-faster.html' title='Make it run faster'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>47</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7091549198522533901</id><published>2010-01-13T22:19:00.000-08:00</published><updated>2010-01-13T22:19:15.358-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Workin' weeekends</title><content type='html'>It has been a very busy week so far. Sunday we had some people from Digipen (https://www.digipen.edu/) in our office to test out the game. Apparently they liked it because they came back Monday and Tuesday to play more. Monday and Tuesday we had press in the office conducting interviews and checking out the game. Hopefully this means there will be a lot more information available about the game here soon. I can't wait to read the previews.&lt;br /&gt;&lt;br /&gt;We have had a multiplayer area set up in the office since Sunday and there have been some epic matches. I even got to see Chris lose to the AI. It was awesome. The game is really coming together. Bug counts are dropping quickly as most of us get to the smaller bugs on our lists. Some of these bugs really make you wonder how in the world someone managed to find them.&lt;br /&gt;&lt;br /&gt;I am getting really excited to this this game completed. I spent two and a half years trying to get this job and soon I will have my name on my first shipped game. I can hardly believe it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7091549198522533901?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7091549198522533901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/01/workin-weeekends.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7091549198522533901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7091549198522533901'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/01/workin-weeekends.html' title='Workin&apos; weeekends'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-2719577874943981952</id><published>2010-01-05T22:23:00.001-08:00</published><updated>2010-01-05T22:23:59.010-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Back to work</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, I am back to work this week. I had a nice vacation. It was the longest vacation I have had in the last 5 years.&lt;br /&gt;&lt;br /&gt;I am still on gameplay bug fixing duty and will continue to be probably until the end of the project. Our overall bug count is going down quickly. I have high hopes of having a nicely polished game at release. Let's hope I am right.&lt;br /&gt;&lt;br /&gt;I made it past the 4 month mark. The amount of progress that has been made over the last 4 months is amazing. 4 months ago the skirmish AI didn't really exist yet. Now, the game has a skirmish AI to play against.&lt;br /&gt;&lt;br /&gt;I have also learned what it is like to have something you worked on for a while cut from the game. If you have been following this blog for a while you may remember when I mentioned that I created a cool weapon for a unit and even influenced the effects for it. Well, it got cut and replaced a while back. I was not happy about it, but it happens. I have added other, cooler in my opinion, things to the game.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-2719577874943981952?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/2719577874943981952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2010/01/back-to-work.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2719577874943981952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2719577874943981952'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2010/01/back-to-work.html' title='Back to work'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6236768105293750065</id><published>2009-12-24T18:11:00.000-08:00</published><updated>2009-12-24T18:19:04.849-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><title type='text'>Vacation time</title><content type='html'>&lt;br /&gt;I got my new system last Friday. It has improved my productivity a lot. Went from a Core 2 Duo with 2gb ram to a Core i7 with 6gb ram. It is so much faster that I haven't had time to play any of my facebook games since.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href='http://picasaweb.google.com/merobbins/BloggerPictures?authkey=Gv1sRgCLXAmJO4mruosgE#5418992638002100130'&gt;&lt;img src='http://lh6.ggpht.com/_XLH9LdtQopA/SzQhF9ySd6I/AAAAAAAAAVs/dCBBmLxBZSs/s288/iphone_photo.jpg' border='0' width='210' height='281' style='margin:5px'&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I am still in bug fix and polish mode. It is really nice to see all the new info coming out about the game and to see all he stuff being put together for more updates. I especially like Chris' unit videos. It gives people a way to see each unit in detail. I can't wait until he shows off some of the more unique units. &lt;br /&gt;&lt;br /&gt;I am oficially on vacation until 2010, so there probably won't be another new post for a while. Until then, Merry Christmas and happy New Year!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6236768105293750065?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6236768105293750065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/12/vacation-time.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6236768105293750065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6236768105293750065'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/12/vacation-time.html' title='Vacation time'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_XLH9LdtQopA/SzQhF9ySd6I/AAAAAAAAAVs/dCBBmLxBZSs/s72-c/iphone_photo.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7647159855724632439</id><published>2009-12-17T13:06:00.000-08:00</published><updated>2009-12-17T13:08:47.747-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><title type='text'>Milestone 14 is behind us, mostly</title><content type='html'>Well, the stress and chaos of milestone 14 is behind us, for the most part. There are still a few things Square wants done before milestone 14 is officially given their blessing. Now we are on to bug triage and squashing. From now until release (or I get assigned to our other project) my job will be going through any bugs assigned to me and fixing them.&lt;br /&gt;&lt;br /&gt;I know it sounds monotonous, but I really like it. Every bug I squash makes the game better and more playable. Also, some of the bugs I have worked on this week are more like feature requests. A couple of them are just things to add to the overall immersion of the game. I really like that kind of stuff. I really can't wait for this game to be released so I can talk in more detail about some of the work I was involved in.&lt;br /&gt;&lt;br /&gt;I have spent so much time coding in C++ over the past month and now I am having to do a lot more lua work to fix bugs, it is weird. My lua code is starting to look off. I am so used to putting semicolons at the end of lines that I have to stop myself from doing it in lua. I can't tell you the number of times I have forgotten to write "then" this week (C++ does not use "then"). I thought going back and forth between projects was hard, going back and forth between languages after such a long break between them is harder.&lt;br /&gt;&lt;br /&gt;Our company Christmas party is tomorrow afternoon, so I imagine there wont be a whole lot of work going on after it starts. I will probably try to get a playtest in tomorrow morning sometime. I am betting the AI thrashes me, but we will see.&lt;br /&gt;&lt;br /&gt;I saw some balance changes for Occulus go in either yesterday or the day before and a build got fired off. Hopefully this means a patch for Demigod is going through Stardock QA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7647159855724632439?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7647159855724632439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/12/milestone-14-is-behind-us-mostly.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7647159855724632439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7647159855724632439'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/12/milestone-14-is-behind-us-mostly.html' title='Milestone 14 is behind us, mostly'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8263580188233895603</id><published>2009-12-09T13:23:00.000-08:00</published><updated>2009-12-09T13:23:21.149-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='gordon'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><title type='text'>Still plugging away</title><content type='html'>So far I have not gotten a response from Square Enix, so I am taking that as a no for the time being. We'll see what happens.&lt;br /&gt;&lt;br /&gt;Things have been very busy lately. Hence, my lack of a recent post. I am currently typing this up while waiting on compiles. To say things have been hectic would be a huge understatement. Every bug is a huge deal because at this point every bug is probably blocking someone else in some way.&lt;br /&gt;&lt;br /&gt;Great example would be yesterday afternoon. I probably lost an hour (maybe more) when I was trying to get AI platoons to use a particular ability. It turns out the task that handles this ability was not working properly so it screwed up my testing. I had to go in and fix the task so it would work right. I lost another hour yesterday when I was trying to make a group of units break from a platoon. It turns out I was putting the units in the wrong squad. It should not have caused the game to crash, so it was not immediately obvious that that was the problem.&lt;br /&gt;&lt;br /&gt;Despite the setbacks, things have been progressing nicely on the the AI. I just got told I was going back to fixing gameplay bugs for the remainder of the week. I just have to finish this last AI feature. Fixing gameplay bugs is not as fun as AI programming, but it is still fun and Gordon could definitely use a hand. After this week I will be going back and forth between fixing gameplay bugs, balancing the AI, and fixing AI related bugs.&lt;br /&gt;&lt;br /&gt;In Demigod news, we sent Stardock a new build almost 2 weeks ago, so hopefully they should be releasing a patch sometime in the future. Not sure when, or even if they will.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8263580188233895603?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8263580188233895603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/12/still-plugging-away.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8263580188233895603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8263580188233895603'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/12/still-plugging-away.html' title='Still plugging away'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8181431558948631729</id><published>2009-12-01T23:37:00.000-08:00</published><updated>2009-12-01T23:37:29.243-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Tools of the trade</title><content type='html'>I have officially passed the three month mark. Looking back it seems silly to think how nervous I was when I got the phone call telling me I got the job. I had no real C++ experience and no experience programming as part of a team. I had no idea what kind of tools or programs they used. I was actually quite nervous that I would fall flat on my face. That obviously didn't happen.&lt;br /&gt;&lt;br /&gt;As it turns out, programming here is not much different than modding. I still use Notepad++ to edit Lua files, though most everyone else either uses Visual Studio or Ultra Edit (which I used for a short time, but didn't like as well). I have had to get used to using Visual Studio for C++ files, but that hasn't been hard.&lt;br /&gt;&lt;br /&gt;I still use Araxis Merge as my file diffing tool of choice. I tried to get used to using Beyond Compare, but it just wasn't the same. Luckily, I was using Google code for my AI mod for Forged Alliance, so getting used to using the Perforce repository was easy.&lt;br /&gt;&lt;br /&gt;The thing I didn't have to deal with until I started working here was resolving files before submitting them to the repository. I also didn't have to deal with the possibility of breaking the build by submitting a bad file or forgetting to submit a new one (done that last one a few times). It really sucks when a message pops up saying that the build broke and for breakers it lists your name, then you start getting the instant messages.&lt;br /&gt;&lt;br /&gt;All in all, sitting down to program at work is not much different than sitting down to mod at home. At work I just have more workstations and more people to answer to if I screw things up. I also get the opportunity to do more than I ever did modding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8181431558948631729?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8181431558948631729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/12/tools-of-trade.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8181431558948631729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8181431558948631729'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/12/tools-of-trade.html' title='Tools of the trade'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4190028428989491404</id><published>2009-11-26T12:26:00.000-08:00</published><updated>2009-11-26T12:26:36.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Milestone 14</title><content type='html'>Well, milestone 14 is fast approaching. Even faster because of the holiday four day weekend. Although, there are some people that are going to be in the office Friday, and possibly Saturday and Sunday. Luckily, I do not have as much on my plate as some, so I can take the holiday.&lt;br /&gt;&lt;br /&gt;While talking to Servo on Wednesday I found out that at least half of the SC2 team has been staying late for at least the past week and a half. It is definitely crunch time. We only have about 2 weeks left until the end of this milestone (December 11th), and it is a big one. I am amazed at the amount of progress that has been made on this game in such a short amount of time.&lt;br /&gt;&lt;br /&gt;Progress continues to be made on the AI. I had quite a few large check-ins this week and last week. I think a lot of the core stuff for the AI is there, I am down to coding support for specific unit stuff, mostly. Hopefully most of the specific case stuff will be in early next week. After that it will be balancing the AI. Dru and I have been balancing the AI bit by bit as we go, but the balance has kept changing. We should have it pretty solid here soon.&lt;br /&gt;&lt;br /&gt;I still haven't been able to wrap my head around Dru's work. He said he would go over it with me next week, so I am really looking forward to that. With this project getting nearer to completion I am also looking forward to the next project, whatever that may be. It will be my first project that I participate in where I was there from the start. It should give me new insight into how projects are started and where the ideas for some of the crazy things that go into a game come from. I am truly looking forward to that. I will also have to find a way to blog about it without being able to even hint at the genre. Should be an interesting experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4190028428989491404?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4190028428989491404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/milestone-14.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4190028428989491404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4190028428989491404'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/milestone-14.html' title='Milestone 14'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5289318993712587030</id><published>2009-11-25T22:11:00.000-08:00</published><updated>2009-11-25T22:11:58.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Publisher/Developer relationship</title><content type='html'>I am constantly having to re-evaluate what I know to be true about the game industry. Most of what I knew was gleaned from web forums or found off of various websites. Now that I am a part of the industry all of that knowledge has gone out the window and I am having to forget what I knew to learn what things are really like (sounded almost yodaish in my head).&amp;nbsp; The relationship between a publisher and developer is a shining example of that.&lt;br /&gt;&lt;br /&gt;When a game developer (like GPG) has a game they want to make they need money to do it, unless they are lucky enough to be able to self-publish their games. In order to acquire this money they find a publisher willing to invest in the project and fund some or all of it. Depending on who the publisher is it can have a huge impact on the game or none at all. It's like borrowing money from a family member. If they give you the loan they will either do it and keep quiet or they will lend you the money and take the opportunity to throw in some free advice to go along with it. Publishers are the same way, they will either lend the money and let the developer make the game or they will want changes made.&lt;br /&gt;&lt;br /&gt;It actually makes sense to a point. I mean, these publishers are making a very large investment and they want a return on that. If they decide changes need to be made to see that return they will say so. Whether those changes are a good idea or not is definitely up to debate.&lt;br /&gt;&lt;br /&gt;The publisher is also a determining factor for post launch support as well, because that requires money as well. No matter how much the fans want a patch or how badly the developer wants to release a patch, the publisher is the one that ultimately determines what gets patched and when, especially if the publisher owns the IP to the game. The publisher is also the one that influences, or outright determines, the milestone, beta, and release schedule.&lt;br /&gt;&lt;br /&gt;This is why self-publishing is such a nice bonus. The developer gets to make the game they want, on the time line they want, and gets to provide post launch support how they want. Unfortunately, it also very expensive and very risky.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5289318993712587030?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5289318993712587030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/publisherdeveloper-relationship.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5289318993712587030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5289318993712587030'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/publisherdeveloper-relationship.html' title='Publisher/Developer relationship'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7434332037849738089</id><published>2009-11-19T22:29:00.000-08:00</published><updated>2009-11-19T22:29:29.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><title type='text'>Very busy week</title><content type='html'>I got a flat tire on the way in to work today, so I had to spend my lunch break getting it fixed. While I was waiting on that I had written a nice long blog entry on my iPhone, but couldn't get it posted. Oh well. Things have been so hectic this week that this little tire problem was the first significant downtime I have had all week. I have put in 44 hours so far this week and the milestone draws ever closer.&lt;br /&gt;&lt;br /&gt;Patch 1.2 for Demigod was released today, finally. I hope those of you who have access to the new Demigods are enjoying them. Demon Assassin is still my favorite. There is just something about Warp Area. Some people have said that Torch Bearer's ability to attack while moving in Fire form is not fixed. I will be talking with Brian (someone who knows quite a bit more about the animation system than I do) tomorrow about this issue. Code-wise, TB should work fine, but I have a feeling there is something in the animation that is not allowing him to move. If this is the case than only a new animation will fix it and that will be up to Stardock.&lt;br /&gt;&lt;br /&gt;I have been truly enjoying my work on the Supreme Commander 2 AI. It is quite different being on this side of things. I have the ability to all debug tools into the game that allow me to see exactly what the AI is doing at any time. I can see where its expansion bases are, what the status of them is, and where it wants to expand to next. It makes altering the AIs behavior a lot easier.&lt;br /&gt;&lt;br /&gt;I have been working on a lot more of the core AI stuff than I think anyone had anticipated. Originally I was supposed to basically be the one who blanaced out the AI and worked more on the data driven side of things. Lately my work has been more on the core side of things. I have been programming things like how the AI decides where to expand, how it reacts to intel, and how it controls it platoons. This has given Dru a lot more time to do other cool stuff for the AI.&lt;br /&gt;&lt;br /&gt;All in all I am still loving my job. Maybe I should ask for a raise :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7434332037849738089?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7434332037849738089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/very-busy-week.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7434332037849738089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7434332037849738089'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/very-busy-week.html' title='Very busy week'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8588498749369314107</id><published>2009-11-14T10:56:00.000-08:00</published><updated>2009-11-14T10:56:52.632-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><title type='text'>Patch 1.2 delayed</title><content type='html'>Ended up doing more demigod work Thursday and Friday. On Wednesday Stardock wanted us to make it so players that did not have the new Demigods would not be able to play with them in single player, but the AIs could still play as them. Unfortunately, there was still a bug that only appeared if someone was assigned to random that had access to all the DLC (which I did not during my tests). So, I had to fix that Thursday.&lt;br /&gt;&lt;br /&gt;By now you know Stardock has delayed the 1.2 patch until next week. Since it is delayed I got approval to add one more feature. Patrick had come up with a good point that the only way the AI could be assigned one of the new Demigods was at random, and that kinda sucked. So, I got approval to change it so you could assign an AI to play as one of the new DLC Demigods, even if you did not have access to play them yourself. I was also able to fix the Demon Assassin sliding issue that showed up in Frogboy's video.&lt;br /&gt;&lt;br /&gt;I am getting a chance to work deeper in the AI than I had expected. I have even got a chance to add new functions to the Platoon and AiBrain classes that I would have loved to have had in Forged Alliance. The work, however, seems never ending at this point and the milestone is getting closer. We have a huge whiteboard in our office with a list of things that need to get worked on and every time we get to erase something another item gets put on the whiteboard. Actually, I think the whiteboard was fuller Friday than it was the Friday before.&lt;br /&gt;&lt;br /&gt;The good thing about there being so much AI work is I get to work on some really fun and interesting stuff, rather than just doing the data side stuff. The more code side stuff I can do the more cool core stuff Dru will have a chance to get to.&lt;br /&gt;&lt;br /&gt;I also got a chance to playtest with Eric this week. We had an epic battle on a nice small 4 player map. I played heavy land and it was awesome. He definitely dominated the map, but I put up a good fight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8588498749369314107?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8588498749369314107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/patch-12-delayed.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8588498749369314107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8588498749369314107'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/patch-12-delayed.html' title='Patch 1.2 delayed'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5435859203182651175</id><published>2009-11-11T00:47:00.000-08:00</published><updated>2009-11-11T00:47:09.705-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='patrick'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><title type='text'>Demigod...again</title><content type='html'>Got assigned to work on the Demigod patch yet again today. Hopefully it will be the last time for a while. This back and forth stuff gets a little frustrating. I was put back on Demigod to make some changes regarding Demigod DLC that was not in the first batch of changes that Stardock sent us. The latest build should have gone back to them this evening, so barring any more last minute change requests by Stardock, 1.2 should be ready to go as soon as Stardock QA approves it.&lt;br /&gt;&lt;br /&gt;At least something good came of the last minute additions, I was able to sneak a few more fixes in. I was asked to give an estimate on the amount of time it would take me to get the new changes in and I replied that it would take a half to full day. Luckily, I was ahead of schedule when I had completed the tasks, so I figured I would use that time to add some more fixes.&lt;br /&gt;&lt;br /&gt;Patrick had spent some time trying to fix the endless connectivity screen/desync bug but had run out of time to do any more testing (he is working on 2 projects at the moment). I volunteered to test it and after several test games where 1 of the participants lost connection I did not get a single desync or endless connectivity screen. Hopefully this means it is fixed.&lt;br /&gt;&lt;br /&gt;We did not get a chance to create a new animation for Torch Bearer, so I went ahead and made a modification to have Torch Bearer use his fire attack animation as his attack move animation. Since he is floating anyway it should look fine. It will be far better than before. I also got a chance to fix his Ring of Fire so that casting a second ring and then having the first ring expire will not cause both rings to disappear.&lt;br /&gt;&lt;br /&gt;After all that, it was back to the Supreme Commander 2 AI. Patrick says the AI is finally giving him a run for his money now. I am sure Dru can still beat it fairly easily. I haven't tried yet. I am finally digging into the core of the AI more rather than just balancing things. Dru and I have a long list of things we want to get done, just hope we have time for all the really cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5435859203182651175?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5435859203182651175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/demigodagain.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5435859203182651175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5435859203182651175'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/demigodagain.html' title='Demigod...again'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8240387384604002497</id><published>2009-11-04T22:27:00.000-08:00</published><updated>2009-11-04T22:27:15.439-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Deja vu</title><content type='html'>I had the strangest sense of deja vu today. I spent most of the day essentially doing what I have been doing in my spare time for the past 2 1/2 years; tweak AI, watch AI play, tweak AI some more, rinse, repeat. It was surreal.&lt;br /&gt;&lt;br /&gt;Dru has been awesome to work with. I was worried that he might be protective of his AI code (no real reason to think that, really, but I did). It has been the complete opposite. He has been completely open to any suggestions I have had and I have gotten the opportunity to fix some of the major things that bugged me with the Forged Alliance AI.&lt;br /&gt;&lt;br /&gt;The AI isn't much at the moment, but I can see where Dru is taking it and I like where it is going. One thing about this new economy is it should make things easier for the AI. Either the AI can afford to buy something or it can't, there isn't any guesswork or complicated economy balancing act. I managed to get a good balancing pass in today, but it will still need a lot more work. I am really looking forward to seeing what we can pull off.&lt;br /&gt;&lt;br /&gt;For anyone interested, Dru is being interviewed by AiGameDev.com Sunday, November 8th.&lt;br /&gt;&lt;br /&gt;From AiGameDev.com: This interview with Dru Staltman, Gameplay Engineer at Gas Powered Games, will look into the iterative development process that went in to creating Demigod's innovative AI, as described in &lt;a href="http://aigamedev.com/premium/reviews/demigod-goal-action-optimization/"&gt;this article&lt;/a&gt;. How was the system originally conceived, what where the major challenges, which were the biggest problems in the end, and how could the AI be extended and improved further?&lt;br /&gt;&lt;br /&gt;The announcement is tagged as Premium, so if you happen to have a Premium membership to AiGameDev.com and are interested in AI it might be a good read. If you do get a chance to read it, let me know how it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8240387384604002497?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8240387384604002497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/deja-vu.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8240387384604002497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8240387384604002497'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/deja-vu.html' title='Deja vu'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6337024077663024504</id><published>2009-11-03T21:14:00.000-08:00</published><updated>2009-11-03T21:14:40.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='dru'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>AI, here I come</title><content type='html'>Note: Apparently Square Enix did not like my last blog entry. I am still not sure why, but I like my job and my kids enjoy eating on occasion, so I wont be posting any more play testing recaps. Sorry.&lt;br /&gt;&lt;br /&gt;I got to start working on AI stuff today. Well, I didn't finish my last task until late in the day, so all I really got to do was be brought up to speed on the state of the AI and code a quick function before I left for the day. Looking forward to tomorrow when I will get to dig into the AI a bit more. I will be on the data side of things mostly and Dru will be the one doing the function and core side of things. This should be a lot of fun and I am really looking forward to it.&lt;br /&gt;&lt;br /&gt;It has been a nice change of pace to only be on one project. Going back and forth on projects gets rough. Most of my work lately has been bug fixes, which is actually kind of nice because it gets me looking at all the different parts of the engine which makes things easier to find for future tasks.&lt;br /&gt;&lt;br /&gt;I have now officially been working for Gas Powered Games for 2 months and I am still loving it. I am like a kid in a candy store. In the past I have always found it hard to get up to go to work in the morning. At this job getting there isn't an issue, it is leaving that I have a problem with. Many times I have found myself in the "one more build" mode where I keep telling myself I will try one more build before I leave. An hour later I remember I was supposed to be leaving. The funny thing is, even when I stay really late very rarely am I the last one to leave. Apparently I am not the only one that has a problem leaving.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6337024077663024504?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6337024077663024504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/11/ai-here-i-come.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6337024077663024504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6337024077663024504'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/11/ai-here-i-come.html' title='AI, here I come'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-9159779778835507659</id><published>2009-10-30T21:19:00.000-07:00</published><updated>2009-10-30T21:19:21.605-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gordon'/><category scheme='http://www.blogger.com/atom/ns#' term='matt'/><category scheme='http://www.blogger.com/atom/ns#' term='aaron'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>My second play test</title><content type='html'>I had my second play test today, and it was a LOT more fun. It was the same four of us as last time except that I was paired with Aaron versus Matt and Gordon. Aaron came by my desk before the match started to remind me to do research during the game. I definitely remembered this time.&lt;br /&gt;&lt;br /&gt;We played our match on the map I used for the screen shot I posted. It is a fairly large map, so I decided to go full on air and played as UEF. I started out by building a mass extractor, power generator, and an air factory. I then built on the other 2 mass spots in my base, another air factory and then sent an engineer out to build on 2 more mass spots near my base. I built a few fighters and started scouting around to see what was up. I built a few bombers and went after one of Gordon's mass extractors. Unfortunately he had it protected with mobile AA and a couple AA defense so I backed off. I built a third air factory and a radar station.&lt;br /&gt;&lt;br /&gt;I put my air factories on repeat build building 1 fighter and 2 gunships and start to mass up a group to do some hunting. I also put some defenses in my main base and a bit around my outlying mass extractors. Once I have about 14 or so gunships and about 8 fighters I go after the mass spot I backed off from before. I blow up his mass extractor and pull my gunships out as his fighters head in. He did not chase me. He rebuilt the mass extractor so I grabbed some more gunships and fighters, bound the groups to keys, and went after mass extractor again.&lt;br /&gt;&lt;br /&gt;I sent in my gunships first and started wreaking havoc, taking out the mass extractor first. He brought in his fighter again, but my fighters intercepted them first. He took out a chunk of my fighting group, but I came out on top. I grabbed some more units, formed them up, and went after another mass extractor. This time I didn't meet any resistance.&lt;br /&gt;&lt;br /&gt;Since I didn't meet any resistance I decided to move in on his main base. I kept my fighters out of AA range and only sent them in to take out the fighters that Matt was sending in to help defend Gordon. I sent my gunships after his mass extractors first, then his power generators, and then went after his factories. I was mopping up the rest of his units when he decided to control-k his ACU in an attempt to take out my gunships to save Matt from the same fate. Unfortunately, the game desynced at that point (still alpha, so it happens). Total game time: about 18 minutes.&lt;br /&gt;&lt;br /&gt;I have said it a few times, but I will reiterate it here; the new economy does not affect the gameplay at all. It is just as fast paced as Forged Alliance, if not more. The match we had was incredibly fun now that I have research down. Can't wait to play again next Friday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-9159779778835507659?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/9159779778835507659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/my-second-play-test.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/9159779778835507659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/9159779778835507659'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/my-second-play-test.html' title='My second play test'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-144417758358154249</id><published>2009-10-29T20:18:00.000-07:00</published><updated>2009-10-29T20:18:42.159-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='patrick'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>I'll never use that in real life</title><content type='html'>I know I am not the only one that said "I'll never use that in real life" in my math class. Boy was I wrong. I got the opportunity to work on another really cool feature for Supreme Commander 2 today, but it required some math that I have never had to use before. It makes me wish I had focused more on math in high school. I've had to learn about vectors, quaternions, and matrices, and a heap of other stuff.&lt;br /&gt;&lt;br /&gt;The most recent example of this was doing Oculus' Ball Lightning. Up until Wednesday Oculus' Ball Lightning would appear below him when summoned. This just looked sloppy and quite stupid. So, Wednesday morning I went in and changed it so that the Ball Lightning spawns in front of him, no matter what direction he is facing. This part wasn't difficult. What took some doing was making it so that the Ball Lightning (trying really hard not to type Balls, btw) would spawn in a row instead of all on top of each other. There was no function available to lua to do that, so I had to create a function in code callable from lua to get a vector cross product. Works great.&lt;br /&gt;&lt;br /&gt;The 1.2 patch for Demigod was completed Wednesday. Stardock just needs to update impulse to support DLC before they can release the patch. Apparently, they also want to run a beta before releasing 1.2 to the general public. The delay is a good thing because it gives Patrick a chance to track down the desync on player disconnect issue before 1.2 is released. I have the utmost confidence that he will be able to track it down.&lt;br /&gt;&lt;br /&gt;There has been some work recently on more screen shots of the game, so hopefully those make it out to the public soon. There has been a lot of work lately on the naval side of things and I am sure the fans will be quite pleased. I just wish I could post more details about it. My most recent SupCom 2 project was a blast. I had damn near every member of the team come by to check out my work today, including Chris Taylor. I can't wait for the supporting effects to go in, it will look awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-144417758358154249?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/144417758358154249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/ill-never-use-that-in-real-life.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/144417758358154249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/144417758358154249'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/ill-never-use-that-in-real-life.html' title='I&apos;ll never use that in real life'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6246152138655891131</id><published>2009-10-26T21:09:00.000-07:00</published><updated>2009-10-26T21:10:23.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pathfinding'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='patrick'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Cautiously optimistic</title><content type='html'>As promised I took some time out today to talk to Patrick, our multiplayer engineer, about the frozen connectivity screen. Unfortunately he didn't have the time to put more effort into trying to repro the issue(he had put in a lot already, but we don't have a testing team so it is hard to test), so I had him tell me where I should look in the code. After a while of stepping over code in my head I found an oddity. After going over it with Patrick we think we have found the source of the issue and, as a bonus, it may be related to the desync problem.&lt;br /&gt;&lt;br /&gt;A while back Stardock had us make a couple significant changes. One, we removed the in-game kick voting system and replaced it with an automatic kick handler. Two, we removed the desync window and added the Invalid Game State system the ends the game if a desync is detected. I think when these two items were added something was missed and now if a player DCs (loses connectivity to one or more players) they get kicked, but the kick handler doesn't get called. This causes the game to freeze until the game has a reason to try and activate the kick handler again (like someone else leaving the game).&lt;br /&gt;&lt;br /&gt;The desync is another matter, but is related. Our working theory is that Impulse is either closing the socket and/or sending the game garbage data for a player. Currently, this should cause another endless connectivity screen, but it may cause a state where some players have the DCd player as a human and some have them as an AI, which would cause a desync.&lt;br /&gt;&lt;br /&gt;We are going to try to set up some tests tomorrow, but it isn't something easily tested without a dedicated testing team, so no guarantees that this works. We are pretty confident we have the endless connectivity screen issue figured out, but not sure about the desync issue.&lt;br /&gt;&lt;br /&gt;Now, for some SupCom 2 news.&lt;br /&gt;&lt;br /&gt;Disclaimer: The following statements are in no way a set of system requirements for Supreme Commander 2 and should not be taken as such.&lt;br /&gt;&lt;br /&gt;Lots of people have been asking about the requirements for SupCom2, so I decided to run a quick test (needed to test pathfinding anyway). I spawned in 500 bots (with Fog of War on) and told them to move, all at once, to a place where they would have to go around some rocks and up a few ramps. I was able to maintain between 25 and 30 fps (zoomed in) and a sim speed of +9 without and issue. This is on a Core 2 Duo 6600 and 2 gigs of ram. This was on a release build and there still some optimizations to be done. Not sure how Forged Alliance would handle that. Again, the disclaimer above applies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6246152138655891131?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6246152138655891131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/cautiously-optimistic.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6246152138655891131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6246152138655891131'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/cautiously-optimistic.html' title='Cautiously optimistic'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6911750852259186797</id><published>2009-10-24T16:32:00.000-07:00</published><updated>2009-10-24T16:32:14.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sounds'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='voice over'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><title type='text'>Birth of a Demigod, part 3</title><content type='html'>This is the third and final part of a multi-part series that I am writing to give people an idea of what actually goes into the creation of a demigod.&lt;br /&gt;&lt;br /&gt;Once the animations are finalized and in-game (and just before effects go in) another pass needs to be done to make sure each demigod's abilities are timed to the animations. This involves scaling the animation to to fit the ability. For example, for Demon Assassins Spine Attack the animation had to be scaled so that Demon Assassin's tail was in the right position just as the cast time finished and the actual ability function started. The ability function also had to be changed so that the projectile was spawned into the game world at the tip of Demon Assassin's tail. This kind of scaling and adjusting has to be done for each ability to make sure everything looks right.&lt;br /&gt;&lt;br /&gt;Next on the list is icons. We need icons for each unique ability the demigod possesses, an icon for the game lobby, an icon for the demigod chooser screen, and an icon for the in-game scoreboard. Each of these icons needs to be created, have alpha layers applied,and be converted to the proper format. After they are in the right location they need to be referenced in each demigod's blueprint so the game knows where to find them.&lt;br /&gt;&lt;br /&gt;Once all the icons are in place and they are tested to be working we need to add each demigod's lobby movie. Each movie is essentially a scene rendering in either Maya or 3D Studio (not sure which was used) that has a transparent background. This rendering is then converted to a .bik file which is referenced in each demigod's blueprint. Each demigod also needs a victory movie.&lt;br /&gt;&lt;br /&gt;Once that is all done, or mostly done, we book time with a voice actor to do the voice overs for each demigod. The sound studio is on the other side of the building, so I not sure how that process works exactly. I imagine the voice actor is given a script of phrases to speak into a microphone and an idea of what kind of voice we are going for. I'll see if I can get more info from our sound guy.&lt;br /&gt;&lt;br /&gt;Lastly, we have a hefty amount of play testing to make sure the demigods play like they are supposed to. We have to insure that the abilities work right, that they are balanced, that their animations and effects work properly, and that sounds and such are firing off properly. We also have to get someone to translate all of the new strings so that we can localize them for foreign languages.&lt;br /&gt;&lt;br /&gt;This is it for part 3 and the Birth of a Demigod series. I hope this gives you some insight into the amount of work that goes into making a demigod.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6911750852259186797?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6911750852259186797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6911750852259186797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6911750852259186797'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-3.html' title='Birth of a Demigod, part 3'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-538258432099765757</id><published>2009-10-23T23:51:00.000-07:00</published><updated>2009-10-23T23:53:11.304-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='gordon'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='matt'/><category scheme='http://www.blogger.com/atom/ns#' term='aaron'/><category scheme='http://www.blogger.com/atom/ns#' term='screen shot'/><category scheme='http://www.blogger.com/atom/ns#' term='play test'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>The game is actually fun</title><content type='html'>I got my first play test in today and I have to say the game is fun. It was me and Matt versus Gordon and Aaron. I didn't end up doing all that well for 2 reasons. 1) I started out playing like it was Forged Alliance and I built too many factories and 2) I neglected my research.&lt;br /&gt;&lt;br /&gt;I didn't really notice a difference playing with the new economy. Queuing was a bit of a hassle if I didn't have the resources, but I hope that gets changed a bit. Creating hordes of units was just as easy with the new economy as it was with the old. You queue up the units you want built and turn on repeat build, not hard. The factories build quite a bit faster than in Forged Alliance so the games pace is really nice.&lt;br /&gt;&lt;br /&gt;I got assigned to Demigod again today to add in the Demigod lobby movies and add a few new features for the next patch. I hope to set aside some more time Monday to see if I can repro that desync bug. If I can't repro it I'll just have to hope Spooky and his friends can.&lt;br /&gt;&lt;br /&gt;Supreme Commander 2 development is in high gear. We have another milestone deadline approaching and there is still a lot of work to get done. There has been a lot of performance optimizations going in lately so the game is running really smooth now. The game I played today was on a release build (not as optimized as a retail build) and there were only a few hiccups.&lt;br /&gt;&lt;br /&gt;Some of the new features going in make me wish I could go add them to Forged Alliance. Overall, I think a lot of the people whining and moaning about the game are going to be in for a nice surprise, if they even bother to take a look at the game. The team has been hard at work fixing a lot of the things the fans have been clamoring for. Don;t get me wrong, there is still a lot of work to be done and fans will have to get used to the new economy system (not that hard, seriously), get used to research (again, not that hard), but with the new features going in and the engine optimizations I think the fans will be in for a seriously fun game.&lt;br /&gt;&lt;br /&gt;I have been getting question about the missing screen shot. Well, I was given permission to post the screen shot a little too early it seems. Apparently Square Enix saw the screen shot posted on the Gas Powered Games forums and followed it back here, although I am not sure how. So, I got asked to take the screen shot down. No big deal, at least you guys got to see it before it was taken down.&lt;br /&gt;&lt;br /&gt;If anyone is curious what are office looks like there is an intel video up with brief glimpses of our work area. You can see some of the team, including me. It is more of an advertisement for intel, but there is some gameplay footage as well. Might be worth a look: &lt;a href="http://cariplus.co.cc/2009/10/intel-ssd-gas-powered-games/"&gt;http://cariplus.co.cc/2009/10/intel-ssd-gas-powered-games/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-538258432099765757?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/538258432099765757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/i-got-my-first-play-test-in-today-and-i.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/538258432099765757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/538258432099765757'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/i-got-my-first-play-test-in-today-and-i.html' title='The game is actually fun'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4533747084086866007</id><published>2009-10-17T13:52:00.000-07:00</published><updated>2009-10-17T13:52:41.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gordon'/><category scheme='http://www.blogger.com/atom/ns#' term='sounds'/><category scheme='http://www.blogger.com/atom/ns#' term='achievements'/><category scheme='http://www.blogger.com/atom/ns#' term='matt'/><category scheme='http://www.blogger.com/atom/ns#' term='meshes'/><category scheme='http://www.blogger.com/atom/ns#' term='shana'/><category scheme='http://www.blogger.com/atom/ns#' term='model'/><category scheme='http://www.blogger.com/atom/ns#' term='voice over'/><category scheme='http://www.blogger.com/atom/ns#' term='effects'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Birth of a Demigod, part 2</title><content type='html'>This is the second of a multi-part series that I am writing to give people an idea of what actually goes into the creation of a demigod.&lt;br /&gt;&lt;br /&gt;At this point, most of the work is in Shana's capable hands. She is responsible for editing the abilities so they are balanced and to make sure they function as advertised. She also makes sure that the abilities in work for that demigod. If any problems arise in functionality or if she wants an ability to work differently she lets me know so I can code in the necessary fixes or changes. She also re-organizes up the skill tree for each demigod.&lt;br /&gt;&lt;br /&gt;During this process work has been getting done on each demigod's model and animations. After the models were completed, along with a few of the animations, it was my job to set up the animation state machine. The state machine tells the game what animation to play when the demigod performs certain actions like running, attacking, casting, and any special abilities the demigod possesses. The state machine also tells the game what sounds to play during those animations and at what point. It also houses information about model scale and meshes. Since we don't have sounds or meshes yet I comment that stuff out for now.&lt;br /&gt;&lt;br /&gt;One the initial state machine is set up for each demigod and the animations check out my work on the new demigods is done for a little while, unless some ability bug crops up or something. Our modelers, animators, and artists continue to work on getting the animations finished an in the state machine and getting meshes done and in-game. Once an ability's animation is in-game the ability blueprint also has to be changed to reference that animation.&lt;br /&gt;&lt;br /&gt;At this point sounds also start making it into the game. Sounds for things like getting hit and attacking. Also, some placeholders for VOs and such can also be added in. There also needs to be sounds for casting and sounds for each special ability.&lt;br /&gt;&lt;br /&gt;After my short break once I had the state machines in place it was time to go back and add in the achievements for each of the new demigods. The achievement information for each demigod is stored in a file that tells the game the name of the achievement, which demigod's achievement it is, and the conditions for the achievement. I also had to alter some of the other demigod's achievements that required you to do something to every demigod in the game so that they referenced the new demigods as well. I also had to change the tracking system a bit so that it tracked things needed for the new achievements.&lt;br /&gt;&lt;br /&gt;Once all of the animations are in place and the abilities are solid it is time for the effects guys to do their magic. We had two guys, Matt and Gordon, working on the effects for the two new Demigods. They made a competition out of it. They each took a demigod and did the best job they could with the effects and played against each other to show them off. Unfortunately, there was a problem with Demon Assassin's Warp Area ability, which I detailed in an earlier post, that caused the match to be a little one-sided. The good news is the effects turned out quite nice.&lt;br /&gt;&lt;br /&gt;This is it for part 2. Part 3 to come soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4533747084086866007?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4533747084086866007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-2.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4533747084086866007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4533747084086866007'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-2.html' title='Birth of a Demigod, part 2'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4781023513224338249</id><published>2009-10-17T12:18:00.000-07:00</published><updated>2009-10-17T12:18:51.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Another Demigod bug bites the dust</title><content type='html'>Well, I am fairly certain I was able to fix the problem with using an ability against an enemy and then having your hero stop to attack the nearest thing. Monday I will try to take a look at why some abilities cancel abilities in progress and some don't. Hopefully I can get the time to track that down, but no guarantees. I still have a lot of tasks on my plate for SupCom 2.&lt;br /&gt;&lt;br /&gt;Looks like I am going to start assisting on the AI here in the next week or so. I am going to start play testing to get a feel for it before I start working on the AI. Not sure yet what I am going to be doing exactly, but I like working on AI so I am sure I will enjoy whatever AI work comes my way.&lt;br /&gt;&lt;br /&gt;I am excited to get a chance to play the game. There is so much work to be done that to stop and play the game just feels wrong. I guess that is a feeling I am going to have to get over. Playing the game is part of my job and I just have to adjust my mindset to accept that fact; it isn't playing, it is work. It just happens to be fun work.&lt;br /&gt;&lt;br /&gt;I have to say, this is the first job I have had where I actually look forward to working. Don't get me wrong, all things equal, I would rather be home with the family. But, if I have to have a job to go to, this is it. I think a lot of the people that work at GPG have the same mindset, and it shows.&lt;br /&gt;&lt;br /&gt;Some really interesting features went in this week to make the game even less micro intensive and to make the end game battles more epic. The main focus of this project has been making things more about battles, less about micro, and I think it works. I will get a better idea in the next week or so during play tests and give you my opinion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4781023513224338249?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4781023513224338249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/another-demigod-bug-bites-dust.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4781023513224338249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4781023513224338249'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/another-demigod-bug-bites-dust.html' title='Another Demigod bug bites the dust'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3120720868158054157</id><published>2009-10-13T20:41:00.000-07:00</published><updated>2009-10-19T19:46:55.954-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='screen shot'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><title type='text'>Changing the game - one piece of code at a time</title><content type='html'>One thing I really love about this job is I get to go into the code a fix some of the things that really bugged me about Forged Alliance. Hopefully during this milestone I will get an opportunity to improve even more things.&lt;br /&gt;&lt;br /&gt;The effects for the new demigods are finally in and they look awesome. The ability icons also made it in today. One of our artists got them together this morning and I got the lovely task of going through them all and setting up alpha channels, making them look more button-like, exporting them as .dds files, and then fixing the blueprint and ability files to point to the new icons. It was actually kind of fun getting to do something completely different.&lt;br /&gt;&lt;br /&gt;I also got a chance to tweak a few more things. I unintentionally made Demon Assassins Warp Area way overpowered yesterday. If you used it with only one target in range that target would get hit for every warp. Now there is a maximum number of times a singe target can be hit. I also put the finishing touches on Occulus' Blast Off ability. I definitely think Demon Assassin is more fun to play, but I'm not a General person. If you like Generals, Occulus will be more your style.&lt;br /&gt;&lt;br /&gt;I have been trying to hunt down every bug I can for 1.2, but a some of the ones that have been reported recently I just can't repro. The main one I tried to hunt down today was the report of a desync that was "99.9% reproducible" by having one team control the map. I had the game running and creating a desync log every tick so that I could track down exactly what was desyncing, but I could not reproduce that bug. If I get time tomorrow I think I am going to take a look at the weapon targeting code and see what I can do about the demigods auto attacking nearby stuff when you want them to attack something else.&lt;br /&gt;&lt;br /&gt;Now, for the news you have been waiting for. My screen shot got approved today. Keep in mind, the game is still in alpha stage, so what you see here can (and probably will) change. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt;Image removed at the request of&lt;br/&gt;Square Enix&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3120720868158054157?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3120720868158054157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/one-thing-i-really-love-about-this-job.html#comment-form' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3120720868158054157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3120720868158054157'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/one-thing-i-really-love-about-this-job.html' title='Changing the game - one piece of code at a time'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6053908777545021285</id><published>2009-10-11T01:03:00.000-07:00</published><updated>2009-10-11T01:03:23.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='shana'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='model'/><category scheme='http://www.blogger.com/atom/ns#' term='unit creation'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Birth of a Demigod, part 1</title><content type='html'>This is the first of a multi-part series that I am writing to give people an idea of what actually goes into the creation of a demigod.&lt;br /&gt;&lt;br /&gt;My first task after being hired by Gas Powered Games was to set up the new demigods. This is definitely a lot more work than I expected and over a far greater time than I had anticipated. The normal starting point would be creating the concept for each demigod. The concepts for Demon Assassin and Occulus were already done before I got there, so I can't comment on that phase.&lt;br /&gt;&lt;br /&gt;The first thing I had to do was create the blueprint for each new demigod. Basically, I just copied over Regulus' blueprint as template and edited it from there. The main focus for the first pass was making sure the categories were correct and that the weapon was set up properly. No detail at this point, just the basics. I also had to use Regulus' model in-game as a stand in for Demon Assassin since no model existed for him at this point. For Occulus, there was a very basic model. It basically looked like a golden Buddha statue.&lt;br /&gt;&lt;br /&gt;Next, I had to code all of the abilities. For an active ability there is a blueprint for each level of the ability that lists things like how much damage the ability does, what the ability can target, cool down, cast time, etc. Inside that blueprint we can add ability specific stuff like how many target Oculus' chain lightning can hit. Each one of those blueprints use a single function to actually perform the ability. The function handles setting up emitters, beam effects, impact effects, and dealing damage. Also, there needs to be a buff blueprint for any buffs that are applied, any kicker abilities there may be, and any debuffs that are applied. Coding and testing abilities was probably the longest part of the demigod creation process for me.&lt;br /&gt;&lt;br /&gt;To actually get the abilities in game I had to create a skill tree for both demigods. This tells the game what abilities are available for the demigod and at what level. It also tells the game how to display the skill tree in-game. I also had to list the skills in the demigod's blueprint. The skills listed in the blueprint tell the game what the pre-requisites are for each skill and what each skill enables and and disables.&lt;br /&gt;&lt;br /&gt;Occulus required a little more work because he is a general. So, I had to create the blueprints for his summonable minions as well. All of the work so far has been using temporary models, temporary effects (if any at all), and temporary values for abilities. The balance person is the one that will go back and put in the actual values for abilities. But, it is fun playing around with an uberly over powered demigod for a while.&lt;br /&gt;&lt;br /&gt;One thing I forgot to mention, when wiring up abilities you also have to make sure you do it in such a way that makes them easy to modify. For example, all the values needed to modify chain lightning, from the damage, the number of targets it hits, to the delay between chains, is modifiable in the blueprint. So, if Shana, who is the one that did the balance work on the new demigods, wants to make a modification to chain lightning, she doesn't have to mess with the code. She just has to change a value in the blueprint. This means she doesn't have to track me down to get something changed every time she wants the ability changed a little bit. This makes her job and my job easier.&lt;br /&gt;&lt;br /&gt;This is it for part one. Hopefully, I will continue with part 2 next week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6053908777545021285?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6053908777545021285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6053908777545021285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6053908777545021285'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/birth-of-demigod-part-1.html' title='Birth of a Demigod, part 1'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-7908266720940353128</id><published>2009-10-11T00:16:00.000-07:00</published><updated>2009-10-11T00:16:38.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'></title><content type='html'>Well, I managed to survive the week. I wont hear whether or not Square Enix approved it until Monday, but I don't think there will be an issue. The game is pretty solid. We had some downtime Friday since we had to lock down the code so we could compile a build for SE. Most people got in some play tome to test the build. A few guys got together and had an hour long slug fest (they turtled a lot).&lt;br /&gt;&lt;br /&gt;During the downtime I got some polish work done on Demigod. I think I finally got Occulus' Chain Lightning ability working well. These new demigods are awesome. Demon Assassin is still my favorite, but Occulus is definitely fun. Being able to zap a big group of grunts with lightning is very fun, especially now that it works right. Before, there was a high probably of hitting one or two before the chain stopped.&lt;br /&gt;&lt;br /&gt;Looking forward to next week. Should be a bit milder pace and I have made it through all of my priority 1 and 2 bugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-7908266720940353128?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/7908266720940353128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/well-i-managed-to-survive-week.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7908266720940353128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/7908266720940353128'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/well-i-managed-to-survive-week.html' title=''/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-15589620559879341</id><published>2009-10-08T22:40:00.000-07:00</published><updated>2009-10-08T22:40:07.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='shana'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Essential websites</title><content type='html'>While working there are some essential websites I have open. I have the basics like gmail and twitter as well as the GPG forums, Demigod forums, Uber Entertainment forums, and my blog page. While coding in c++ there is a lot of downtime. Whenever I make a change I have to rebuild the game so I can test my changes. Building can take 5 or 10 minutes, sometimes longer if I change a header file or if I have to sync with the repository first. During the downtime I take a look at some of the sites to read posts, check email, and view comments.&lt;br /&gt;&lt;br /&gt;We also have a web accessible internal bug tracker that I have open. It lists all of the known bugs on all projects. This is where we post any bugs that we find and those bugs get assigned to someone to fix.&lt;br /&gt;&lt;br /&gt;The other site that I have found very useful is pandora.com. Most people in the office wear headphones while they work (myself included, now) and listen to some form of music. A lot of people bring in music on iPods or iPhones and either load it onto their machines or listen directly from the player. The music helps me focus. I seem to get more done.&lt;br /&gt;&lt;br /&gt;This week has definitely been hectic, but the game is looking more polished by the day. I have gotten a chance to work on some really fun stuff lately. Tomorrow I will spend the morning working on Demigod again. I have to polish a couple skills a bit more now that their effects are in. I think Shana also had a couple more requests for me.&lt;br /&gt;&lt;br /&gt;The effects for the new demigods are going in. They are really starting to look nice. Still no idea when they are going to be completely done, but progress is being made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-15589620559879341?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/15589620559879341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/essential-websites.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/15589620559879341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/15589620559879341'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/essential-websites.html' title='Essential websites'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-19786067327515068</id><published>2009-10-06T22:50:00.000-07:00</published><updated>2009-10-06T22:51:22.181-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Our effects guys rock</title><content type='html'>Coding something and seeing it become part of the game is a whole different experience than coding for a mod. I used to get an incredible sense of gratification when I would finish adding a new feature to the AI or the Lobby Enhancement Mod. Now, not only do I get an even bigger sense, but my co-workers can share in the enthusiasm.&lt;br /&gt;&lt;br /&gt;I finished adding a new Cybran ACU weapon upgrade today that I have been waiting to do for a while. Code-wise it was pretty cool. Nothing too complicated, but I have a vision of what it will look in-game, and my vision looks awesome. Now, the thing I like about our effects guys is they get just as excited about doing a really cool effect as I do imagining it.&lt;br /&gt;&lt;br /&gt;So, I told the guy that was going to be doing the effect for this new weapon upgrade what I imagined it should look like. I got to see a rough version of the effect before I left work today and it was looking really nice. I can't wait to see the finished product.&lt;br /&gt;&lt;br /&gt;Overall the game is looking a lot nicer. It is amazing how much effects can change the feel of the game. Stuff that seemed kind of overlooked in SupCom is getting the royal treatment for SupCom 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-19786067327515068?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/19786067327515068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/coding-something-and-seeing-it-become.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/19786067327515068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/19786067327515068'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/coding-something-and-seeing-it-become.html' title='Our effects guys rock'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4949250400569108589</id><published>2009-10-05T22:01:00.000-07:00</published><updated>2009-10-05T22:01:50.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><title type='text'>We really do listen</title><content type='html'>If you haven't noticed, I updated the site this past weekend. The old site scheme was really bland. I like this one a whole lot better and I hope you do too.&lt;br /&gt;&lt;br /&gt;The team working on SupCom 2 is a truly dedicated group of people. I would estimate a quarter to third of the team working on SupCom2 put at least one days of overtime in per week, often more. Now, for those of you who do not know, game developers don't get paid overtime and Gas Powered Games does not normally require overtime. This means when a game developer at GPG works overtime it is because they want to, not because they have too or because they are trying to make some extra money.&lt;br /&gt;&lt;br /&gt;The team also listens to fan requests. Today was a great example. I had just finished coding in some more research system support when or lead effects guy (who also does a lot of content engineer work) brought up adding a new feature using the new stuff I had just coded in. The reasoning behind the idea was that it has been a feature requested by the fans since vanilla SupCom that was never implemented. He figured since we have the system set up as part of the new research support, we might as well look into adding this new feature as well. Hopefully it gets the green light tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4949250400569108589?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4949250400569108589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/dedicated-team.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4949250400569108589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4949250400569108589'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/dedicated-team.html' title='We really do listen'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-8483353592939435551</id><published>2009-10-03T11:00:00.000-07:00</published><updated>2009-10-03T15:12:49.270-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>What a way to end the week</title><content type='html'>We had a company outing to the movies to watch Zombieland. That movie was hilarious. Things have been so hectic this week it was nice to have some down time and laugh.&lt;br /&gt;&lt;br /&gt;Next week is the last week of milestone 13. For those of you who do not know, milestones are simply points in the project where certain features are supposed to be in the game and working. At the end of each milestone we create a build of the project and send it to the publisher for approval. The publisher expects the features that are supposed to be included in the milestone to be working. That is why it can get hectic towards the end of a milestone. These last few milestones have been especially hectic because they were really short.&lt;br /&gt;&lt;br /&gt;Once the publisher approves a milestone we can breathe a small sigh of relief and continue working on the next milestone. Luckily milestone 14 is about twice as long as 13. Hopefully, for the next project I will get a better understanding of how milestone dates are chosen and such. I came into SupCom 2 too late to get an understanding of how that is determined.&lt;br /&gt;&lt;br /&gt;In the midst of all the chaos, I was still able to finish my Demigod work Thursday. Patch 1.2 is really starting to shape up. I can't wait to see the new Demigods after all of their effects are in place. Should be really nice. Demon Assassin is still my favorite.&lt;br /&gt;&lt;br /&gt;I expect next week to be just as hectic, if not more so. I also expect some more tasks to be transferred to me from other people's backlogs, since mine is so short at the moment. It is only short because the bulk of the work I have left for milestone 13 is bug hunting. Hopefully, I inherit some more cool projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-8483353592939435551?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/8483353592939435551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/10/what-way-to-end-week.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8483353592939435551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/8483353592939435551'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/10/what-way-to-end-week.html' title='What a way to end the week'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6845969331450235429</id><published>2009-09-30T23:01:00.000-07:00</published><updated>2009-09-30T23:31:21.697-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Another "simple" task</title><content type='html'>Looks like I will be back on Demigod again tomorrow. I have to finish up the achievements. Apparently, the achievements were already decided for both demigods and they were available in a spreadsheet. Would have been nice to know beforehand. I am going to have to add some custom stats tracking as well, which will make this task take quite a while longer. I also have some final animation state machine work to do and some last minute blueprint stuff. Hopefully I will be done with Demigod for a while after this week. Not that I don't like it, I just have a lot of SupCom 2 stuff to do.&lt;br /&gt;&lt;br /&gt;I also repaired some more of the bugs that were listed in the consolidated list thread on Stardock's site. The engine stuff is handled by someone else, but he is aware of the thread, so hopefully he can take a look at some of the engine related issues.&lt;br /&gt;&lt;br /&gt;Had my first big project for SupCom 2. Another one of those seemingly simple tasks that are not so simple. I started coding for it this morning and hope to have it finished tomorrow morning. I know, one day is not that big of a project, but it is the biggest c++ coding project I have been assigned so far. Going from completing several tasks a day to spending all day on one project is quite a change. I don't get the constant sense of accomplishment as I complete tasks. Hopefully that will come tomorrow as I complete this one large task.&lt;br /&gt;&lt;br /&gt;The shader work still has not been done on the UEF ships yet. We have a very close milestone approaching. I think there was only a month between the last milestone and this upcoming one, which is not much time, so I think the shader work has been pushed back a bit. I will try and see if I can use a different factions ships that are done. Hopefully there is at least one factions ships that are picture worthy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6845969331450235429?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6845969331450235429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/another-simple-task.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6845969331450235429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6845969331450235429'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/another-simple-task.html' title='Another &quot;simple&quot; task'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-2811037467169485646</id><published>2009-09-26T18:19:00.001-07:00</published><updated>2009-09-26T18:32:49.756-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PAX'/><category scheme='http://www.blogger.com/atom/ns#' term='GamesCom'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Hard to keep quiet</title><content type='html'>It is very hard to read the posts on the forums and not put in some sort of reply. People are complaining the GPG is dumbing down SupCom 2 because of the changed economy and various other reasons that I honestly don't know where they are getting their info from.&lt;br /&gt;&lt;br /&gt;One of the guys I share an office with has a standing daily game that he plays with our balance designer. In watching them play I can honestly say this game is shaping up to be more fun than Forged Alliance. It is faster paced, with the action being centered around combat, not some intricate economy system. The entire games pace and feel are being changed daily based on playtime feedback, so anything you saw at GamesCom or PAX has completely changed now.&lt;br /&gt;&lt;br /&gt;So, when you read the doomsayers' posts about how this game is going to suck because of the "dumbed down" economy or because it is not going to have [insert feature here] &lt;insert&gt;  just remember, there are probably quite a few things going into the game that has not been announced yet. It is what is going into the game that is going to make it succeed, not what isn't going in.&lt;/insert&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-2811037467169485646?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/2811037467169485646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/hard-to-keep-quiet.html#comment-form' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2811037467169485646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/2811037467169485646'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/hard-to-keep-quiet.html' title='Hard to keep quiet'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3626734652501384141</id><published>2009-09-24T20:50:00.000-07:00</published><updated>2009-09-25T09:34:11.216-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Most awesome day...so far</title><content type='html'>There are only two words that can describe the day I had today. Kick ass!&lt;br /&gt;&lt;br /&gt;I was tasked with adding two new weapon systems to the Cybranasaurus Rex. One weapon was a no frills cut and paste job. The other weapon, however, had no design idea behind it. All it had was a very vague requirement. Oh really?&lt;br /&gt;&lt;br /&gt;I had a really cool idea for this weapon, so I got together with an effects guy and asked if my idea was feasable and what he thought of it. He said it sounded cool, but if I could find the video of the real world weapon system I derived my idea from, it would help.  After seeing the video he was really enthusiastic. So, after balance gave it the thumbs up I got to work.&lt;br /&gt;&lt;br /&gt;It didn't take long before I had a first pass done. A little while later I had it all rigged up. Even with placeholder effects and projectiles it still looks awesome. Now, I am going to have a weapon system in the game that was mine, from concept to code.&lt;br /&gt;&lt;br /&gt;I also got some time in for Demigod today. I got all the new achievements and stat tracking set up. I also managed to get the minimap working in replays as an observer thanks to some new textures courtesy of Servo. Now, everything shows up as neutral in observer mode.&lt;br /&gt;&lt;br /&gt;I know most of you are probably subscribing to this blog to get info on SupCom 2, which is fine. But, I hope I can try a help some of you out there realize what goes into games. A simple sounding request like making the minimap work as an observer is not as simple as it sounds. Most people act like it is just flipping a switch, which was not the case. It took 3 new textures, modifying 2 lua files, and modifying 3 source code files to make it work. I had to plug in values for to tell the minimap how to display neutral citidels, structures, demigods, etc. I had to set up the minimap source code to sort entities into neutral categories. I also had to tell the game to treat entites as neutral to observers. All for one seemingly simple change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3626734652501384141?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3626734652501384141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/most-awesome-dayfo-far.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3626734652501384141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3626734652501384141'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/most-awesome-dayfo-far.html' title='Most awesome day...so far'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4692842968127804235</id><published>2009-09-23T21:52:00.000-07:00</published><updated>2009-09-23T22:05:45.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='localization'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Can I get a can of bug spray here?</title><content type='html'>Stayed late tonight to put in some fixes for Demigod patch 1.2. The UI should be solid in replays now. I also managed to get in some fixes that have been on my personal bug list for quite a while now, including some that have not been caught by the community and have been there since release. Now, I just have to wait and see whether I am going to be able to get my new textures so I can update the minimap or if I am going to have to create them myself at home.&lt;br /&gt;&lt;br /&gt;The new Demigods are still coming along nicely. I have to create the achievements for them this week. They still need effects work, localization, VOs, etc. so there is still a way to go.&lt;br /&gt;&lt;br /&gt;There is supposed to be an 8-player match of SupCom 2 tomorrow. I am going to have to see if there is still room. I still haven't been able to take the time to actually play a round yet. I have been too busy trying to get content finished. Milestone 13 is approaching and I still have a lot of work on my plate.&lt;br /&gt;&lt;br /&gt;Went through all of the SupCom 2 units to update them to use some new sound functions that should help performance quite a bit. I also got to finish up the polish work I wanted to do to the unit cannon. That thing is awesome now. I may have spotted a minor issue while watching a couple co-workers play earlier today, so I may have to take another look at the unit cannon tomorrow to see if I have reproduce the bug.&lt;br /&gt;&lt;br /&gt;The shader work has not been done on the UEF naval units yet, so the screenshot is still on hold. It will be worth the wait to actually see the UEF units in all their glory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4692842968127804235?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4692842968127804235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/stayed-late-tonight-to-put-in-some.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4692842968127804235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4692842968127804235'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/stayed-late-tonight-to-put-in-some.html' title='Can I get a can of bug spray here?'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-6289606557319923490</id><published>2009-09-18T19:49:00.000-07:00</published><updated>2009-09-18T19:58:33.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>What a week</title><content type='html'>Got assigned to Demigod some more today. The new demigods are looking really nice. Amazing what some texturing, shaders, and specular highlights can do. I think the effects team gets to work on them next week and I can't wait to see that.&lt;br /&gt;&lt;br /&gt;I guess Demigod patch 1.19 goes live Tuesday. Having replay support is going to be awesome for the community. Patch 1.19 will be my first code contribution that goes into a retail game. It is a really cool feeling.&lt;br /&gt;&lt;br /&gt;I did a lot of work on the UEF unit cannon today. That thing is really cool now, and it is going to be even cooler next week. Me and a co-worker got some stuff planned out today to really polish the unit cannon up nice.&lt;br /&gt;&lt;br /&gt;Good news for anyone that follows this blog. It looks like Gas Powered Games is going to let me post an exclusive screen shot. I tried to get it done today, but the UEF ships need some shader and specular work. Hopefully that work gets done early next week and then I can create the shot again and give you guys a nice look at some naval units and the new water effects. This is by no means a guarantee, but it looks likely.&lt;br /&gt;&lt;br /&gt;Do stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-6289606557319923490?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/6289606557319923490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/what-week.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6289606557319923490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/6289606557319923490'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/what-week.html' title='What a week'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-4158710282132287318</id><published>2009-09-16T21:03:00.000-07:00</published><updated>2009-09-17T21:19:29.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Getting the hang of this</title><content type='html'>I think I am starting to get a handle on things. One of my co-workers was kind enough to give me a run-down on the moho engine's structure and how everything interconnects. It has made finding things a &lt;span style="font-style: italic;"&gt;lot&lt;/span&gt; easier.&lt;br /&gt;&lt;br /&gt;I got assigned to Demigod again Tuesday (and again today) to fix some more bugs that Stardock found. It was mostly minor things that were quick to fix. What took a while was working on the new demigods some more. There is still a lot of work to be done on that front, but it seems to be moving right along. I think I will have the final pass of the abilities done tomorrow (they will still need to be balanced). Then it will be finishing up animation integration, mesh integrations, and some final cleanup passes, and that is just my part in it.&lt;br /&gt;&lt;br /&gt;Thanks to the nice moho structure lesson my work on SupCom 2 has been getting faster. I fixed a bug today that has been bugging me since last Friday. I have also gotten a lot more comfortable in C++. I have been doing so much work in C++ lately that I have started interjecting C++ code into lua.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-4158710282132287318?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/4158710282132287318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/getting-hang-of-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4158710282132287318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/4158710282132287318'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/getting-hang-of-this.html' title='Getting the hang of this'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3442271315820953464</id><published>2009-09-13T19:44:00.000-07:00</published><updated>2009-09-13T21:45:20.779-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='lua'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>How I got my start</title><content type='html'>I have been getting this question a lot, so I thought I would just make a blog entry that I could link to.&lt;br /&gt;&lt;br /&gt;I have been interested in computers ever since my parents bought their Apple IIgs. My parents let me mess with it so long as I could set things back the way they were. There were some close calls, but I always got it working again.&lt;br /&gt;&lt;br /&gt;I took computer programming classes my sophomore and junior years of high school. The one I took sophomore year taught QBasic and the one I took junior year taught Visual Basic (sort of, I was kind of left to my own that year). My QBasic class is where I created my first mod. QBasic came with a game called &lt;a href="http://en.wikipedia.org/wiki/Gorillas_%28video_game%29"&gt;Gorillas&lt;/a&gt;. The game required 2 players to play. I modded it by removing all of the sound (so we could play during class) and also added a single player option. I had the computer player tuned so that it would usually beat you within 3 rounds.&lt;br /&gt;&lt;br /&gt;Everything from then on has been self-taught. I learned how to build webpages using HTML, then later using PHP. I learned how to write some basic Lua by fixing my WoW addons when they broke and were no longer supported (or I was impatient for a fix from the author). I learned Lua more in-depth while modding for Supreme Commander and Forged Alliance. I am currently learning C++ by reading through the Demigod and Supreme Commander 2 source code and bug fixing it.&lt;br /&gt;&lt;br /&gt;I have recently been reading some nice programming guides that were recommended to me that, I think, have improved my programming skills greatly. Not in the functionality department, but in the readability and structure department. My recent code just seems to look and read better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3442271315820953464?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3442271315820953464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/how-i-got-my-start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3442271315820953464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3442271315820953464'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/how-i-got-my-start.html' title='How I got my start'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-5192613651273574605</id><published>2009-09-11T21:11:00.000-07:00</published><updated>2009-09-12T00:33:05.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='square enix'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='stardock'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='chris taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><category scheme='http://www.blogger.com/atom/ns#' term='bartosz kijanka'/><title type='text'>End of week 2</title><content type='html'>One month ago today I was standing in front of Chris Taylor's (CEO - Gas Powered Games)  office being introduced by Bartosz Kijanka (VP of Engineering - Gas Powered Games). During the conversation Chris said that the game industry is like a sausage factory. You may love sausage, but you really don't want to know the details about how it gets made. I think I am starting to get a sense of where he is coming from.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, I still love my job, but this week was hectic. Today was a milestone day for Supreme Commander 2, so there was a lot of rushing to finish up a lot of features and squash as many bugs as possible before building it and sending it to Square Enix. In the midst of that I was assigned back to the Demigod patch yesterday. It was fun being busy, though. Got through a lot of bugs and got to do stuff I've never done as a modder before, like unit wiring.&lt;br /&gt;&lt;br /&gt;Yesterday I was working on fixing the bugs that Stardock sent back about Demigod and found one that had me stumped for a while. After figuring out the issue, conveniently after my partner who codes in C++ regularly had left for the day, I found that the only solution was to create a new C++ function. Took me way longer than it should have because I have very little C++ experience and I am not familiar with the Demigod source code. This morning I got it all figured out and got to submit my first C++ change into the repository.&lt;br /&gt;&lt;br /&gt;Now, to enjoy a nice relaxing weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-5192613651273574605?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/5192613651273574605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/end-of-week-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5192613651273574605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/5192613651273574605'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/end-of-week-2.html' title='End of week 2'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-3911379517370948871</id><published>2009-09-09T12:17:00.000-07:00</published><updated>2009-09-11T22:07:33.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pathfinding'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='forged alliance'/><category scheme='http://www.blogger.com/atom/ns#' term='pathing'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Best pathfinding ever</title><content type='html'>Just for kicks I loaded up a map to really put the new pathfinding system to the test. I spawned 600 (not a typo) UEF Assault Bots and gave them all a move order. To my surprise, they quickly grouped up into a nice square and started heading towards their destination. After reaching their destination, I gave them another move order to the left. The quickly reformed their group and started moving.&lt;br /&gt;&lt;br /&gt;As a real test I spawned a Fatboy and made the 600 units and the Fatboy move towards each other. The Fatboy went right through the platoon without a problem and the units regrouped on the other side and continued moving.&lt;br /&gt;&lt;br /&gt;Was amazing to see. Try that in FA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-3911379517370948871?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/3911379517370948871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/best-pathfinding-ever.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3911379517370948871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/3911379517370948871'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/best-pathfinding-ever.html' title='Best pathfinding ever'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7472467918818089852.post-490544946829181519</id><published>2009-09-08T23:56:00.000-07:00</published><updated>2009-09-11T22:07:53.011-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Demigod'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Supreme commander 2'/><category scheme='http://www.blogger.com/atom/ns#' term='gas powered games'/><title type='text'>Better late than never</title><content type='html'>I probably should have started this last week, but oh well. I will give a synopsis of last week and then start fresh.&lt;br /&gt;&lt;br /&gt;I started at Gas Powered Games last Monday and was immediately thrown in to the small group working on the next Demigod patch since I was already familiar with the code. My first task was to code all the abilities and supporting code for the two new Demigods. Next, was bug fixing both Demigod and SC2. Quite a different experience coding for the game for release than it is to mod a game.&lt;br /&gt;&lt;br /&gt;Week 2 started Tuesday (Monday was a holiday). Fixed another couple of Demigod bugs (not as many as I wanted to fix, but it still adds up to a lot). Added a new campaign AI behavior for SC2. Most of my time was spent going through all of the units to make a log of everything that still needs to be done. Went through Cybran and UEF, will finish Illuminate tomorrow and then start fixes.&lt;br /&gt;&lt;br /&gt;Not too impressed with the look of the Fatboy, but it certainly has some firepower. When I saw the UEFs major land experimental I totally forgave the look of the Fatboy. The major experimental is totally fucking awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7472467918818089852-490544946829181519?l=soriandev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soriandev.blogspot.com/feeds/490544946829181519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://soriandev.blogspot.com/2009/09/better-late-than-never.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/490544946829181519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7472467918818089852/posts/default/490544946829181519'/><link rel='alternate' type='text/html' href='http://soriandev.blogspot.com/2009/09/better-late-than-never.html' title='Better late than never'/><author><name>Michael Robbins</name><uri>https://profiles.google.com/112541435950272574717</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-Q4TZTwIEOrk/AAAAAAAAAAI/AAAAAAAAAxg/0kE5wmmpJLI/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry></feed>
