Posts: 71
Threads: 2
Joined: Jun 2009
Quote:Now, to make this valid test, we need the Improved Industry tech level from these cases, or at least the new Impr Rob Control.
Let me change the formula up a bit and see if that gives the numbers you need. I'm not sure that it's using the IInd 'Tech Level' and not just the IInd 'Tech BC'. By this I mean IIT9 has a Tech Level of 3 but a BC of 9. This would make a difference in the calculation.
IInd = 10 / 2 = 5 * (2 - 1) * 200 = 1000... at least 1050 points req.
IInd = 9 / 2 = 4.5 (-0.5) * (2 - 1) * 200 = 800... at least 906 points req.
IInd = 10 / 2 = 5 * (2 - 1) * 140 = 700... at least 713 points req.
IInd = 8 / 2 = 4 * (4 - 3) * 220 = 880... at least 891 points req.
Again, most of the calculations use only a jump from 1 IRC level and we'll need to at least verify a jump from 2 or more to cover different scenarios.
Posts: 5,157
Threads: 113
Joined: Nov 2007
Great work, guys! I haven't been able to playtest further since I've been using my Orion playing time to put together Imperium 21 (in the normal, unmodified game, obviously) but still following with interest and will get back to helping with playtests when I have an opportunity.
Posts: 901
Threads: 28
Joined: Oct 2008
SDragon Wrote:By this I mean IIT9 has a Tech Level of 3 but a BC of 9. This would make a difference in the calculation.
IInd = 10 / 2 = 5 * (2 - 1) * 200 = 1000... at least 1050 points req.
IInd = 9 / 2 = 4.5 (-0.5) * (2 - 1) * 200 = 800... at least 906 points req.
IInd = 10 / 2 = 5 * (2 - 1) * 140 = 700... at least 713 points req.
IInd = 8 / 2 = 4 * (4 - 3) * 220 = 880... at least 891 points req.
Nice! Yes, very likely so. Great results.
On a side note, I noticed in the code that the planet_RobControl does not increase slowly by +1 (even if the race RobControl is higher than planet_RC +1), as RefSteel said several posts before. I don't know if it is a bug, but the game was definitely set up this way.
Quote:Yes, this seems to work correctly. But there seems to be something occuring when Pop might be (Max - 1) and Factories is close to (* old IR) where it won't switch to REFIT, yet the IND seems to be spent in that regard. When Pop reaches Max, it changes to REFIT, but the difference in REFIT costs seems shorter so I'm assuming that's where the IND went. Also, Planetary reserves did not increase at all.
The display will be probably incorrect during the border cases: starting REFIT, finishing REFIT. Honestly, the display is my least worry in this whole case. I could live with it. The alternative is to squeeze a complicated set of equations into another place in the code...
Yes, Meklars should be free. Although the code is ambivalent, the game documentaion says so.
Posts: 901
Threads: 28
Joined: Oct 2008
This is somewhat off topic, but seems to be quite interesting:
Today, while looking into the Master of Magic executable just for fun, I suddenly had a deja vu feeling. I bumped into a strange thing: an entire part of the code totally, absolutely similar to the Moo exe.
Now, I have heard that those game were similar, but I never had the idea it went down to the smallest details in certain sections. And, what is even more interesting, the copied code is a AI-AI diplomacy section - but the diplomacy is known to be too exploitable in MoO and too hard and inflexible in MoM! Also, the MoM AI is known to be quite dumb, while the Moo one got some good reviews. Interesting...
The said diplomacy fonction is the one with the bug (or logical flaw if you prefer it) which causes the AI to regularly break and remake their alliances and to neglect the tech (magic spell) trade.
It is really hard to tell, whether this means they wanted the game to act this strange way, or whether they accidentally copied the bug. This is not a proof but leaves some room for thinking.
It could be interesting to look into the master of magic OSG (is somewhere on net) to see the diplomacy description and its similarities with Moo as well.
September 11th, 2009, 20:26
Posts: 901
Threads: 28
Joined: Oct 2008
There's a new contender for the 'worst part of the Moo I design'. I always thought that this place belonged to the crucial AI expansion routine, but, lately, having digged into the tech related parts of the code, I made a rather disappointing discovery.
The Moo I is a game based upon researching a vast array of new technologies. The interesting part of the process is that the space dominance cannot be achieved through a specialization in one area, but rather by combining several economical or tactical tech branches. There is nothing new on the fact that AI is quite dumb when it comes to choosing its next tech. The shocking part of it is what specifically dumb can mean in this case and how it flattens the whole AI gameplay.
Let us take an example, from an old Sirian's game (it is a classic reading, by the way). Sirian started well with Meklars, only to discover a vastly superior Psilons' empire a hundred years later.
(1)
When you look at the computers' department, you may notice one strange thing. There is a majority of "battle computer" techs there, more precisely 5/8 techs are from this specific branch. The ECM technology has the same frequency as the b_comps in the tech tree; yet Psilons developped only one model, ECM II.
The reason is simple: the AI has a strong tendency to research the top available tech. This tendency (probability in %) gets stronger with the game difficulty, so that on impossible level, the AI will choose the highest tech 2/3 (on hard level 1/2) of the time.
While this game design seems quite logical, it becomes deadly once you take into consideration the arrangement of the tech tree. In most research fields, the techs are arranged similarly to the computers' one: there is one branch that "dominates" in every generation and that is researched wastefully, again and again, by the AI. Therefore, the AI is forced into a harmful specialization, which gets even more harmful with higher game difficulty.
And ironically, the Psilons (because they get 75% of the researchable techs) are hit by this blunder more than anybody else! In fact they have raw .75 * .66 = .50% chance to research the top tech every time they finish the previous one.
(2)
Let's look again on the picture above, this time on the propulsion field. If you compare it with the tech tree chart bellow, you'll find that - Psilons were lucky to get sub-light and fusion drives against the odds. The AI tech tree generally handicaps drives in the early game - such a crucial branch!
- Inertial stabilizer (of all them) gets 50% against Range 6. Here is one other reason for AI expansion being quite poor. The Psilons hitted IS and had only Range 4 for a long era. (this was against the odds, range technology more or less dominates the propulsion tech - which is generally not very good at all)
________________|____________________________________________________
1 | Retro Engines (Warp 1)
2 |
3 | Hydrogen Fuel Cells (Range 4)
4 |
5 | Deuteriumm Fuel Cells (Range 5)
----------------|----------------------------------------------------
6 | Nuclear Engines (Warp 2)
7 |
8 |
9 | Iridium Fuel Cells (Range 6)
10 | Inertial Stabilizer
----------------|----------------------------------------------------
11 |
12 | Sub-Light Drive (Warp 3)
13 |
14 | Dotomite Crystals (Range 7)
15 |
----------------|----------------------------------------------------
16 | Energy Pulsar
17 |
18 | Fusion Drive (Warp 4)
19 | Uridium Jump Cells (Range 8 )
20 | Warp Dissipator
----------------------------------------------------------
(3)
For the next example I will use another screenshot from a later stage in the same game:
Let's look at the force field department, first. It is clearly dominated by the Deflector shields branch (which is not exactly bad). However, one of the most important tech branches in the game (and arguably THE most important tech for the AI), the planetary shields, are never top in their field. That is why the mighty Psilons had to wait until the Planetary XV they luckily hitted on the 32 tech level. That is also why the AI worlds are quite often easy to bomb, I guess.
(4)
The last stop is at the Weapons department. A quick look on the tech tree bellow will reveal the sad truth: the AI is rather unlikely to develop a decent missile tech early in the game. The missiles never top their generation; instead the "generic beams" (e.g. Ion cannon, Neutron Blaster, Fusion, Tachyon Beams etc.) dominate the field. The scatter-packs are literaly burried. I will not waste our time by describing the importance of at least one missile tech thing.
1 | Lasers and Nukes
2 | Hand Laser
3 |
4 | Hyper-V Rockets
5 | Gatling Laser
----------------|----------------------------------------------------
6 | Anti-Missile Rockets
7 | Neutron Pellet Gun
8 | Hyper-X Missile
9 | Fusion Bomb
10 | Ion Cannon
----------------|----------------------------------------------------
11 | Scatter Pack V Rockets
12 | Ion Rifle
13 | Mass Driver
14 | Merculite Missiles
15 | Neutron Blaster
----------------|--------------------------------------------------
16 | Anti-Matter Bomb
17 | Graviton Beam
18 | Stinger Missiles
19 | Hard Beam
20 | Fusion Beam
----------------|--------------------------------------------------
The last Sirian's screenshot from the game seems to confirm the worst: the Psilons have passed through the whole tech tree without researching any missile tech. (They still won. Pathetic.)
September 14th, 2009, 01:40
Posts: 5,641
Threads: 30
Joined: Apr 2009
Good to know. No wonder I almost always see the Klackons do well as the AI, and the Psilons only occasionally dominate, and are often rather weak, considering their bonus.
So, what can be done about this?
1) Delete the "prefer the top tech" completely, or tone it down: I think this only makes the Psilon's problem even worse: they spend all their time filling out obsolete techs, instead of moving on to truly advanced stuff.
2) Only occasionally should the AI need to backtrack down a tier. Would it be impossible for the AI to have, for example, a 90% chance to go for any tech in the highest available tier (i.e., 11-15 after researching Range 6), and 10% to go back for something below the top tier (so IS doesn't get skipped forever)? So remove the "top tech" bias, and replace it with a "top tier" bias. This would likely require some more logic, but it would make all the difference.
The other thing is, this "pick from top tech tier only" is basically how we play the game as humans. About 5% of the time or so, I'll go back and pick up a second tech in a tier rather than moving on. IS, RC III if no RC IV, getting Toxic or Inferno if it turns out no Radiated, a few other cases. This AI isn't nearly advanced enough to know which of the top tier techs it should prefer, but randomly choosing from the best set of available options should suffice. And we need to make sure that the new routine is capable of reaching Adv Tech, without being unable to pick a target.
3) A truly bizarre idea, that might almost work: The AI will not research a tech that is exactly 5 Tech Levels higher than the tech it just finished. This does not solve all of the problems, but certainly would keep the AI from constantly researching Battle Computers, or from going Range 5 -> IS, or Guns Only (where's the Butter?). This would not be foolproof, obviously, but I think it's crazy enough to be viable.
September 15th, 2009, 15:25
(This post was last modified: September 15th, 2009, 19:32 by kyrub.)
Posts: 901
Threads: 28
Joined: Oct 2008
I agree about 1) being not good enough. 3) is impossible to implement. Maybe I should let you know that the space given for the fonction itself is, how to say it, ehm... I could use a stadium of space for a subtle tech_choice algorithm, but all I've got is an incredibly small box with two RNGs.
Cyneheard Wrote:2) ... Would it be impossible for the AI to have, for example, a 90% chance to go for any tech in the highest available tier (i.e., 11-15 after researching Range 6), and 10% to go back for something below the top tier (so IS doesn't get skipped forever)? So remove the "top tech" bias, and replace it with a "top tier" bias.
.... And we need to make sure that the new routine is capable of reaching Adv Tech, without being unable to pick a target.
(5 hours later) I think it is possible.
But I am still unsure that it is the best thing to do.
------------------
Some other thoughts on the subject...
We are facing a manifold problem: - a. Psilons are too focused on the top tech in a tier
which weakens them and makes their AI repetitive - however, other races seem not as bad, just focused always on the upper part of the tier (38% top, 19% second, 7% third, 33% random researchable). This seems intentional, just look at the Construction or Planetology fields, where the cleanup technologies are dominant, which ensures that the AI goes after them. Also the ECM tech which is probably the most inferior in the game is bottom in every tier. It seems to work, bar Psilons, no?
- b. Some weak moments are actually in the tech tree itself
IS shouldn't dominate the so-much-needed Range 6 (this has got OPE written all over it) !! The Robotic control techs should be always top choice, as well as the Planetary shield techs! Armors, warp drives are undervalued, but it is not a big bussiness for a non-Psilon AI.
- c. The concept does not work well for the Weapons field
because the tiers are crowded with techs and there is quite a small % to see the two bottom choices. Also the missiles are horribly undervalued, but the concept in general fails to make the best of the weapons' field variety.
- d. The AI is not ruthless enough in going up the tech tree
... as you've rightly put, Cyneheard. This problem culminates when a single_tech tier appears (like HEF) - there is a about 10% possibility the AI will research some low tech twice in a row instead of HEF. It is not game-breaking, just very stupid decision from our point of view.
To find 1 solution for all these problems (in the 'small box' space) is very tricky.
- Top tier research solves c) and helps with a), but damages the whole concept of preferable techs.
- Repairing the tech tree solves b) issues. It would make the AI a formiddable enemy, but it is unlikely to find enough support in the comunity, I'm afraid. [SIZE="2"]
(what if we moved at the very least the IS from lvl 10 to lvl 11...; or planetary shields from 12, 22, 32, 42 --> 15, 25, 35, 45 ?)[/SIZE]
- A special Psilons treatment - impossible due to the lack of space in the routine. Too bad. It is not possible to tone down the 'top' focus because then the AI wastes a lot of time on the 1-in-tier techs
- Make better odds for the lower techs in the tier - should slightly help with c) and a). It can be done but we will witness more of the useless research (a la ECM). Good trade off for me.
- Tweaking the routine towards less interess for the old toys, solves d). Possible, no side effects...
September 16th, 2009, 00:15
Posts: 5,641
Threads: 30
Joined: Apr 2009
What about a 35/25/15 1st/2nd/3rd + 25% random? This doesn't quite fix weapons...except that the AIs will have holes in Weapons. If the AI only has 3 techs in that tier, which should happen most of the time, they'll at least have a decent chance of getting missiles. The Psilons and Bulrathi won't get as much of a boost, but it's the Mrrshans who really have a problem with Weapons choices (I wonder if THIS is why the AI almost always fails with them: they will NEVER have any missiles whatsoever, and Construction is a painful field to be slow in, and their bonus isn't defensive, which is what the AI needs).
So for tech changes:
If changes are to be done, an absurd number of ideas, take 'em or leave 'em:
Propulsion: I really like the idea of making IS level 11. How often do we even choose IS right away, given a choice? Also, how many dud games collapse because we only have Range 4, then IS? The rest of propulsion, I don't see any reason to change. It's such a sparse tree, and the AI can use Warp Dissipators effectively (Sirian got screwed at least once by those, IIRC). Star Gates get ignored, but the flexibility it gives the AI is so much less useful than it is for the player.
Construction: Looks fine. It's a sparse tree to begin with. Battle Suit is buried, but the others should take priority (I do not suggest swapping it with ARS, but probably unnecessary. ARS is so good on huge vessels early that it probably shouldn't be buffed to make the player's job any easier).
Force Fields: Planetary Shields from x2 -> x5 in the tree: I like. Planetary Shields are so much of a "MUST GET WHEN SEEN" tech that not having them being the most expensive in the tree seems silly. The rest of the tree is really sparse anyways. I see Cloaking Devices often enough that changing them isn't a big deal.
Computers: RC: So we could make the RCs be 10, 20, 30, 40, 50, and make all the BCs be 5, 9, 15, 19, . . . (Tech Nullifier to 48. As I saw in the Silicoid Imperium, Tech Nullifier is a special that works so slowly, unlike, say Neutron Stream or Black Hole that it's not good at all. Oracle Interface at least is a straight damage boost.). Does the AI even act differently if it knows the Space Scanner techs? I don't think so. These changes certainly wreck the aesthetics of BC always being the most expensive, but except for RC III in some early-game situations, RC also qualifies as a "MUST GET WHEN SEEN" tech, it probably should be the most expensive.
Planetology: What about swapping Dead for Death Spores? This is somewhat situational, but the ease that the human player gets in settling tons of Hostile worlds in AI backyards is a huge help to the player.
Weapons: This is the tough one.
Swapping Gatling for Hyper-V: Hyper-V is so much better in almost all cases, let's make the human have an incentive to do otherwise, and the AIs love Gatling laser way too much. My order, and I think most people's, is usually Hand Lasers > Hyper-V > Gatling, but Hand Lasers' biggest advantages are that it's cheap and stays useful much later. If Hand Lasers were TL5, I'd skip them most of the time. If Hyper-V were TL5, I think they're still better than TL3 or TL4 Gatling.
Other weapons rearranging: the weakest tech in a tier probably shouldn't be the best. Scatter Vs dominate the early-mid game, and could probably be swapped with the subpar Mass Driver, or make Neutron Blaster 13, Mass 11, Scatter 15. I'd also like to see the bombs get some love. If the AI doesn't have bombs, then defending is so much easier it's not even funny. Fusions are highly prioritized, and I don't think they should get precedence over Ion Cannons. Swap Anti-matter for Hard Beam? (I'm not a huge fan of shield-halving weapons, NPGs excepted. Mass Driver's 6.5 damage-0.5/shield, or Neutron Blaster's 8-0.5/shield? Most AI ships aren't high-shields. Neutron Blasters are even slightly smaller and cheaper even after more power and higher TL, and allow the 2-space option. Hard Beams are a good 30%ish bigger than Fusion, and usually don't deal the 40% more damage to compensate) I'd probably swap Scatter VII for Tachyon, although that's fairly late in the game. When's Tachyon better? Post-HEF against small ships? Mostly if you're Mrrshan. For truly late-game, Disruptors might be able to take a nerf by swapping with Hellfire torps (so vulnerable to good shields, or being dodged until the launching stack dies, and torps might get fired twice in most fights). If the AI knew how to use Neutron Stream properly, that could be the capstone Weapons tech, not really crappy Plasma Torps that are easily dodged. Not that Mauler's very strong, either, but Stellar Converter has its uses for the AI who doesn't always build HEF gunships.
September 16th, 2009, 02:40
Posts: 1,922
Threads: 68
Joined: Mar 2004
Hi,
first, thanks to kyrub for all the findings about the AI! I haven't played MOO in years, but this thread is a great read.  Maybe I'll come back to the game after the AI has evolved a bit more...
But what made me reply in the first place is this:
kyrub Wrote:3) is impossible to implement. Maybe I should let you know that the space given for the fonction itself is, how to say it, ehm... I could use a stadium of space for a subtle tech_choice algorithm, but all I've got is an incredibly small box with two RNGs. I'm not sure I understand this. Do you mean you can only use the memory of the existing code for your changes, and the function in question is only very small?
Wouldn't it be possible to reserve some extra memory and load code into it? Inject a DLL? (Wait...MOO is very old - what OS was it written for...?)
Just curious...I'm used to reverse engineering programs for WinXP.
-Kylearan
There are two kinds of fools. One says, "This is old, and therefore good." And one says, "This is new, and therefore better." - John Brunner, The Shockwave Rider
September 16th, 2009, 02:44
Posts: 5,157
Threads: 113
Joined: Nov 2007
I think changing around tech tree order is a neat idea for the broader "Twilight of Orion" patch, but it definitely goes beyond just fixing bugs and improving AI behaviors.
I also like the "prefer top-tier" idea - there's value to every tech choice in Orion, and I think it would be better for AIs to have a broad range of techs than specific preferences. (Targeting needed techs would of course be even better, but I recognize that there's just not enough room in the box.)
- As you mentioned, it would help with a) (I suspect it helps a lot)
- It pretty much obviates b) (top tier instead of top tech means no one tech dominates its tier/field combination)
- It solves c) as you mentioned
- It sounds like it could be combined with "Tweaking the Routine" to solve d) as well....
I don't suppose there's a way (i.e. enough room) for a race to flag a tech as "obsolete" (i.e. T+10 when you have T+30) ... if races could refuse to research such techs until no others were available, and massively devalue them for trade (i.e. very willing to trade a tech that is obsolete for their trade partner, very unwilling to give up stuff for a tech obsolete for them) that would be tremendous ... but I don't know if it's really feasible....
|