Skirmish AI started


#1

Hey, I’ve started on a very crude Lua skirmish AI for this sweet ass game. Edit: link spring.jobjol.nl/show_file.php?id=1743 . It’s a bit akward to install currently though… be neater if it were in the game package.

So far it doesn’t do anything but build engineer --> 1 Barracks and then both (HQ and the Barracks) build platoons on repeat (not put much effort into the build order really). And then it merrily sends the troops straight to a players base :stuck_out_tongue:.

It’s also currently limited to just the Germans, and only one at a time will work

So, for obvious reasons, it’s currently geared towards 1vs1 on small maps, ie I had Caucasian Skirmish in mind most for the start, and my mid term goal is to give a newb a run for his money on that map :smiley: .

Next things I plan to add:
-Flag capping (this involves a number of things)
-Build more than just one Barracks :stuck_out_tongue:

Thereafter:
-varied movement/attack paths (just random)
-choose start position (if boxes)
-Build Barracks/other factories according to income

And plenty more to do after that of course.

Glad to be saying hello :slight_smile:,
Regards
Sean


#2

Great! YAY!! Finally a skirmish AI that might work with Spring 1944! I hope that you manage to finish this AI, because the other spring AIs are so geared up towards TA that they dont really do much, as my evil mind quickly learned :smiling_imp:


#3

I changed your AI for Caucasus Skirmish. Now the bot will take the flags (only Caucasus Skirmish), attack your base from 3 directions and builds light vehicles.

manual:

  1. unpack the operation constantin mod and change the name to “S44Konstantin_v092.sdd”
  2. download this:
    http://www.darkstars.co.uk/downloads/view.php?file=spring/S44CaucasusSkirmishBot_1.7z
  3. unpack the 7zip file and copy it in the folder “S44Konstantin_v092.sdd”
  4. host a battle, change map to Caucasus Skirmish and add the bot
  5. start the game

#4

Awesome! Keep up the excellent work, we’ll very likely include this in the next release.

In the meantime, however, you can make this into a mutator that depends on konstantin (since extracting Konstantin into a .sdd will prevent you from syncing with other people). I can do this tonight or tomorrow and put it up for download (along with my multiplayer skirmish, perhaps).

One cool possibility with this scripted AI approach is that it probably wouldn’t be all that hard to make a “ghost” AI of a player. That is, get a widget to spit out all the commands from a particular team in a replay in GiveOrderToUnit format, and then plug it into a framework for insta-AI clone of a player. Obviously best for 1v1 on small maps where its more about speed than flanks or certain tactics.


#5

Is this because of the difficulty in knowing flag locations?

I can edit the flag spawning/control gadget to add flag locations to the global gadget table so your AI can easily access flag locations if this will be helpful.


#6

awesomeness everyone asks about AI seemingly daily.

im willing offer up my playa skills for the AI to emulate :slight_smile:


#7

Its no fun if no one can win journ :stuck_out_tongue:


#8

AI that just ‘replays’ player actions is too easy to confuse. Setting the enemy (ie human) base in another location would be enough to make it harmless.


#9

So how I get this working exactly?


#10

im sure the AI would copy what the player builds and how he uses it, not the players actual move orders… right?

that would be silly…


#11

That’s the hard part. Copying build orders is easy, copying behaviour is not. Especially understanding why that behaviour was chosen and why those orders were given there and not halfway across the map. Infact I’d say that’s out of scope for current AIs.


#12

Probably the only feasible way to do this will be to script certain basic tactics and unit group compositions. Things like starting with getting the AI to build 3-4 platoons, and then attacking with them, and gradually increasing the severity of attacks, adding more vehicles, tanks, etc. Then it’d also have to go out and capture flags, and learn to call in aircraft (when they’re available), etc… seems a daunting task, but doable.


#13

Hey simdezimonus , cool to hear you’ve done some more stuff with it ! I’ve actually done a little bit as well (just a general Flag recognising routine so far - but the suggestion to have them put on global list might be nice, depends on a few things). I haven’t looked into your AI yet, but I’m sure I will, and it sounds pretty cool compared with what I had done !

On the “how to get it working” front, yeah, I realised a bit late that it’d be far easier to set the whole thing up as a “mutator” :/. My plan was to release the next version in that form, but exams in the past days have had a higher priority for me :stuck_out_tongue:.

Back to simdezimonus, like I said, I really appreciate someone else joining in the effort ! For me it’d make sense that we put our heads together and talk some things through, maybe get the AI on an SVN (version control system). I way prefer working with others than to alone :smiley: !

Also, thanks for all the encouraging words !

Sean Heron


#14

If you like we can set up an AI branch on the main S44 SVN repository. :slight_smile: