Jump to content

Relish

Community Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Relish

  1. Hi, welcome to the forums. AI is my main area of interest here so I will be looking forward to seeing what you come up with. I will be curious to see how far you can push the agent idea. I have just started trying to introduce more of this style into qBot, (the new worker.js is the only example so far, I'm hoping to add military sometime).

    My view is that this isn't particularly well suited to RTS AI's as a whole, the resources are inherently centralized and when fighting you want your whole army acting in a coordinated manner (based on practically all military theory for non guerrilla warfare). Hence I have decided on a single central planner system for qBot. This is mainly guesswork though, hopefully your AI will surprise me :).

    What you say it's true, resources are centralized, it is for that reason that all my agents take the informations they want from gamestate in their "perceptions" cycle, after that they only use their internal belief system; I haven't used the metadata field to store anything so far.

    Centralization is partly present: you're correct in saying that centralization is needed, in fact at the moment I'm working on emergent behaviours in that area.

    Some units act as military leaders, assembling armies and leading them in a centralized manner; other units, while maintaining their independence, follow orders into battle.

    What I'm trying to do at the moment is to make units emerge as leaders; so far I've tried a hierarchical structure (heroes on top) where, based on the unit's type, it gets recognized as leader by the others.

  2. I'm not sure if morale would be an efficient system for an AI to use; what I'm working on is a system whereby it can run at the start of a battle, but if it commits it commits. Running away mid-battle is likely to lead to heavier losses for less gain/pain on the part of the enemy. Morale-based retreats happen in real life where people don't want to die; the AI has no such considerations really, it cares about whether its losses are efficient but not the life of any individual trooper.

    (This is incidentally why apparently, when a team of computer gamers controlled the enemy in a war-simulation to train US officer staff, the gamers won by miles. The US officers, trained to fight a real war, were careful to avoid un-necessary losses. The gamers, only used to playing games where efficiency trumps loss of life, happily ran some of their best squads in on a suicide mission, losing most of their best fighters but managing to destroy all the US supply bases and thus effectively winning the war as their opponents had no supply lines).

    In my AI I've tried a very simple approach (mainly to test how efficient my agent system was), making units escape a fight if engaged in an unfair fight (by number of enemy units) or if severely injured.

    The agent's plan was to escape into a safe location like a base, a tower or a regroup point with another group of units.

    In all the tests I did once the units escaped a difficult fight with minimal losses and their retreat to buildings or friendly units not only scattered my army but also turned the fight in their favour.

    What you are saying may be right in a clean contest where no other factors come into play, but in a game like this, where you can exploit buildings and movement, I think it could work.

  3. So just record a match vs qbot and link you too the recorded video on youtube?

    exactly!

    A pretty recent game: (if I recall correctly it's recorded by Michael aka Mythos_Ruler, who probably is the best 0 A.D. player at the moment, mostly because he knows the game like no one else ;) ). It's not a 100% standard game as there are some additional buildings at the start of the game, but overall it should be the same, also it's sped up a bit to work as a promotional video, but it's at least better than nothing while you wait for others to record their games :)

    An Alpha 9 singleplayer game against two AI bots:

    Thanks Feneur and Pureon, these are precisely the kind of videos I am looking for.

  4. what do you think about adding a couple of external interface functions to UnitAI.js to let the entity object know which entity it is attacking and which are attacking it?

    to enable something like this:

    entity.underAttackByEntities() that returns an array with the ids of the entity attacking it

    and

    entity.attackingEntity() that returns the id of the entity that it it is trying to attack

    this would make it a lot easier to develop any kind of morale system

  5. Developing my AI bot I've come up with the problem that I'm still bad at playing this game and I don't know if any of the tactics I use are any good. :sorry:

    I've looked at how the other bots play but I would like to see some strategy from a good player.

    There is a thread about 0ad videos sticked but the matches are using an outdated version or are just too short to have an idea about how to play.

    If anyone, who reputes himself to be a good player, could record a video of a match, where the actions he takes are clear and the camera is not too zoomed in, it would help me a lot.

    I know that different civilizations have different playstyles and I will make my bot act differently based on the civ it is assigned to in the future, but a match with any civ you want would be good to me to at least get the basics.

    Thanks!

  6. Welcome and thanks for the report, it's cool to hear about 0 A.D. being useful to someone else even though it's not finished yet if nothing else ;)

    I assume(/hope) you're using the SVN version to stay on top of new development? Just so you take advantage of any new improvements :) (Though if you're short on time it might be better to be using a static version so you don't have to keep up with any changes =) )

    yes I'm using the svn to keep on par, but my bot only uses the common AI api (and not in a intesive way): so it should be very easy to port and adapt to any new version.

    Would you mind saying if you are male or female? (Either way you are very welcome here!)

    I'm male. In Italy Andrea is a male name (like it was originally since it means "Man" in ancient greek :P). I forgot in other parts of the world it is used by both genders, I should have used Andrew :)

  7. Hi Andrea,

    That sounds very interesting! I'm not very knowledgeable about AI myself, so I'd be eager to see how this plays out :)

    As I'm sure you've noticed we've got a couple of bots in the making already; there's been some talk recently about joining efforts to move to a single definitive AI bot, but I'm not sure what stage those plans are at this time (I'll have to defer to the people directly involved for that). Nonetheless, I don't think that should stop you from being able to create a separate bot, and although I don't know how the current bots work, I suspect they'll find it interesting to see how yours does.

    Out of curiosity, if this is your master's thesis, how are you being mentored?

    Also, the dev chat is most definitely open for everyone. Come hit us up on #0ad-dev @ quakenet!

    I know about the other AIs and I read most of their code to see how they accessed game data and sent commands to the engine; my work will probably overlap in the "decision making" part, but not in regard of map analysis or entity collection access which I will probably leave as it is.

    I also plan to develop a parser to let people (even non programmers) write behaviours for the agents, that way anyone could try to find the best way to handle that little community of intelligent ants :D

    About the mentoring: I'm pretty much free to take the direction I want and when I have some hard decisions to make I ask for opinions; I'm being followed by experts in multi agent systems so I usually ask advice about choices in the infrastructure and common agent interaction problems.

    So I'm digging myself through the code, but so far I've managed to find what needed (thanks also to the good AIs already present); in case I'll need some info about parts of the codebase I'll ask here :)

  8. Hi!

    I'm Andrea and I'm a student from Italy (University of Bologna).

    I'm developing an AI for 0ad as my thesis for my Master in Computer Engineering and I wanted to introduce myself in your forums since I thought it would be nice to start posting here some of what I was doing.

    The main theme of my work is to use BDI Agents to govern the behaviours of the AIPlayer's units and buildings: in essence every unit (and building) is an intelligent agent with his own beliefs, desires and goals and they all interact to achieve different objectives.

    Instead of having a single mind like the other AIs, this one aims to reach the main goal by having multiple simple minds interact.

    I've already developed the underlying framework and I'm now adding the agent's behaviours, so I'll soon start to share the Bot to see how it goes against better players than myself ( since I've always loved RTSs but I was never very good at them :sorry: ).

    Since I'm very interested in game development I'll also try to help if needed with other parts of the project; I've used Java, C++, PHP, javascript and other languages in the past but I'll need to refresh a bit my C++ since I've mostly programmed in Java in the last 2-3 years.

    See you in the forums and probably in your dev chat too (if it is open for everyone). :cheers:

×
×
  • Create New...