Archive for the ‘Pursuit of Power’ Category

May 4th, 2006

Monday, August 14th, 2006

Most of my tweaks and bug fixes are done.  I would say that I have around 5 more days of work on my game engine.  This includes making a demo version of my game.  I also still need to package the graphics content and pack the player data more efficiently to reduce the file size for saved boards.  All manageable stuff.

The previous week was full of changes so I’m not going to rehash them.  Instead, I will talk about a new board I made.  I created this 300×300 board that I called “Deathmatch.”  I needed a quicker board after last week’s huge 750×750 one.

I designed the new board to start fast and be action-packed.  It definitely lived up to my expectations.  The battles are pretty fierce.  In fact, the 4 of us could not beat the 4 normal computers a few times.  Since the board is compact, the attacks pack more of a punch than usual.  The troops aren’t as spread-out and therefore deliver decisive damage to bases.  I have the spawn points and starting resources positioned in a way that allows enemies to come at them from all directions.  I also have the contested resources placed at intersections, which make them tough to hold.  There is a definite tradeoff between having a lot of resources and being able to defend them effectively.

We played this board several times and had a lot of fun.  I think if I could get everyone to play a network game with me, I would be able to sell a lot of games.  The single-player skirmish is a lot of fun too, but the computer is pretty selfish and will not teleport over to help like a human teammate.  Maybe sometime in the future I can code that behavior.  For the time being, I have to hope that I provided enough fun outside the network game.  The campaign anchors the game in a sense due to its story progression and goals.  It helps make the game feel more complete.

I think the overall game is right on target for my original design.  It is pretty simple to play — at least by RTS standards.  It has a lot of extra mechanics that can be learned during the game.  There are many unique aspects: line-of-sight, terrain that affects movement, focus on leader with fun abilities, solid engine with lots of features, etc.  I hope that others see the value in my game and are able to enjoy it too.

I would really love to make the sequel.  I have so many ideas for it.  In fact, I basically split the game into 2 parts from the start.  I knew it would just be too much to get into one game within a reasonable amount of time.  This method also allows me to see how the game mechanics work in the first release so that I can improve them in the next.  For now, I will just worry about getting this first one completed and hope I make enough money to pay my bills :)

April 27th, 2006

Monday, August 14th, 2006

One month until release.

I can’t believe the day is almost here.  I have been working on this game for 32 months.  Even though the first year was mostly learning, it is still a long time to spend on one project.  I am very happy with its current state.  I only have about 1.5 weeks of work left on the game engine.  The remaining time will be spent cranking-out board content.  I will also spend some time addressing issues with the demo, which I will have ready on May 14th.

This past week I got my optimizations done.  In fact, I got a heck of a lot done in general.  With the path-finding much more efficient, I was able to slightly lower the computer CPU requirement to 800 MHz.  I am much more confident that the game will run smoothly, regardless of the amount of action going on at a given time.  In addition, I was able to extend the guard range 1 more block to cover the leader’s AE ability.  Previously, the AE could barely hit an enemy without triggering a reaction.  The more efficient code allowed me to increase the range.  While I was at it, I also tweaked the gameplay a bit.

I was able to test out all these changes in Wednesday’s net game.  I finally added a new skirmish board too.  I made a huge board — the maximum size of 750×750.  It turns out that this is really just too big.  That’s ok, though.  I think it is good to have a few large boards to satisfy players that like longer games.

However, most of my skirmish boards are going to be in the mid-range.  In my opinion, this is where my game shines.  The mid-size boards have a quicker pace and allow the computer AI to really bombard everyone’s bases.  This chaos really makes the game fun, because you can teleport around thwarting multiple attacks at once.  In network games, this is even more apparent.  While one ally is helping another out, you might then see his base under attack and teleport over to repel it.

Under some circumstances, my game is almost a shoot’em up.  The leader troop has powerful abilities that can really make a difference in battle.  I mostly enjoy using these abilities to blast enemies and toss the occasional heal on some troops.  My main challenge now is to make sure that these fun game mechanics are evident throughout the game.

April 20th, 2006

Monday, August 14th, 2006

After some more thought, I decided to start off small with my allies changes.  I now allow players to teleport their leader to an ally’s portal.  This actually took some considerable coding, because I previously did not allow one player to select another player’s units.  Therefore, it took almost 2 days to complete.  I tested it out during the network game tonight and it really added to the fun.  We found ourselves constantly teleporting over to help thwart an enemy attack.  It made the game feel more dynamic by providing an easier way to help out our allies.  Previously, we would have to march the troops over, which could often take too long.  Sometimes, the support troops would run into an enemy army and never make it there.  This change feels like a nice improvement.

It did not gimp the game at all either.  In fact, we lost the first 2 games against the computer team.  I set them to “hard” and they really clobbered us.  I had to finally put them on normal with our 1 computer ally set to hard.  This seemed to provide the right level of challenge.  I guess the reason they are so much harder has to do with another change I made for this release.  The computer AI is able to use its troop abilities now.  This makes the computer AI much more challenging.

I am pretty much done with the AI for the final release.  I am mostly going to be working on some optimizations for the path-finding AI and a few other components.  I need to add the remaining art and package all the content.  Finally, I need to finish the remaining “polish.”  At that point I will release the demo to the public.  I’m hoping for May 7th as the demo release date.  It will mostly depend on the artwork.

Hopefully, I will get positive feedback and it will not have many (or any) bugs.  I will address any of those issues while I create the campaign boards for the full release.  Once I have those completed, I will release the full version and the updated demo.  I am hoping to have everything done on May 27th.  Then, I have to get the word out, so people actually know about my game :)

April 13th, 2006

Monday, August 14th, 2006

I have been trying to think of a consistent way to improve the value of allies.  Elsie mentioned something I had been contemplating for a while.  It would be nice if you could give your portal to an ally.  This presents some problems, though.  I would have to come up with a way to allow for selecting the particular ally, which does not fit in with the current UI scheme.

I have another idea that I think will really add to the fun of the game.  I will simply allow players to use the portals of allies as if they were their own.  Perhaps the only limitation will be that players can not reclaim portals they don’t own.  I can then take the total power yield for a team and divide it by the number of players.  I will need to be careful to carry-forward the remainder so none of the yield is lost.  Finally, I will have to cap the max power for players based on the total portals divided by the number of players on the team.

The final result is that a team essentially shares all portals and the power yield.  However, each player still gets an even share, which prevents one from hogging the resources.  This would enable people to teleport up to a base and help defend against attacks without the long march.  It also means that players are never eliminated and therefore can stay involved in the game.  I think it would really add to the fun.

I am going to set aside 3 days to get this implemented.  I should be able to fit it in while still providing time for the other essential remaining items.

April 9th, 2006

Monday, August 14th, 2006

I guess I should provide an update since it has been almost 2 weeks…

I have been busy working on the remaining details needed for the open Beta release.  I recently finished my campaign code that now forces a progression from board to board.  Previously, I let people choose any of the available boards.  This wasn’t a bad idea for the Beta testers, but it will be important for the next phase.  The design is actually more involved than it would seem, so I am happy to have it completed.

I have also been bothered by this intermittent flicker.  I started noticing it when I got the new version of Norton and it would cause a flicker every time the firewall updated. I finally tracked it down to a Windows message to erase the background.  This would bypass DirectX and clear the background.  The next frame would update using DirectX and thus produce a flicker.  I now handle the erase message whenever my renderer is ready.  Therefore, it still clears the background when relevant, but no longer while the game is running.  I’m glad to have that annoying bug fixed.

In addition, I just got done adding my initial code for the computer player to summon watch towers around its portals.  This provides an improved defense, which should make the game more challenging.  I still need to add some tweaks to it, but for now it will get the job done.  This helps pace the game a bit more too.

Finally, I made some improvements to the web site. It is still too bland, but at least it has some color now.  I really need to have my site done professionally, because I just don’t have the patience to learn how to do it at this point in time. Hopefully, I will sell a few games so I can afford it.

Ok, so … I am still on schedule for the May’06 release target.  I have 3 weeks until the open Beta phase.  I will be spending the next 2 weeks working mostly on computer AI improvements and path-finding optimizations.  The 3rd week will be dedicated for some final touches.  This also includes packaging the content into some kind of proprietary format.  I want the game to be nice and tidy for the public release.  Everything is going pretty smoothly now, so I just need to keep my eyes on the finish-line.

March 26th, 2006

Monday, August 14th, 2006

Tomorrow is my biggest milestone thus far in the project — the beta release.  I finally get to show everyone what I have been doing for the past 2.5 years.

For this reason, I have really pushed hard to get the important items completed in time for the release.  I have had many 16+ hour days and even a 25 hour marathon on the night I finished up my computer AI goals for the beta version.  I am looking forward to only putting in some 10 hour days next week while I soak-up the feedback.  I think it should be pretty favorable.  At this point, the game looks much more professional than it did with the alpha version.  Even just the addition of the title screen has vastly improved its look.

The computer AI provides a robust challenge.  It scales several parameters according to its difficulty setting.  The attacks are more dynamic and intelligent too.  The size of the attacks are adjusted according to the number of portals and difficulty level.  The target changes if the computer player is defeated at a particular enemy camp.  I am very happy with the feel of the computer AI at this stage of the game.

The campaign game is also much more solid.  I was able to mesh it very well with the computer AI design.  This enables both the scripted AI and the skirmish AI to work together when defeating other players.  I  augment the computer player’s defensive positions by adding the buildings myself ahead of time.  This helps eliminate the current lack of logic for summoning buildings.

Furthermore, I added the initial story for the campaign.  I had a rough idea for a while now, but I did not write it down until yesterday.  I think it fits in pretty well with the campaign goals and flow of the game.

So, all I have left to do is add the new troop art to the game.  I should be receiving that from Drew sometime tonight.  The animations are pretty complex, relative to the previous work.  Once I have it in place, I will perform a few basic tests on the release.  Assuming everything looks good, I will finally send out the beta release.

March 13th, 2006

Monday, August 14th, 2006

I changed my plans a bit for the past week.  I decided that the gameplay needed some tweaks to improve the challenge.  I came to this conclusion when trying to come up with a way for the computer AI to counter the leader abilities.  Previously, the leader troop could attack troops outside of their guard range.  This allowed players to destroy troops without them ever reacting.  I had planned to address this issue with some type of computer AI logic until I realized it would be hopeless.  A reaction by the computer AI would most likely produce an undesirable result, such as moving all troops at the camp away from the defensive position, only to be slaughtered by a trap.

Instead, I moved the intelligence back to the troop AI.  I decreased the leader ability range, matching it to the troop guard range.  This lets troops react to the leader, which still enables the players to take advantage of the leader abilities, but without making it way too easy.  The downside is that the leader abilities are now more confined, which can be a bit frustrating during a battle.  I might atomically move the leader into range to eliminate this problem.  I’m still working out the details, as it is actually a bit complicated.

I modified the ranges on other things as well.  I pretty much decreased all ranges to make the individual troop a bit more important.  For instance, the visibility range changed from 10 to 8 blocks.  This makes scouting more important and also helps assassins sneak through detection gaps.  Caster ranges are shorter, which balances them better against melee.

I decided to add some more computer logic after completing the gameplay improvements.  I think it is important to force players to defend every base from attack.  I don’t want a player to be able to put all resources into one base, knowing an attack can never come to the other ones.  I accomplish this goal with a secondary attack.  This new attack is a fraction of the main attack size (i.e. 5 troops), but is still very effective since it can overcome a weakly-defended base in most cases.  This attack starts at the furthest base and works its way back.  For the time being, neither attack changes until the portal is destroyed.  I am going to add code to switch to a new target when the previous fails.  This change should make the game feel much more dynamic.

I was able to test this new attack method in this week’s network game.  We played a 3v3 game against computer opponents on a new, more spread-out, skirmish board.  Right away I could see the computer AI was much more challenging.  In fact, it was almost too challenging.  I got attacked by 2 of the computer players and almost got knocked-out of the game.  I barely hung-on as one of my allies started attacking computer bases.  This finally took some of the aggression away from the computer players so I could build-up my defenses.

As expected, the secondary attacks helped keep us on our toes.  They provided a nice improvement to the challenge and forced us to keep an eye on all our camps.  Without the ability to change attack locations, the computer AI eventually became over-matched by well-defended bases.  After some time, we began to take out enemy camps until we achieved victory.  I was very happy with the feel of the game.  It had my heart pumping, which is a good sign for a game.  We also did not encounter any problems.  I made a minor change that could have possibly helped with Larry’s lockup.  I had him running a debug version though, so I will need to try a free build next game.

I have started taking names for my private Beta release.  These next 2 months are going to be very intense for me.  I still have a lot I need to get done.  Most of it involves game “polish”, in particular for the user interface.  I also need to make some important computer AI improvements, such as the ability to summon defensive structures.  I wish I had that ready for the private Beta version, but time is running out.  I need to make sure all critical items are ready for this release.  It’s going to be close, but I should be able to get the important things done in time.

March 7th, 2006

Monday, August 14th, 2006

It’s … ALIVE!  The computer player has the ability to attack enemy portals now.  I also improved the code for finding nearest resources.  The AI uses these same improvements for detecting enemy portals.

It is really cool to see how the game has come along.  Playing is much more fun now that there is a computer opponent that can put up a good fight.  The AI still isn’t very smart, but it is effective by gaining resources quickly and then pumping out troops.  Once the computer player reaches a certain limit, the first wave of troops is sent out to an enemy portal.  Depending on how they do, the army will either be reinforced on the way to the next target, or be recalled to one of its portals until the army is back to full strength.

This Sunday we played against the new computer AI.  It was a 4v4 skirmish game on my old “dominate center” board.  I explained to everyone that the computer was going to be aggressive and that we needed to capture resources quickly and be ready to defend against attack.  I don’t think they quite grasped the aggressiveness of the AI, as everyone got creamed.  It didn’t take long so we started again.

The next game went much better.  I ran straight for the center of the board to ensure we had a fighting chance, since one of the players had never touched the game before up to this point.  We lost one of the players to a base rush pretty early on, but the rest of us managed to hold out and destroy some enemy bases.  I kept pouring troops to the new player, while attempting to take out some enemy portals.  Unfortunately, I over-extended myself and my own computer AI snuck an attack on my prized center camp.  I took a bunch with me, but finally had to abandon the camp by teleporting my leader out.

One of the other players swooped in and took out the troops that just crushed me.  I took most of my forces up to the new player’s camp.  She was surrounded by the final two computer players.  Larry started working on one of the camps when the same lock-up from last week occurred.  It happened with a lot of things going on, which makes it difficult to figure out.  I ended up stress testing more components of the game afterwards, without being able to reproduce it.  I might send a debug version for next game.  I don’t think I can afford to spend too much more time looking for it or I wont finish the remaining tasks before Beta.  I will just mention the possibility of this bug to the Beta testers and hope I gain the information needed to fix it.

Anyway, back to the game.  We restarted it from the point where Larry froze.  He tried to make the lockup happen again without luck.  We finally pooled our troops together and annihilated the remaining two computer players.  I think everyone had a good time.  It should just keep getting better each week, as I add new code to the computer AI.

This week, I am adding the ability to summon buildings.  I am also making the AI more intelligent with its attacks (hopefully).  Finally, I will make the difference between computer levels more noticeable.  In particular, I want the hard difficulty level to provide a good challenge to players.  In addition to the coding, I have been giving Drew a lot of information for the troop art.  She is currently working on the first set of troop animations, which should really improve the look of the game.  I cant wait to see it in action :)

February 27th, 2006

Monday, August 14th, 2006

So … I now have the initial computer AI in place.  I only spent about 5 days on it, so the AI is pretty limited.  The computer player can move its leader to resources, build portals over them, summon troops to defend its portals, and re-summon its leader if it dies during the game.  It also does a fairly decent job of balancing the troop types and amount over its portals.  I need to tweak the code a bit for moving to resources.  Right now it is a bit dumb and will not snag a resource that is near since it wants to try and keep the portals within a certain radius of the starting point.  I already have some ideas on how to improve it.

Two of the three people that have been playing Sunday network games with me couldn’t make it for this one.  It worked out well though, since Larry and I just ended up playing against the computer.  We played 2v2 on a pretty cool new board I made.  It is setup a bit like a castle, where you must go through the outposts to get to the starting stronghold.

The computer’s basic strategy right now is to just zerg you to death.  It isn’t very hard to beat yet, since the computer only cares about its own bases at the moment.  I think it will put up a very good fight once I add the aggressive portion of the AI.  Even still, Larry and I lost several waves of troops while taking out the enemy outposts.  We finally decided to just assist each other and proceeded to slowly take out the portals.  The game took roughly 30 minutes and proved to be a lot of fun.

We even found a bug, though I have no idea what caused it.  Larry summoned a watch tower as we were finishing up the final few enemy troops.  He encountered a bug that locked up the game.  I didn’t think there were any serious bugs left in the game, so this came as a real surprise.  I have been running exhaustive network stress tests all day and nothing has come up thus far.  Most likely it is going to be a very hard to find bug, assuming it wasn’t an issue with Larry’s machine.  Next network game I will put the host on a different PC and use a debug client on my machine to try and catch it.  I’m going to continue looking at the code, but it might just have to wait until the Beta phase.  These kind of bugs are so hard to reproduce that you just need to have a lot of people playing the game to find it.

I am spending the rest of the week adding my aggressive computer AI code to the game.  I will soon make the computer aware of enemy portals.  I will also add the ability for the computer player to put its troops into battle groups, just like human players can currently do with the 0-9 keys.  Once it can make battle groups, I will decide upon triggers for sending its troops against its enemies.  I forgot to mention that I now have 3 levels of computer players: easy, normal, and hard.  I will make ‘hard’ level the most aggressive version of the computer AI.  It will take some testing to determine just how aggressive to make each type.

I’m going to also try and get some basic building summoning in place.  A few watch towers and hidden bunkers can really help when defending bases.  The armories and laboratories are important around mid to end game.  These will be important when making the computer player challenging.  If I don’t have enough time this week, then I will just add it the following week, when I wrap up the computer AI for Beta phase.

I am trying to be really disciplined with my time now.  It is less than 4 weeks until Beta release.  Anything that runs over the allocated time will just have to wait until after the Beta release.  I must make sure all essential items are in the game. Speaking of that … the building art is now complete and I think it all looks great.  I am finishing up the troop art design ideas and then Drew will begin working on those important pieces.  There’s definitely a lot going on at the moment.  I just need to keep my focus on the finish line :)

February 19th, 2006

Monday, August 14th, 2006

I released a new alpha version earlier today.  We used this version in our network game.  There were many minor fixes in this release.  One of the major additions involves a game stat dialog that is displayed when the game is either won or lost.  This allows players to see how they performed and also check out how opponents play.  It makes the game feel more professional since it previously just left the player wondering what is next.  I am going to augment this dialog with a restart button to allow players to quickly restart a game that was lost.

I also added player name and type (human/computer) to the troop/building tool tip.  Players can now tell who they are fighting :)  I always hated how you never really knew who was who unless you memorized the player numbers/colors ahead of time.  This makes it much easier to talk trash in broadcast chat channel ;p

We did some of that tonight in fact.  The game actually didn’t last as long as I expected.  I guess I had a slight unfair advantage since I made the map ;p  We played 2v2 teams again.  I was able to capture the majority of resources and keep one of the players from securing the center.  He was distracted and kind of forgot he could make troops from his newly placed portals.  The end result was that my leader and one lone assassin took out the hardest camp.

In the meantime, my teammate was having skirmishes at one of the enemy camps.  This made it easy for me to just run around taking the resources.  I amassed a huge army and started clobbering the other team after I put down their attack.  Making troops is more important than getting their levels up when the game is in its early stages.  It wasn’t this way in the previous game, but I managed to address the issue with this release.  I guess I should have emphasized that before the game …. oops ;)
Anyway, once I realized one of the team members was defeated, I sent in my army to finish the game.  It was quick, but still fun.  We did not encounter any bugs, which was a plus.  However, I think I might remove arrow / Enter key input from my menus so people stop accidentally logging out while trying to send chat :P  It happened at least 10 times while chatting as we waited for everyone to log into the game.  Even though I like having this keyboard control, I think it could be more of a problem than it is worth.

I will be working on the computer AI for all of this coming week.  I hope to have a reasonable computer AI ready for this Sunday.  We are probably going to play again.  It would be nice to have a computer player to go against too.  Maybe we could even pick on it :)  I am also going to continue making new skirmish boards for us to play.  I think I am going to setup the next one so that it encourages skirmishes between camps.  I want the game to last longer next time.  So far I have been having a blast playing these network games.  I am looking forward to the next one :)