Jump to content

A challenger appears : Marilyn (Yet-yet another AI)

Recommended Posts

@Quantumstate: no, testing against Alpha 8. Haven't got around to get the svn because compiling can be a bit of a pain on OSX for now. I don't see any reason why it wouldn't work, however (bar the fact Romans are not supported yet).

@Mythos_Ruler: that's weird. You're sure you have the "common-api" folder in your ai folder?

Link to comment
Share on other sites

I have the folder. :) You are only testing on Alpha 8 though. There have been changes to the API since Alpha 8, I believe. Someone correct me if I'm wrong.

Ah indeed, perhaps this has changed, I'll give a look.

(darn developers developing :) )

Edit: I don't see any of that particular code having changed... Seems like qBot does the same. Quantumstate, any idea?

Edited by wraitii
Link to comment
Share on other sites

Hmm, I could be missing something, but it should at least hypothetically be possible to delete the AI folder in the game install and checkout just that part of the SVN source (as it's JavaScript it shouldn't be a problem). The only problem that I could see would be if there are some new C++ features added that the AI-API depends on. I don't think that's the case at the moment at least though, so it should be worth a try. Just make a backup copy of the folder just in case ;)

Link to comment
Share on other sites

I just noticed a fairly serious issue with the economic manager that caused it to concentrate much less on food than it should. Something about my "maxperfield" parameter working and not my "maxpertree". Anyways, this made Marilyn very easily defeated in the long game.

I'm also updating my tactics manager to be usable over several turns instead of having to be reconstructed each turn, and a few other stuffs in defense.

edit: looked at the svn updates since Alpha 8... Can't see anything that would cause such an issue.

Edit: okay, this is worth another upload. here's the latest version:


Changes are that Tactics is now usable over many turns (the defense manager uses it), and fixing a few balancing problems with the economy manager.

In the games I tried on Oasis (qbot vs Marilyn, with both playing both sides ( tested twice each configuration )), Marilyn is now superior to qBot in basically every aspect, but she's not that much of an attacker, so the game is pretty much a stalemate.

Edit2: actually, another update: I incorporated some of the svn-qBot changes, and mainly I optimized a lot the "reassignidleworker" function, so you should not experience any lag spike.

Edited by wraitii
Link to comment
Share on other sites

(fcxSayna mentioned the solution on irc) This error is caused because something has changed in the game engine where the js file load order is defined. Previously the _init,js file loaded first so it included the common-api. Now filenames starting with capital letters take priority, for some reason, so Marilyn.js gets loaded before _init.js causing the error. The temporary solution is to rename Marilyn.js to marilyn.js. The more permanent solution is to have a proper load order defined some some config file.

If you are trying to compare with qBot it is probably best to test vs svn, otherwise you are always testing against an old version so any improvements will not get taken into account.

Link to comment
Share on other sites

Thanks, I certainly could not have guessed that.

I'm not comparing with qBot so much for actual comparison as for having a basis to compare with, so I'll wait for alpha 9 I think, unless you add some drastic changes (from what I've seen, there have been many smaller changes, but no drastic ones).

Link to comment
Share on other sites

I just ran a quick test with recent svn on Oasis II (qBot Carthagians, Marilyn Hellenes). The game segfaulted (without a useful error message) before the game was finished, but it looked like Marilyn got the upper hand towards the end. qBot had the better start but its attacks were too uncoordinated and slowly Marilyn gained ground.

There was one (non-fatal) java script error in Marilyn:

WARNING: It appears there is som sort of enemy army in my territory
WARNING: New land attack found.
WARNING: Asked for dropsite for wood at 439.1544189453125,394.7325744628906
ERROR: JavaScript error: simulation/ai/Marilyn/map-module.js line 18
TypeError: p is undefined
((void 0))@simulation/ai/Marilyn/map-module.js:18
((void 0),[object Array])@simulation/ai/Marilyn/terrain-analysis.js:108
([object Object],[object Object])@simulation/ai/Marilyn/Attack_city.js:373
([object Object],[object Object],[object Array])@simulation/ai/Marilyn/military.js:1040
([object Object])@simulation/ai/common-api/base.js:117

It seems to be reproducible so if you need more information, let me know.

PS: The shortcut for the developer overlay (Shift+D) is non-functional at the moment. Somehow scrolling right has been assigned the same shortcut. Is this on purpose?

Edited by UV_Completion
Link to comment
Share on other sites

Thanks. Is the Wiki page (http://trac.wildfiregames.com/wiki/HotKeys) meant to be for the developer version or the recent alpha? If the former, it would be nice if someone could update it.

It's meant to be for both =) But yeah, in this case it's not necessarily meaningful to update just yet as that would cause confusion for players using the release version. (There are a couple other hotkeys which needs to be updated as well, see: http://trac.wildfiregames.com/changeset/11031 )

Link to comment
Share on other sites

I just ran a quick test with recent svn on Oasis II (qBot Carthagians, Marilyn Hellenes). The game segfaulted (without a useful error message) before the game was finished, but it looked like Marilyn got the upper hand towards the end. qBot had the better start but its attacks were too uncoordinated and slowly Marilyn gained ground.

Thanks for the report.

The error is actually fixed, it had something to do with counterattacks when all units are dead.

I'm upgrading the defense manager for now, using a defcon system. Also, a few economic stuffs.

Link to comment
Share on other sites

Okay, so I worked most of the day on Marilyn... I think it did some good... I've seen it once crush qBot in 25 minutes, but that seemed to have been a lucky strike... Overall, she's now much more resilient, and again, I've laid ground for further upgrades

New stuff (basically):

-fixed Fortresses building improperly.

-Houses are now far away and more concentrated.

-Attack Plans can now continue during an attack, or be used properly by the defense manager.

-The Defense manager is overall more efficient, and able to detect attacks better. I've also laid grounds for different types of attack recognition, though it's not yet implemented.

-Ability to take care of annoying animals attacking citizens. To playtest this, check out Sahel Water Holes: Marilyn deals with the elephants (particularly true for player 3). This makes her MUCH more efficient than qBot on this particular map.

-Attack plans keep their tactics manager over several turns. Thus they should work better, I'm not sure what effect if has but it can only be good.

-refined a few stuffs in the queues to make everything easier, and made Marilyn build units for plans by batch of 3 and not 1

-Added a few stuffs here and there.

edit: see post below.

Overall, I did a few test drives, and I'm finding Marilyn much more resilient against the mighty qBot (alpha 8). She's more rarely defeated and I've seen fairly clear victories. On maps where animals are threat, she will now be much better than qBot.

There's a lot of tweaks to do (she builds too many fortresses, for example, and more importantly: making the defense manager understand that attacks too far away should not be pursued.), but I think I'll be able to actually add some stuffs in the next days (early scouting, raiding against villagers, this sort of things).

Edited by wraitii
Link to comment
Share on other sites

Okay, some more bugfixing... Apparently there was a problem with javascript interpreting my variables as pointers, and a few stuffs I forgot to do in the tactics manager.

There are still a few bugs left when the attack manager can't find a path to the enemy, but those should basically only happen after said enemy's death so not a serious problem.

The tactics manager (ie battle manager) is now designed so that units will only change target once their former target is dead (works much better).

Did some more testing on Sahel Watering Holes, the map being crowded with elephants and nasty fauna... And Marilyn is definitely much stronger than qBot on that map, thanks to the new "animal killing" capability she has. She always defeated qBot (or both qBots, actually, but in this case they simply annihilated each other) in under 30 minutes (and it was basically over after 25).

edit: see below

Edited by wraitii
Link to comment
Share on other sites

Actually, I tried yesterday, but I ran into a problem... I think I'll try to figure it out later on though, because it could indeed be useful.

I've discovered a really crazy amount of bugs in my defense manager and my economic managers, that should now be fixed, so I think I'll do some testing and release another version... Then try to test against the SVN, and use git.

I also did a few changes to the queue, basically: after 30 seconds, queues raise in importance with time (ie older queues are given priority)

Link to comment
Share on other sites

Okay, so here's the fixed version. I think the next update will be in more time, since it seems like whatever I will add now has to be fairly significant.

This fixes many insidious bugs in many things, but mainly the defense and the attacks. As a result, Marilyn works overall better ate defending, and at attacking too.

I've also slightly updated the queuemanager: things that have been in the waiting queues for more than 30 seconds will gradually become more important, and this helps reducing a phenomenon I encountered which was "in the endgame, Marilyn builds no citizen soldiers and few villagers".

Did a few further testings, on Serengeti... Fixed a house building bug by the way. Marilyn generally behaves on par or better than qBot. On Oasis, Marilyn/Hellenes vs qBot/Persians is won by Marilyn in about 30 minutes. The other way around is perhaps more to the advantage of qBot, but it appears qBot behaves better with the Persians, while Marilyn does pretty much the opposite.

On most other maps, I expect the results to be about the same, with perhaps a slight advantage for Marilyn. On maps where animal are a threat, Marilyn is the clear winner.

Download link

Oh, and I've figured git out, too. I'll get the qBot from SVN and play against it (couldn't manage to compile SVN, but with a very benign tweak svn qBot should work on alpha 8).

edit:darn, forgot to check out a debug in plan_building.js ... Search for "obstructionradius" and remove the debug.


Edited by wraitii
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...