 |
|  |
 |
|
Locutus
|
|
ACS CTP1/2 Manager & Civ4 Co-Manager
|
 |
Hengelo, The Netherlands
Nov 1999 time: 06:20
|
|
As I don't need to tell you, when CtP2 was released it was incomplete. It was buggy, unbalanced, etc and the design team basicallly needed a couple of months more to really make it a good game. That wasn't just true for the regular game, it was true for the Alexander the Great scenario as well, which as you all probably know was designed by our very own Harlan. Noone felt more that his scenario was incomplete than Harlan himself, so he decided pretty soon that he wanted to continue working on his scenario after the game's release. His goal was to release a version 2.0 that was everything that v1.0 was supposed to be plus a little bit more. I had already helped Harlan with some of the SLIC code for the scenario while he was still working for Activision, and the decision to go for a sequel was made jointly by the both of us (Harlan would do the creative work, I would be the code monkey).
Soon it turned out real life issues would be a major obstacle for both of us but especially me, so we also got help from a few others. Most notably we got a lot of assistance with the SLIC code from Charles Rothermel, a.k.a. Radical_Manuvr (who basically learnt to code during the project -- very impressive) and two or three others (I honostly can't remember who) who mostly did playtesting. Unfortunately RL obstacles eventually proved too much and the project pretty much fell apart long before completion. Harlan later moved on to Civ3 and eventually disappeared from Apolyton altogether. Charles and I later discussed what to do with the results we had achieved while the project lasted, but without Harlan's consent as creative mind behind the project, I in particular wasn't comfortable releasing anything; especially since Harlan had repeatedly declined to release a public beta after requests from both other project members (Charles and the playtesters) and interested outsiders. He didn't want to release until the scenario was complete, in his mind the version that CtP2 had shipped with was bad enough. Also, when it came to a delayed release, the very last thing I wanted was to do was to create even the slightest bit of illusion that any of the credit for the scenario should go to anyone else but Harlan (Charles and I may have invested a fair bit of time in it but we didn't code a single line of SLIC without Harlan's consent).
So now I've had these half-finished files sitting on my harddisk for well over 3 years and never quite knew what to do with them. Releasing them wasn't an option, completing them without Harlan always felt to me like heresy, but never doing anything with them at all (or worse, deleting them) would also have been a huge waste. A couple of days ago I was going through my old files, noticed the scenario again and it struck me: the Source Code Project is the perfect opportunity for me to finally do something with it. We're already improving the game as a whole in a big project where credit has to be shared between many individuals. Harlan didn't like releasing an incomplete product, and he was extremely unhappy with the version the game originally shipped. Releasing the improved but incomplete scenario as part of the Apolyton Edition would not be ideal, but still a huge improvement over the original. I have no means of contacting Harlan anymore and I hate speaking in other people's stead, but I think he could live with a decision to release the improved version now. Never releasing the files would be a huge waste of all the effort we all invested in it, and even though incomplete, the improved version is very much playable and enjoyable. Certainly much more so than the version CtP2 shipped with. Heck, assuming the one or two remaining problems will be solved, noone would probably ever have thought that the scenario is in any way incomplete if I wouldn't say so. All the known bugs from the original version have been solved and a bunch of new stuff has been introduced; it could pass for a v2.0 if it was presented as such.
So, after a lot of thought I've decided I would like to release the improved version of the scenario, as part of the Apolyton Edition. I've had to make a couple of changes to it compared to how it was when it was abondoned 3-4 years ago, as there were quite a few loose strings (you tend to get that if you abandon something mid-way through ). I've tried to finish everything up as much as possible and make it all look as slick and complete as posisble. I'm calling the final result Alexander the Great v1.5: not v2.0 as it was intended to be, but still an improvement over the original version. I'll present the most exciting news first: what's new?
Improvements in Alexander the Great v1.5:
- New cities, units, advances, buildings and wonders
- New trade goods and terrain types, with some different movement rules
- New river system: major rivers can be navigated by ships and only a few types of land units
- New 'support' system for naval units: they receive damage when they're too far from home
- New events: more Egypt events, various city defections, Delphi (TBD), Persian navy (TBD)
- New happiness system: the bigger the city, the unhappier (comes on top of existing overcrowding system)
- Improved overall gamebalance (chances/rewards of events, numbers of units, city build lists, etc)
- Improved AI
- Improved Settler rules (some cheats disabled)
- Fixed many existing bugs (pregnancies, treason, barbarian spawning, Sparta, fixes from AE, etc)
- Greatly revised and updated Great Library
But now for the bad news: the scenario still isn't 100% ready. There is one major bug that currently makes the scenario unplayable. I can't solve it myself (partly due to time contraints: I still have a lot of real life obstacles to deal with, one of them being a very packed exam period coming up next week), so I'm releasing it as a beta for now: hopefully with some help from you guys I'll be able to solve this problem. After that there are still a few other smaller issues to take care of, but nothing that should cause any serious delays. Also, some additional playtesting may be desirable to ensure the scenario is now indeed bug-free and properly balanced. However, none of that can really be done before the current game-breaking bug is resolved.
The problem that currently makes the game unplayable is the time between turns: it takes an unexplicably long time for the AIs to complete their turn. Even after disabling all SLIC code and reducing the AI time slices to a fraction of the original, it takes about 10 minutes to complete a single turn. Most notably, the game seems to hang during the turn of the independent Greeks: it's like the goody huts problem in Cradle, but worse. And of course, there aren't any goody huts in this scenario so that can't explain it. I don't remember this problem being reported while Harlan was still working on the project and the first version AFAIK also didn't have it, so it's a bit of a mystery to me where it came from. Can you guys please download this scenario (it installs to a seperate folder so it won't overwrite any existing files) and test it? For one thing I'd like to know if the problem is with just with my PC or if it's happening to everyone (I had problems running the first version of the scenarios as well, though that was on another PC). Also, maybe the coders can see anything in the source code or logs that might explain it? As I said, I have a busy exam period coming up, so I can't do an awful lot myself in the coming weeks, but I'm really stuck on this anyway, someone with a fresh perspective needs to look at this. This scenario is truely awesome and would be a great addition to the AE, but it ain't no good if it takes 10 minutes a turn...
A second, far less serious, problem I've had with this scenario that I haven't been able to resolve myself is with the colors00.txt, in particular the minimap. Harlan rewrote terrain.txt to redefine a few terrain types (most notably some underwater terrains were converted into river tiles) and now the land/water only version of the minimap takes the colour of grassland river (formerly underwater volcano) instead of regular grassland as the colour for land. How do I get it to use regular grassland again? Also, Polar Mountains (which have been made impassable for all units) show up as water tiles on this version of the minimap. I've currently worked around the problem by simply giving the volcano a greenish colour on the radar map, but if anyone could fix these minimap issues (and/or explain to me why it's so messed up), I would appreciate it.
Anyway, here is the scenario, it's labeled v1.5b(eta) for the time being. It's 4.25 MB, unzip to your [root]\Scenarios folder.
|
|
|  |
 |
|
The Big Mc
|
 |
Of the universe / England
Oct 2001 time: 05:20
|
|
try this it should make river grassland the same as grassland.
But it needs testing as it was made on the fly as I don't currently have the latest play test.
Attachment: colors00.txt
This has been downloaded 2 time(s).
Last edited by The Big Mc on 19-10-2004 at 03:41
|
|
|  |
 |
|
Locutus
|
|
ACS CTP1/2 Manager & Civ4 Co-Manager
|
 |
Hengelo, The Netherlands
Nov 1999 time: 06:20
|
|
quote: Originally posted by Fromafar
If you want a slow game, you should try running this in the debugger with the Apolyton edition . I didn't even make it to turn 2 . It looks like the AI is busy determining how to schedule its transport goals. Player 2 is handled relatively fast (around 1000 matches to consider), player 3 takes a little bit longer (about 5200 matches), and player 4 takes forever, with over 34000 matches and an enormous amount of sorting large lists.
Can this be caused by the rivers? If so, adding some river crossings may reduce the need for transports. OTOH, this could introduce chokepoints. |
That's the sort of info I was looking for, especially since I don't have a working version of the source (I get all sorts of weird bugs when I run the latest version, I need to do a clean install but simply don't have the time). Thanks a ton 
I'll try adding some river crossings later when I have the time and see what that does...
quote: An observation about the Slic code |
Yeah, the folks at Activision seemed to really love that CityIsValid function, never quite got that It's not causing any problems AFAIK so I think I'm leaving it as it is for now, until I get really bored sometime 
quote: Oh, and another one: some comments about defection probabilities do not reflect the state of the actual code. |
Well, that's what you get when you have non-programmers working on code. They tend to be sloppy, especially when it comes to keeping documentation updated (especially Harlan) When in doubt, the actual code is correct 
|
|
|  |
 |
|
Martin Gühmann
|
 |
Berlin, Germany
Mar 2001 time: 06:20
|
|
quote: Originally posted by Locutus
That's the sort of info I was looking for, especially since I don't have a working version of the source (I get all sorts of weird bugs when I run the latest version, I need to do a clean install but simply don't have the time). Thanks a ton 
I'll try adding some river crossings later when I have the time and see what that does... |
Yeah that's a problem of the playtest version in general, as soon as the AI has to use transports it is getting slow.
quote: Originally posted by Locutus
Yeah, the folks at Activision seemed to really love that CityIsValid function, never quite got that It's not causing any problems AFAIK so I think I'm leaving it as it is for now, until I get really bored sometime  |
Probably it doesn't cause any problems as long as all the cities are valid, but if one gets destroyed, you might see the slic code in action even if the slic code is not supposed to work if the city is destroyed.
Here is another piece of code that is - well slower than necessary. At least I don't see any reason why:
code:
HandleEvent(MoveUnits) 'AGSeres2_F' post {
army_t tmpArmy;
location_t tmpLoc;
tmpArmy = army[0];
player[0] = tmpArmy.owner;
if (player[0] == 1) {
tmpLoc = tmpArmy.location;
if (SquaredDistance(tmpLoc, seres2Loc) < 25) {
Message(1, 'AGSeres2');
DisableTrigger('AGSeres2_F');
}
}
}
I don't see the need for the temporary variables, so that it looks like this:
code:
HandleEvent(MoveUnits) 'AGSeres2_F' post {
if (army[0].owner == 1) {
if (SquaredDistance(army[0].location, seres2Loc) < 25) {
Message(1, 'AGSeres2');
DisableTrigger('AGSeres2_F');
}
}
}
-Martin
|
|
|  |
 |
|  |
 |
|  |
All times are GMT. The time now is 05:20. Apolyton Time is 00:20. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|