Fort Wars


Overview | The Making | The Code | Changelog

The Making of Fort Wars


June 18 2006

     For starters, Fort Wars would never have been made (and I would never even have learned to program properly) if not for Matei, Elpea, and TBMike. I'm always going to be grateful to them for being involved in the beginning and getting this off the ground. It is a lot to accurately describe what went on during the creation of Fort Wars. Countless hours per day and countless days per week were spent just creating the Beta. Perhaps the best way to fully understand is to read through the chatlogs of our conversations on MSN. Over 10 archive files of chat were filled by the completion of 1.0. But I will do my best to summarize the general details up to the release of Fort Wars 1.0, which took over a month alone to complete.

December 19 2005

     It all started on some random day December 19 2005. I had completed my first RMS ever, Wild Woods, which was pretty darn crappy. It was a somewhat basic basic version of Fort Wars's concept:
  1. Kill scattered nature units and enemies for coin.
  2. Move to various spots to buy upgrades with coin.
  3. Keep coin to stack on basic upgrades.
  4. Keep base building alive or you can't respawn when you die.
  5. Lose all units and your base building - Game Over.
  6. A few simple random environments including a Christmas map for the holiday coming up.
     I went on ESO to see if anyone was interested in testing it. The only person on my list online was Elpea. I got his ESO name from a friend from AOE3 Heaven. Before this I had never met or spoken to Elpea directly. So I thought "Ah whatever" and sent him a message asking if he wanted to try it. He agreed and we played a match.
     It went alright, but the map was lacking due to the fact that I had started it when I had no idea how to script. Then a month later, I was adding blocks of code to a script that was never meant to be open-ended or versitile. It was too unorganized and set up very awkwardly.
     Elpea was impressed however. He seemed amazed by the kill-and-upgrade system common to most blood maps. I later found out he had never played Norse Wars 6.3 or 7.1. Norse Wars is a map scripted by Matei and edited by numerous others to eventually form what many consider the best and most popular blood map in Age of Mythology. In comparison, I saw Wild Woods as nothing impressive.
     On the other hand, Elpea was very interested in creating a map himself. We decided to work on a new blood map, at the time unnamed. There were no blood maps for Age of Empires III at the time - or even any real custom maps at all due to neglect to the Editor and mod community from AOE3's team. The only map different from regular gameplay was Total War III by M0nty_Pyth0n, but even that map was simply regular supremacy with unlimited resources. It was no real difference from normal RTS play, not that it wasn't a great map.
     At the time I had no idea what arrays or functions were and was typing up huge blocks of code when I could have just typed a few lines. Elpea tried to explain to me, but this was too new for me. He pulled Matei (who wasn't actually part of the project yet) into the MSN Messenger conversation and I sort of understood it after about 20 minutes of discussion. There were no arrays in RMS scripting but Matei had a function that mimmicked what arrays do. I had no clue what a function was so I just took it for granted.
     It started simple. At first I was hesitant to create a blood map as there was word Matei planned to recreate Norse Wars for Age of Empires III. What's the point of creating a map that was already going to be made?
     But we went on deciding this map was just for fun. Through the next day we started it with the basic layout from Norse Wars involving a circular arena surrounded by circular player bases connected to it. All of these were islands on water. On each player island was the player's fort. Behind each player even further around the arena were the Store Islands. Following Norse Wars's example, I placed spawn selectors at the outer edges and set up the triggers to spawn them at the player forts. Elpea added some special lighting to it. It worked beatifully. It was simple but it was great satisfaction to see that we just might be able to complete this. We backed this up and declared it as version 0.1 on December 20 2005.

December 21 2005

     By the next day, we implemented a basic working map:
  • Cavalry, Archer, and Infantry unit lines with 4 levels each.
  • XP to coin system copied from my Wild Woods map.
  • Awards of cannon for every 2000 XP. Elpea had a function to add any award but it wasn't working at the time and commented out of the script.
  • Fixed gun/cannon placed in the middle that was capturable. Very fun!
     We also couldn't figure out why changing diplomacy so that nature units do not attack players wouldn't work and awaited Matei's help. I had copied the exact trigger out of Norse Wars, so really we had idea what was wrong.
     In the meantime, this was version 0.2 was finished on December 21 2005!

December 22 2005

     Progress was moving fast. The next day we decided on the upgrade system to be by unit line due to a lack of techs that upgrade every unit in the game on a single field. I heavily disagreed at the time with using a single unit line, but there didn't seem to be any other way, so we might as well do it that way. Elpea also set up a database to filter the techs, making it easy to find what we needed.
     While we didn't complete an upgrade system that same day, we re-organized the code a bit to more easily change what units were in what unit lines and fixed up the islands a bit. We also changed the unit lines a bit such as adding dopplesoldners to the top of the infantry line and cassadors to the archer line. Cuirassiers were already at the top of the cavalry line. Matei also suggested we should try multiple units per spawn (ie spawning 5 every few seconds instead of 1 per second). He also suggested having two spawn selectors so that you could mix spawns and create more diverse armies. For now, we had version 0.3 for December 22 2005.

December 23 2005

     I had never expected this map to go anywhere at all. The triggers I wrote were not designed open-endedly and when I added multiple units being spawned at a time, along with all missing unit lines, as well as infantry upgrades, and not to mention two spawn selectors (double spawn triggers), the game started lagging. I had to rewrite the spawn system as it was the main cause of the lag. This time I made sure it was easily modifiable and can be expanded if needed. At the time, I believed the cause of the lag was a timer for every unit from every player. Therefore, I created 3 timers which fired all triggers that needed that time.
     The entire time, I had also been typing the code with just Notepad. Elpea and Matei had ofen complained my code lacked indenting. Also with the length of the script growing very fast, it was becoming difficult to manage. Here Elpea introduced to me Notepad2. The program works just like Notepad with extra features such as automatically keeping indents and also highlighting code to make things easier to read. After using it, I had no idea how I had been scripting the whole time with regular plain Notepad. I recommend it to anyone who doesn't have anything other than regular Notepad to script.
     While trying to come up with an easy way to display names (the script and game use protonames which don't look nice in normal text), Elpea came up with an enormous function which converted every protoname in the game to regular names. My computer actually froze while I was trying to copy and paste it into the script. You can view the script HERE. I warn you it's huge!
     That concluded Fort Wars 0.4 on December 23 2005, a friday. It was an amazing week and things moved very fast. Christmas was of course coming up and so work was postponed until then.

December 26 2005

     Work on the map started right up again the morning after Christmas. Over the weekend, I had also applied a few things such as converting many of the triggers to functions and ... sigh ... indenting sections of the script. Mike Druskin, or TBMike (ESO), also wanted to join the project. He is known for editing several versions of Norse Wars including 7.1, which featured random bonuses. The day before, Elpea, Matei, and Mike also found several techs that allowed the upgrading of attack only for wide unit ranges. If they were successful as said, this meant we could set the upgrade system by upgrade type (HP, attack, Speed) instead of unit line. Currently, having upgrades by one unit line made it irrational to use any other unit besides the unit line you were upgrading.
     Matei also set up native posts between each player on the main land. I tried adding a random factor to it being a regular trade route sometimes, but I found the trade route wouldn't place right. For now, it was just natives.
     It was also decided that the center fixed gun was far too powerful. The person holding it would often be undefeatable. However, we did not want to give up having a cannon in the middle - it was just too much fun. I looked for alternatives. There was a weaker unit version of the gun, but it did not change ownership (not capturable). Fortunately, this was an easy fix. I just placed capturable sheep beneath it; the cannon would change ownership if the sheep did. Sometimes the sheep misplaced and you could see it sticking out, but it was as good as it gets.
     I also did not realize at the time that the map layout was only good for the four players we had been testing. Go higher and the islands would spread too far apart, eventually the player bases would disconnect from the mainland. Mike caught this and rewrote the code involving the islands. He also set up a function to more easily place units on the store island. These were great and made adding units to the island easier.
     Later the same day, we also convinced Mike to switch to regular MSN so that we may send him files. He was currently using GAIM which prevented us from sending him files easily. He argued that MSN had too many things at the border such as ads and not enough typing space.
     Later that day, we (me, Elpea, and Mike) also settled on making 5 unit lines (originally Elpea's idea) instead of just 3 like Norse Wars. This is because of a number of things. First Age of Empires III classifies 5 unit lines. Another is that the techs use these 5 classifications of units.
     At the same time, we were still trying to figure out what upgrade system to use: Upgrade a line of units or upgrade a field such as attack. For a moment, we agreed on upgrading a field, but Mike later insisted that upgrading a line of units allows for more game-impacting decisions, although we pointed out that that would result in someone using only the unit he or she upgraded. Me and Elpea got tired of arguing and just decided to go with Mike's decision. I set up a function that added the upgrades and placed the upgrader. Then we just had to loop the function five times for each unit line.
     Mike also insisted that changing unit names were possible. I tried to explain to him they only work in single player and not online, but he went and tried them anyways. He discovered later as I explained that they do not work.
     Seeing as Elpea was able to extract every name out of the game and put it into a function, I requested he do that for costs too - so that we may set all costs to 0. Mike thought it wasn't necessary, as we only needed it for a few units. However, it came into handy later for showing exact store costs on the unit itself. Another gigantic function. You can view it HERE.
     On the other hand, I completed the upgrade function to easily add an upgrader and what techs they apply. The only hard part was finding the techs. One problem we ran into was that many useful techs affected the entire team. Another was that some units did not have a tech to upgrade them only. This resulted in removals from unitlines and other complications.
     During this time, Mike and Elpea collected the techs we needed to get the upgrade system working. It was late and we decided to wrap it up and add them later.
     The map was close to playable. There were just a few things left. Mike predicted it could be out by January 10 2006.
     Anyways that settled for Fort Wars 0.5 on December 26 2005.

December 27 2005

     By the next morning, I had the upgrades all added in. However when we tested, many of the upgrades were malfunctioning. It turned out that many of the techs Mike collected had the wrong ID, but it was fine - the techs were what we needed. However we found that Mike had used a team tech for infantry - turned out there wasn't one that affected infantry for one player only. Elpea, Matei, Mike, and I mainly spent the day finding techs for the upgrade system.
     There was also the case of lag several minutes into the game. At first we were unable to determine what it was. I found out my leveling system for changing unit lines every x amount of coin was looping constantly (even with no changes in coin rank) and thought maybe that was it. It also happened to be the cause of why the nature units only sometimes attacked. Now with the loop off, they attacked as soon as the game started. We later realized that the lag was actually caused by Elpea's two enormous functions. We decided just to comment them out for now as they weren't really vital to the gameplay.
     Matei had an easy idea for it. He changed the spawn selecting system so that we move units to an object, instead of moving an object to the unit.
     Mercenaries were also added to the game as special buyable units which were upgraded every few minutes automatically and not affected by regular upgrades (Mike's idea).
     When we decided to test again, we found that upgrades were not working at all. The only ones working were for the artillery line. Apparently, non-HC techs weren't stacking.
     Mike also set up the civilization bonuses and added them into the script. With it he added a unit-buying function, although it looked ridiculously similar to my tech function. In fact, the purchase text was "The next upgrade costs". :P (just joking, no real offense taken)
     We also settled that the fixed gun in the middle was simply too powerful. No matter how fun it was, it just wouldn't fit. We'd have to replace it with just a Coin trickle from capturing an object.
     Mike also announced he would be leaving for a trip and be back around January 7 2006. The next several days seemed less lively.

December 28 2005

     The next day, Elpea and I worked on cleaning up the map.
     I removed the cannon and replaced it with a Llama. The coding for the cannon is still there, however. I just couldn't get myself to remove it completely, so I set a variable to it - which when switched would convert the Llama to a cannon. A coin rate was added to it and I set it up so that the Llama never dies. If it did, it'd respawn.
     Elpea worked on finding HC techs as they were the only ones that stacked. Then out of the blue he asked me what statuses there were for techs. Not sure what he meant, I told him there was Active, Available, and Unobtainable. He suggested setting the techs to Available before Active to get them to stack. This turned out to be the key. The techs did manage to stack, but it wasn't Available that did it, it was Unobtainable. Congrats to Elpea for thinking of that.
     We also made progress on the native posts in raising their stats, now that we knew how to properly stack techs.
     Everything seemed to be working great and ready to go. The only thing left were the awards for reaching certain kills and XP counts and some balances and fixes such as certain units being affected too much by techs.

December 29 2005

     Today was just more bug fixing and cleaning up. There really wasn't much more to add. We didn't want to do anything major as we were getting ready to release a Beta.
     I added a minor new feature: Reinforcements. Basically every certain number of minutes, additional units arrive at the bases of all players. It's just something nice to have.
     Meanwhile, I asked Elpea to filter out his huge functions so that they only included the five unit lines. Hopefully this would lessen lag.
     There was also the issue of units automatically grouping together. For now, I dealt with this directly by fencing them up. It seemed to work for now.
     Progress seemed slow from here on. Matei was often busy. Elpea had a bad connection due to the weather. Mike was off on vacation.

December 30 2005

     Nothing much happened today, but I came up with a function to detect who is hosting the map. Using this, I made it so that anyone other than us four hosting the map causes their game to crash. It was a preventive measure so people don't run off with the map during the Beta release.
     Elpea was having connection problems due to the rain. I asked if he was on satellite, but he was on DSL. Somehow the weather interfered with it.
     We did a few tests and the upgrade system simply wasn't going very well. It worked, but it was very unbalanced in that upgrading one line was better than upgrading another. You also very rarily switched unit lines. Also we needed to figure out what the awards should be.

December 31 2005

     The last day of the year revolved around completely redoing the upgrade system. I suddenly realized that I had already been doing attack only upgrades (which we couldn't figure out how to do) all along in my first map Wild Woods. All I needed was another giant function from Elpea.
     Before starting, I wrapped up the work we did the last few days as Fort Wars 0.6 of December 31 2005. Although I was confident the new system was going to be better, you could never be sure.
     Basically the techs add a certain percentage of attack and HP. Now if we wanted attack only, we could subtract the HP with Modify Protounit, but we'd have to do it for every unit. This could easily be done now as Elpea could create a giant function for it.
     As thought, it worked great. I even invited M0nty_Pyth0n to try the map before its release, but he never showed up. In addition, the auto-upgrades to the mercenaries now seemed pointless and I removed them.

January 1 2006

     The map was closer to being complete than ever. There was only the awards left to do and bug fixing / balancing. Also the store island lacked items and could do with some special units. Much of the testing was delayed however as ESO was down much of the day.
     It also became apparent that there was no room left for award islands. Award islands were needed to select your award, unless we were to do as Elpea said - no award choices. Fortunately, Matei finally showed up and helped shrink the map a bit, providing room for the award islands.
     On the other hand, we decided to start preparation for a showcase. Elpea collected several screens from gameplay, as he was the only one with a computer fast enough to do so without freezing the game for several minutes. I collected screens from high and low angles in the scenario editor as I was the only one with a Nvidia card to take images with special lighting and fog. Many times, my computer to froze up for nearly 10 minutes while I took the screenshots. Elpea also typed up the announcement we were to use in the release of the Beta. We actually planned to release the 0.7 version we had completed that day.
     However, the game still lacked a few things. For one, the store island with a large number of units wasn't well explained. Elpea even suggested removing most of the units as they caused confusion. I decided to redo the instructions instead. It doesn't seem like we'd be releasing 0.7 after all.
     To add to the instructions, we needed a number of things. One was color coding. During the whole phase, many problems and errors were created. They seemed random, or maybe it was from trying to script at 1AM in the morning. Whatever it was, I decided to put it off until tomorrow.

January 2 2006

     The next morning I figured out that the error wasn't our scripting. It happened to be that sometimes the chosen random unit for our script had a name which was too long. Somehow long names in the instructions freezes the script triggers.
     On the other hand, forum members were debating what should be the name of our map. The name which we had decided Fort Blood apparently they did not like. They insisted on calling it Norse Wars II as it appeared to be a Norse Wars remake. Elpea was deeply offended as there was no Norse in the map at all, and we had not tried to remake Norse Wars in the first place. However, I found out that Mike had gone and told the forum that this was indeed a Norse Wars remake. As it seemed Fort Blood was no good, we considered other names such as EuroWars. We decided to wait until Matei returned to figure out what to call the map.
     Meanwhile I finally finished the function which we would use to place awards. It was the largest function I had made yet, given I had only learned to make them a month ago. The whole thing was done without testing, so I had no idea if it would work. Unfortunately, it was full of errors. It took me a while to realize I had used the variable xarmy instead of spawn. Otherwise it worked perfectly.
     Next was actually deciding on the awards. This was difficult for a number of reasons. For one, Elpea heartily hated the concept. We decided to work on those later.
     For our next test, we brought along M0nty_Pyth0n to see if he could understand the game from the instructions, but unfortunately M0nty_Pyth0n didn't get it.
     We did realize one thing though. Having spawn and store selectors on the same island was not going to work. Age of Empires III has a built-in autogrouping system. Basically units will always try to run to each other and group up. I even created a fence to seperate the spawn selectors from the store, but the units either ran all over the place or they went right through the wall to the other side. Elpea suggested creating an additional island for the spawn units. I looked at the map and realized when Matei shrunk the map, we had plenty of space at the outer edges, even with the award islands in place. I quickly created extra islands behind the store islands and moved the spawn selecters there.
     We still didn't have awards and the winter break was coming to a close for Elpea and Matei. We wrapped this up as version 0.7 for January 2 2006.

January 3 2006's forum members finally stopped insisting on calling the map Norse Wars. That was a relief.
     There wasn't much done that day. Elpea was half awake from not sleeping at all since the day before. I had stayed up until 3-4 AM. Matei I think had gone to school/college, so he couldn't be online as often. I decided to just fix things up. For one, displaying player colors would be nice. I found out however, that that was never put into the game properly.
     We decided to finally make up award ideas. The function had been there for a long time, but no one wanted to come up with awards. I also brought up the idea of using XP awards like HC cards, where it adds additional buyable items, instead of giving you awards straight off.
     Elpea had to go to school the next day, so we couldn't stay up very late to get anything done. Mike was still on his trip.

January 4 2006

     That day, Matei came up with the name Fort Wars. He prefered Fort Blood but as many wanted to have "Wars" in the title, we changed it. It seemed like a fair compromise between Fort Blood and Norse Wars.
     The map was basically done, but Mike asked we wait for him to come back on Saturday first. He wanted to make sure the map worked and no evident bugs were in the script.
     For the time being, we revised the civilization bonuses a bit and Matei had suggested we put additional mercenaries in the XP awards so that we could have a sort of "buy them all" effect.
     On the other hand, Matei was looking through AoE3 Heaven's Wiki and found a way to disable the annoying autoformations. It was a bit ironic that we found this right after we created seperate islands, but it was good to have nonetheless. The effect affected all players however and had to be customly created (it wasn't in the game originally). We didn't know exactly where the command came from. Matei thought perhaps Ykkrosh got the command from someone. Or perhaps he just found it while looking though game files.

January 6 2006

     Me, Matei, and a few others did some more testing after backing up the map as 0.8 of January 6 2006. We noticed some lag in 8 player games, and a new background image and icon for the map would be nice. I found a pirate-sail image used on the game model which looked really creepy and fit well to our map. I also later found out that the game lags more with one timer firing many triggers than having many triggers active at once each with their own timer. It was nice to know, but it made no sense to me whatsoever. I added a few functions so that we may change spawn rate as well as the timer for each spawn.
     I also added a few new features to the map. One was several environments; one is randomly chosen for the game at start. Another was better defined awards as to whether they were store or instantly effective.
     Elpea also asked me not to list him as a main scripter as he felt he did not do much. It was because of him this whole thing started in the first place however, not to mention he did provide the giant functions and several ideas. I listed him as special thanks as he suggested.

January 7 2006

     We released Fort Wars 0.9 Beta the evening of January 7 2006. Coincidentally, Mike returned from his trip.
     I also realized that the special units with changed base stats would become weaker over time if using the techs based off of their original stats. I devised a formula to calculate how many techs an upgrade to any special unit would need:
// BALANCING SUPER UNITS - upgAttack/HP*SuperUnitStats = upgAttack/HP*(BaseStats+TechMult(GuardTech))
// TechMult = How many times the Super Unit's stat is over the original. ie 20 times more HP.
// GuardTech = 0.3*base. so 0.3*Base Stats also = Guard Tech.
     Meanwhile, the release went relatively well and many enjoyed the map. Most of the time, you could see up to 4-5 games hosted with our map. Many of these games were also 8 players; people did not understand that it could lag at the time. There were also a few bugs already. One was that a few units were not added to the main variable list I used for upgrades, hence it did not receive upgrades requiring the list. Otherwise the map was pretty well received. To further spread it, Mike hosted a download room overnight - although many did not understand they were supposed to download and leave (most were waiting for Mike to start the game).

January 8 2006

     We had many changes to decide on the following day. For one, not many understood the game. The map would also be better off without villager units as new players kept using them to cut down trees (used to select store purchases). There were also alot of unused units etc we could put to good use. We basically had alot of ideas after the release. But otherwise, we were just waiting things out to see how it'd go.
     Later that day, I also came up with an idea to make up for the lack of God Powers in Age of Empires III that added alot to Norse Wars. We could replicate surprise Shift Sands attacks by giving a player super speed for a short period of time. They'd move so fast that it'd appear to be teleportation. Mike and I tested this, and it worked great. We couldn't wait to tell the others.
     Basing off of this, Matei also suggested temporary HP boost. However, it seemed flawed at the time because what if your units had low HP and u removed that? Would they not die? The idea sunk away for now.
     Mike had many ideas of his own as well. He suggested to replicate a Lightning Storm, we create a Special that gives 7 free Super Ronin for a period of time. It sounded okay at the time and we added it.
     The awards also needed changing now that we were re-arranging alot of units as regular or special. Adding upgrades into the awards however, slowed the load time down significantly. Basically, each upgrade consisted of a stat change to every unit in the game. Then we have to create a trigger for that for every player. Adding two upgrades and 3 choices to an award, we'd have to duplicate the upgrade set twice, triple it for each choice, and then do that for every player. We also had a number of awards featuring upgrades. There didn't seem much we could do about it, so we let it slide.
     Mike and I worked on the new ideas that day. Mike worked on the new Super Speed and Seven Samurai (Ronin) idea while I fixed up awards and a few functions. Overall it went pretty well. Only a day after the release of 0.9 and we were already making huge changes for 1.0!

January 9 2006

     Break was over for me as well by now and school started again for me. That was already bad enough for me, but there was alot more coming.      This day was the day things started going downhill somewhat - a ton of bad news but also just a streak of uncanny unfortunate events. The first thing Elpea had to tell me was bad news. He said that Graham Sommers of Ensemble Studios told him that the Modify Protounit effect we used caused Out of Sync Errors. The effect supposedly changed unit stats but did not revert them back, therefore "modding" the game. Yet, I think we would have noticed during our countless tests if stats were being transfered over to other games. We also couldn't just take that effect out. It was used to change stats for the upgrade system, the special units, unit build restrictions, and much more. It was basically what made Fort Wars work.
     Well I thought since the problem was stats transfering over, why not revert them back manually? That shouldn't be too hard, but it was still a lot of work. I couldn't help wondering though. For one, we never experienced these errors. For another thing, only a fraction of those who play Fort Wars say they get the error. Elpea explained that it could be a memory leak. Well if this is so - isn't that a problem with the Age of Empires III game? A memory leaks sounds bad and should be fixed anyway. It didn't make sense - it seemed more like an almost random guess from ES, but Elpea thought it was logical as a memory leak. For example, we all mostly had good computers, hence why we didn't have memory leaks. Matei thought this odd as well. We decided to wait for further explanation from ES before continuing.
     In the mean time, me and Mike worked on the map. We tried to come up with more God Power like ideas (Specials), but there wasn't really anything else. Having a cannon to fire across the map from behind your fort was an idea Mike had - but then we could attack other forts and player store/spawn islands. Each time we tested, the load time from the awards were getting more and more irritating, but there wasn't much we could do. The only thing more irritating was the fact Mike was always complaining. :P The map was pretty much a pain to work on as it took forever to load each time, and sometimes it did not load at all (forget a ; or a stray mark somewhere) from errors. It was also clear that many had heard from ES about Fort Wars causing Out of Sync errors as the amount of games hosted on average had dropped significantly to around two games at a time.

January 10 2006

     By the next day, I had the script fixed up and working with most of what we had discussed added in. Me and Mike mainly checked for balance in the map. Meanwhile Elpea set up a ladder for the map. This one automatically counted any games played except for Free For All games, which was too bad as those were very fun. One issue I had with it was that you wouldn't want every game you played counting as ladder as you sometimes just fooled around during a game. But nothing is perfect I suppose.
     People who played Fort Wars were also finally admitting that HP upgrades weren't too strong. Apparently, they never bothered to upgrade their attack. Hence, when everyone had high HP but no attack, it seemed like nothing dies.
     I also redid Mike's God Power functions as they weren't very open-ended and pretty long. I wanted to keep the script short and possibly lessen load time. It was also possible to merge the two functions into one.
     Finally I fixed up the map a bit by adding icons and more sound effects. Mike insisted I stop editing the map so we could just wrap it up and call it 1.0. However we still needed to decide on the new awards.
     During the next few tests, we also started noticing that the map often booted both players into Single Player mode when hosting a 1v1. I wasn't sure whether this was the map or a bug within the game itself.

January 11 2006

     By the next day, I figured out a way to lower the upgrades. What I did was mass upgrade everything so that they start higher. If you don't get what I mean, think of it this way. Currently, we used upgrades which did 30% off of the base. If we raised everything so that they started with 30%, 30% upgrades would not be as effective. For example, if everyone started at 100%, 30% would seem like nearly half. If everyone started at 1000%, 30% was nothing. I didn't want to lower upgrades too far down yet, so we tried upgrades at 18% first.
     Later that day at around 10PM (-8 GMT), looked strange. Most of the forum posts were deleted, making it look dead. Only the pinned topics were still there. It looked like the effect of pruning topics, where only pinned topics aren't deleted. I asked Mike, who owned the domain, if he was changing anything to it. Apparently he wasn't even aware of this. He had no clue what had happened. The news page was gone as well as all its news. Mike decided he was not going to use phpbb boards anymore.

January 12 2006

     Mike was off looking for another host for Everything on the old site was gone; nothing had been saved.
     Meanwhile Woad Creations, the Design Team Matei had been part of, closed down. It had been up for many years and designed for a large number of games. Many people had been leaving and losing interest in designing.
     That was alotta bad news in just a few days.

January 13 2006

     Elpea's domain went down as well, but it was only temporary. His host forgot to renew it.
     During the entire time, Elpea had been receiving complaints about the Out of Sync errors. I did not know this as I had not received anything at all. He finally decided to post about it. One post was at Age Community, the game's official website, but it was quickly pushed down by other threads. He posted again at AoEIII Heaven. I now realized that ES had been blaming us for all of their Out of Sync issues. It's pretty funny as it was they who explained to us that our map has stats carried over in their "memory leaks", but they do not mention that. Elpea suggested we try reverting stats, but ES has yet to give us a clear explanation as to how the map was causing the errors. I seriously doubted that modifying the stats were causing the problem. Some players reported that restarting the game fixed the problem. That was definitely easier than applying another huge function to revert stats.
     We decided to wait things out a bit more to see if anything conclusive turns up.

January 14 2006

     In the mean time I added more balance changes and redid the civilization bonuses a bit to make them more interesting. I even redid the instructions to make them stand out even more, if that's possible. Then randomly, Elpea suggested trying fonts. I wasn't aware fonts would work, but they did. They certainly helped, and was an interesting find as many people said it was impossible.
     We planned to playtest that night. Elpea said he had time and Mike agreed to come in a few hours. We waited until 10 PM (1AM Elpea's time), but he never showed up so the test was cancelled.

January 15 2006

     Not much happened on January 15 2006. I backed up v 0.95 incase anything might happen. Mike and I tested the new civilization bonuses I added.
     Meanwhile Mike's came back online. This time he bought Invision Power Boards for the forums.

January 16 2006

     The next day, a friend of Elpea's and a well known forum member, Shiva S. Kumar, was reported dead. There were several announcements made. One at AoEIII Heaven could be found here. A detailed news article could be found here. A few more news articles can be found here and here. According to the reports, he died of drowning, but no one really knows how he drowned in the first place. The water was shallow enough that even if he could not swim, he could have stood and be above the water. The actual date he date of the news articles were January 13 2006, a Friday, so it was all rather suspicious and somewhat creepy.
     In any case, he was a very great friend of Elpea's and Elpea became depressed for several days. I couldn't really feel as bad as Elpea did as I never knew who Shiva Kumar was, but I understood he was really out of it for a while.
     In the mean time, Mike and I tested the map a bit more. I changed the spawn system and awards a bit more to make it more interesting. There was also the rumor that staying at low spawn levels was better than staying at high ones. Mike argued that we should just balance it and be done.

January 17 2006

     Mike and I were lacking ideas for the XP awards. There simply wasn't enough you could add to the Stre Islands. Then we came up with the idea to add new spawn units too. It seemed like a quick edit, but it actually took me about an hour to insert. In any case, it worked. This opened up a few opportunities such as spawnable cheat units.

January 18 2006

     Fort Wars had been taking up alot of my time, so I had to take some time away. I had to work on a few projects from school and catch up.

January 20 2006

     Matei, Mike, and I did several more tests. Then Mike and I discussed several more bugs/balances and tried to come up with more awards. We had even more upgrades in the awards now, not to mention just more awards in general. The load time was becoming rather long.

January 21 2006

     There was decent progress. Matei finally had time to help out. He set up the trade route while I created some pretty impressive new environments - mainly cliff environments. Before this, Fort Wars only had Grass, Snow, and Desert islands. Now we had ridiculously high cliffs up in clouds. You can see these in the Gallery.

January 22 2006

     I went through the script and fixed the rest of the known bugs. The map was almost ready to go.
     While going through the script, I also noticed the custom effect we had inserted to remove auto-formations or grouping. I also remembered that games I played afterwards kept the effect. It just might have been this, but I wasn't sure. I asked Elpea to tell ES about it. ES claimed it was Modify Protounit, so I wanted them to take a look at this and give us a confirmation.
     While testing, I also noticed that Russians, whose bonus was faster spawn, didn't seem faster at all. Mike said they were fine. Instead Portuguese was too weak. There was also the case of the trade route producing too little coin, but Mike suggested we speed up the cart that brings the XP - that worked out fine. Spanish's free Swiss Pikemen seemed pretty strong, but Mike insisted they were fine. We spent the rest of the day working on fixes.

January 23 2006

     We made several advancements. Elpea and I found that Nootka Warchiefs worked well as trainable from the Explorer and were quite powerful, so we gave them to the Portuguese. This could create a sort of bomber effect as you could move your Explorer in really quickly and drop off killer units instantaneously. I also found some techs to give the Explorer some special abilities such as healing and an area attack called Swashbuckler. It definitely helped with the case of Portuguese being quite weak at the time.
     I also found an image for the loading screen: A llama. We decided to go all in on that with the Llama was sort of the Fort Wars mascot.
     I backed this up as version 0.97 for January 23 2006.

January 24 2006

     With the inclusion of the special Explorer abilities came the problem of free shipments that came with the techs. They couldn't just be removed, so I had to set up several triggers to dump them in the ocean at the start of the game. This took quite a bit longer than I expected. The shipments (dogs) still had some LOS after removing it completely, and when they are first placed, the blackmap was revealed. I tried resetting the blackmap, but apparently that was another bugged feature in the game. It completely messed up the Fog of War and Blackmap. Some games loaded with all of the map revealed. Some games loaded where you had LOS over your enemies. I had to actually restart my game several times to clear the game from the effect.

January 25 2006

     Some more testing seemed to show that Mike's Seven Samuari idea was not going to work. Often, the ronin more than made up for their cost due to how powerful they were, and also made surprise attacks useless as you could just deploy them if you were attacked. Mike suggested lowering their speed, but that'd mean for the regular ronin that you buy as well. There was also the option of making the cost higher with each purchase. We had to decide soon as Mike wanted to release 1.0 over the weekend.
     Meanwhile many at did not like Elpea's automatic ladder. Mike redesigned the old ladder and added it to the website.

January 26 2006

     I managed to start work on a Swamp environment. This was harder than thought and alot of errors remain even in later versions. For one, the water always overflowed the cliff edges. Also the cliff edges didn't always place correctly as they weren't high enough. Having water on the outside didn't help as that water was shallow enough for units to escape into.
     There wasn't much left to be done. I changed population counts a bit, so that units you buy seem more worth it. Otherwise the weekend was coming right up; I didn't want to change too many things.

January 27 2006

     Originally we planned to release this day, a Friday, after some quick testing. However, there were a few more bugs caught. Just as I had suspected, the Russian bonus of faster spawn indeed did not exist. The game timer was flawed in that it could not differentiate between values only 1-2 seconds apart. It wasn't accurate. I tried raising priority on the triggers to their highest and setting them to Run Immediately, but that did not change a thing. Mike suggested making the number of spawn random instead of changing the timer. He explained that making the game choose a random number out of 5 gives it a 20 percent chance and hence faster by 20 percent. The explanation made no sense to me as if it was a random number, then the game could choose the same number every time. We were going to have to come up with a new bonus and delay the release date.
     There were also a lot of balance changes from the tests. There was much confusion as not everyone had tested the same version, and many suggestions did not make sense. Jacky_O, a tester and forumer from found that Portuguese seemed too powerful and should reach their super explorer status through upgrading. This was a good concept to use. A civilization bonus should be effective either early or late game, not both. Obviously it was not ready to release.

January 28 2006

     Mike insisted we do not change anything, but it didn't seem like a good idea to leave problems we were aware of in the map. Jacky_O's suggestion was put into effect and it worked fine. While making a few other changes, it was also funny to note that Age of Empires III would crash if any variable returned as a repeating decimal (1/3). All testers of the map agreed that the Seven Samurai was too strong, but Mike did not want to remove them. We just weakened them slightly more. We tried to keep changes to a minimal.
     After several more tests, we decided it was good for releasing. Elpea set up a new showcase and announcement. Mike hosted a download room, which everyone again expected a game.
     After the post and announcements were done, we decided to try a game online. We hosted a 4v4 game where all four of us were on one team. Disappointingly, the game took forever to load and after our loading was done, other players took even longer to load - some never finished loading. Most of the players left and the game finally loaded, but there were only two players left so I quit. We definitely needed to speed up the load time somehow.
     There was also several cases where the triggers never activated. I recall reading of how special characters in player names could cause this. This was something to look into.

Now . . .

     A new version was released nearly every month. One week later, version 1.1 was needed quickly to fix the load time, which Matei came up with a way to fix, along with several other issues (such as removing Seven Samurai, to Mike's dissapointment). Onwards after that, Mike, Matei, and Elpea no longer assisted with the script. They no longer had time, and Elpea wished for no further involvement with Fort Wars (he in fact requested his name removed from the credits). Each version brought on dramatic changes - often not simply bug fixes. Most notable was version 1.2, which shrunk the entire map and added many fantastic new aspects to the game. Balance was close to perfect after version 1.3, which further added several small but useful features. Progress began on Fort Wars 2.0 around April 15 with even more dramatic changes, all aimed to revolutionize the map. During this, Version 1.4 was mainly small balances and fixes due to patches Ensemble Studios released which altered game stats. Examples include an exploit that was created when ES changed several costs, which Fort Wars used to set costs to 0 and ended up giving some units negative costs. The Fort Wars 2.0 revamp has been completed after four months of work by pftq and is arguably worth its title. Over the years, the map died and revived on multiple occasions with AOE3's own passing and revival. It now has a permanent stable release on both AOE3 Definitie Edition and AOE3 Complete Collection (yes, there are two parallel universes and online communities for AOE3).

     You can view the complete changes from each version in the Changelog