Jump to content

Search the Community

Showing results for tags 'ai', 'api3' or 'unit tests'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Welcome
    • Announcements / News
    • Introductions & Off-Topic Discussion
    • Help & Feedback
  • 0 A.D.
    • General Discussion
    • Gameplay Discussion
    • Game Development & Technical Discussion
    • Art Development
    • Game Modification
    • Project Governance
    • Testing

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







First Name

Last Name

Skype ID

Found 25 results

  1. In yesterdays IRC I mentioned about using jasmine tests for AI development and the topic was considered as maybe of interest to others. So I hereby provide a trimmed-down demonstrator on how a test suite can be set up. The attached zip archive contains a copy of the API3 AI high-level interface with two test cases (one of them discovered the problem discussed here), plus the necessary infrastructure (jasmine 3.6.0 release and driver html page). To execute the test cases, just extract the zip content to some directory and load the common-api/jasmine-runner.html file into a scriptable webbr
  2. Hi again, this is my second contribution to the 0ad game, but a big one for me As I promised on the ArchMod, I've developed a new AI architecture by modifying the original Petra bot. After a long (nearly 2 months) and exhausting development and testing period, it is now ready to be shared with the fans of 0ad. I have to say that AI development is really a serious job and I have a full respect to the developers of the Petra AI. Thank you very much for your efforts to develop the Petra AI. Arch AI Pack Arch AI bots are distributed as a pack that consists 9 Arch based and 4 P
  3. I tried playing around with the AI API3 and set up my own entity template. Thereby I noticed an interesting behavior of the API3.Template.cost() function. I extracted a demonstrator for it: If you execute the following snippet (function (){ var rawTemplate = { "Cost" : { "Resources" : { "food" : 1, //"wood" : 2, "stone" : 0, "metal" : 4 } } }; var fakeSharedAI = { "_templatesModifications" : {} }; var testee = new API3.Template(
  4. Hi, I'd like to modify Petra bot to make the first AI house to be built within Civic Center range. I think the code to manage it is in this part in queueplanBuilding, but it seems to have no impact on the game. Here's the code: if (template.hasClass("House") && !alreadyHasHouses) { // try to get some space to place several houses first bestTile = placement.findBestTile(3*radius, obstructions); if (!bestTile.val) bestTile = undefined; } I tried modifying the radius multiplier to 6, 2, even 0.5 but it seems that they always end up building it outside of CC's
  5. Because the documentation of the AIs are not so much, i want to create a litte tutorial with the first steps to develop a new AI while i develop my own AI. Execuse me for my english, I am from Germany and my english is not the best. At first you must create the following directory structur in the directory <Install Path>/binaries/data/mods, if it does not exists. <Module Name> simulation ai <Your AI Name> In this directory you add a new file data.json with the following text: { "name": "<AI N
  6. When a force of enemy troop try to capture my Civic Center, they couldn't capture it because of the number of garrisoned defenders. So, the attackers switched from capture to attack instead. Very nice. @mimo May have been in the logic for a long time, but it really showed this time. They would capture it by about 5% but my defenders capture it back to 100% every 5 seconds or so. The attackers were all like, "Screw this!" and switch to destroy instead. Very nice, something a human player would do.
  7. So, playing agains the AI, I have realized something. It never makes champs. No matter how much time I give it to build up it just upgrades its citizen soldiers. I know the AI has a lot of metal, food, and population so why doesn't it make champions? It spams citizen soldiers non-stop.
  8. I had an AI opponent that walled off an area with barracks and houses but in the process trapped itself. Due to the terrain where the wooden wall was made up of short zig zags that were all too short for a gate. It had a huge army but they could not participate in the battle until I used a ram on the palisade wall. Then I got owned by the avalanche of angry units. I won in the end. It was clear that the AI could not detect that it was trapped and delete the wall. A sally port might be a solution. A port one wooden wall unit wide with limited unit rate. If this is a duplicate move it app
  9. I created this post for discussing #4395 In Aok, you have like 3 kinds of scenarios: Build and Destroy, Fixed Force and RPG. Then you would have some subtypes: Defend only (hold the ground), Destroy/assault with timer, tug of war, scripted mission with triggers (like 1rst mongol scenario) -Specific commandos: defend this unit, area. Attack this unit/area. Wait until X for other commandos or strategy. Repair never/when possible. Don't train units -Specific strategy: Only rebuild existing units/buildings, but don't expand. Don't attack, only defend. Never or always defend the a
  10. I think, I'm getting really close to finalize the domain specific lanaguage (DSL) used in Hannibal's groups and want to ask for some feedback, because this what this bot is all about. The idea is only groups talk to the engine. Some unit should gather a field, there is a group for that. Want to build houses - launch a builder group. Need resources, give the supplier group some entity ids of trees, mines or whales. Groups are the building blocks of the behavior of Hannibal, everything else is low level or services. If something is going wrong a group is probably missing or not properly programm
  11. Hi guys. AI is back to its old trick of putting all defense tower toward top of map:
  12. Hello guys In headquarters.js is a function named "buildDefenses". In this function is the line: queues.defenseBuilding.addItem(new m.ConstructionPlan(gameState, "structures/{civ}_defense_tower")); In this way I can tell the AI (_petrabot.js) to build defens towers, but what about walls? Does anyone know a way to do this or have any idea? Thanks for your time and attention.
  13. I've found random trigger maps are superior to manually designing maps for bot testing. I can easily change number of bots and civs from the commandline without editing XML files. But that's the random map part. With the trigger part I even managed to change the resources before bot initialization and force research of technologies at game start. So a bot can build fortresses right away from start instead of collecting all needed resources and raising a town first. I'm sure I'll detect more useful possibilities soon and add them to 'brainland_triggers.js' as from trigger map code the simulatio
  14. I've collected quite some papers about RTS bots. From time to time I'll present here either a recently published one or one otherwise interesting. Research on agents in RTS games is very active, because the time constraints and the broad range of needed AI technologies is challenging. Doesn't doing science by playing RTS games sounds like an acceptable job description? I'll start with the 100 page thesis BDI agents for Real Time Strategiy games It is about an 0AD bot written by Andrea Dallatana. Unfortunately he no longer works on the bot. He describes in detail the mechanics of his bot. One
  15. If i want to develop an new AI, how must i do this? I have seen your little documentation at http://trac.wildfiregames.com, but how can i add the AI to the game? I added an directory simulation/ai/myAI in the directory mods and added a data.json, but why does the game not load the AI, if i want to create a new game? EDIT: It works!
  16. Currently, humans and bots have almost no way to work as a team. Maybe if the human typed something like "I am attacking Purple", the AI might find that it has enough men for an attack and say "I will join". This would require some basic natural-language processing to recognize some simple statements. I came up with a list of some statements that should be looked for: "Can I have <NUMBER> <RESOURCE>?" - The AI will check if it has at least 2*NUMBER, and then tribute it if it does "Help me attack <PLAYER>?" - AI will attack PLAYER if possible "Help me!" - AI will help defen
  17. At game start or load a bot is thrown into cold water. He might discover a very hostile environment in terms of resources, units, buildings and enemies. Interestingly game start and end can be very similar, meaning eveything is low, if the human opponnent has victory within his grasp. But a bot doesn't give up, as long there is a small chance of success - he takes it, right? What is the worst case? Let's say no civic centers. That's close to ground zero in 0 A.D., because without CC you lack the territory to build any other structure. So, naturally the very first questions in this case are: C
  18. This is a little Hannibal spin-off, a bot which does nothing except logging some stats about other players. Currently it uses print() and dbgView is one way of capturing the output. It probably needs some cleansing by hand. It should look like this: time;id;name;civ;phase;food;wood;stone;metal;tresaure;unitsLost;unitsTrai;bldgsCons;bldgsLost;techs;popcnt;popcap;popmax;explored;kills0.6;1;Player 1;brit;village;300;300;300;300;0;0;0;0;0;2;9;20;300;8;00.6;2;Cleopatra Selene;ptol;village;300;300;300;300;0;0;0;0;0;1;9;20;300;8;02.2;1;Player 1;brit;village;300;300;300;300;0;0;0;0;0;2;9;20;300;8;02.2
  19. There seems to be no way to let bots communicate with each other like the way humans do by team chat. Actually in a 2v2 game, humans v. bots, humans can exchange info and tactics, bots can't - so chatting is cheating. Imagine sending "attack in 20 sec" to your bot ally to launch a synced attack. Or "need 2000 metal" to force a tribute. Mixed teams would add a new level to the game. Is it a big problem to put two way chat on the API? Sending is already there. Just listening is missing.
  20. Hello, the game "Sins of a Solar Empire" supports granular difficulty settings: Besides difficulty level (easy, normal, hard...) it supports the AI behavior for each difficulty level: Aggressor, Fortifier, Reseacher, Economist, Random In 0 A.D. it could be: Aggressor: rush the enemy with 20 units or less groups, build siege weapons, constantly rushing the enemy, build few towers and no walls. Fortifier: build up towers and walls, then train a large army and then rushing the enemy Economist: harvest many resources, before rushing the enemy, build scant military building, no towers,
  21. Was in need to query the templates more often than acceptable and code got littered with ifs, switches and very long condition lines. So I've spend my bot a triple store and its own query language. This is how it loads: : reading 1188 templates : 65/1188 nodes for athen : 139/1188 nodes for gaia : ignored: Brit(1), brit(59), cart(84), celt(69), gaul(55), hele(93), ..... : loaded 0/0 nodes from Hannibal.Data.RootNodes : created 79/ 79 nodes for classes : created 41/ 41 nodes for technologies : created 14/ 14 nodes for resources : created 4/ 4 nodes for resourcetypes : created 6
  22. Not sure if I'm already literate enough to pose this question properly, but here it goes: On game start from scratch or from saved game, I'd like to know whether there is a Civil Centre or not. From that point on I'm only interested in changes, e.g. destroyed by enemy or building of another one has finished. How can I keep track of the number of Civil Centres? To me looks like the engine is internally heavily based on messages/events and on each call 'SharedScript.prototype.ApplyEntitiesDelta' processes new events into a datastructure/collection ready to get filtered by an AI. So the proposed
  23. I'm opening a new topic since the API version 3 has now been committed. Kind of a conclusion on the past 2 weeks' work before I head back to school, and probably abandon developing 0 A.D. for a good 2/3 months. Warning: this is a huge wall of text, mainly intended for my own reading later, so that I may pick up where I left off without too much trouble . So basically I'm fairly happy of how much progress has been made on Aegis in these 2 weeks of holidays I got (on top of the work I did back then). Defense has been fixed to a fairly great extent, the attack has improved, the economy has learne
  24. newcivs

    Ai is dead

    i setup a match i'm using 0AD SVN 14574 and the AI Don't work, i only setup a game and hi bug from begining this is the result
  25. I create a mod "simply a copy&paste of celtic structures of a "germanic faction", for humans is good!!, buildings "celtic tavern as barracks" "celtic barracks as fortress" but the AI can't understand the fancion! explantion: the AI trains units and soldiers, but when is the time of create structures and a huge army, can't do it! he link of the mod is: https://dl.dropboxusercontent.com/u/101275290/tribusgermanasmod.zip
  • Create New...