Skirmishment!

Skirmishment!

Various things about Spring that do not fit in any of the other forums listed below, including forum rules.

Moderator: Moderators

Post Reply
User avatar
Slamoid
Posts: 237
Joined: 25 Jan 2005, 19:23

Skirmishment!

Post by Slamoid »

Hey, I haven't been able to get the code to compile at all. Is there any way somone could just put in a temporary "skirmish" mode that just randomly spawns low-level attack units occasionaly and sends them at the player? Just a thought; somthing easy to do.

PS: I'm usually anti-spam, but what can I say. I'm anxious. :wink:
Vehementi
Posts: 67
Joined: 28 Apr 2005, 23:27

Post by Vehementi »

Related question... is the code in for AI players and AI scripts yet? Are we just waiting for someone to script the AI, or is support for that just not in at all?
User avatar
[K.B.] Napalm Cobra
Posts: 1222
Joined: 16 Aug 2004, 06:15

Post by [K.B.] Napalm Cobra »

Its being worked on.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Let me put it this way.

Napalm got the AI interface from SJ a few weeks ago before spring was released but it didnt have everythign eneded.

Working with the interface as it is there is no way to do a proper skirmish AI because there is no Building or construction interfaces available.

Now though we have source code. But Jouninkomiko is working on skirmish interface and AI etc. I think ti is best that The skirmish project underway use the official SY interfaces and not use a seperate fork from the Spring source with our own AI interface, nto to mention I have A levels soon and the others ahve other thgins so there's no room for such changes when an SY is doing them for us.

However when asked for information Jouninkomiko replied "you'll get it when everyone else gets it", which means that untill Jounin is finished I wont know what form the itnerface will take and what he intends on doing which is a problem that needs addressing. Untill then the skirmish AI as it stands will continue development, but leaving the bits we cant do out as pseudo code untill Jounin provides the necessary info to fill them in.

Untill then I will not be posting my AI thoughts on this forum, I've set aside somewhere else for me and the rest to collaborate on an invite only basis.

If you want to conribute PM and you'll be handed access but only if you have ideas or experience, and not simply to look and do nothing or moa that you dont have time to read everything
User avatar
Dragon45
Posts: 2883
Joined: 16 Aug 2004, 04:36

Post by Dragon45 »

You know those scripts that you have the option to run when running "spring.exe"? I couldn't find those anywhere in the dir structure or anything.

Are they hardcoded?
User avatar
[K.B.] Napalm Cobra
Posts: 1222
Joined: 16 Aug 2004, 06:15

Post by [K.B.] Napalm Cobra »

Its not so much not there, as horrendously minimalist.

/edit/ They're in .dll's. You can find the source for them came with the spring source /edit/
Anonymous Joe
Posts: 21
Joined: 01 Nov 2004, 03:33

Post by Anonymous Joe »

Ahhh... well I aought to start looking into that.

I think a .DLL baised Lua/Python engine would make an ideal choice.
(as in everyone who can read code can make their own AI...)

although I don't think much can be done atm, as springs code is still in flux.

a AI fork at this point would only hurt future development. so I'll wait for now.
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

basically, the first job is to write an interface to spring for an AI to get information and make commands. here is where ideas are welcome, and if someone could compile ideas, that would be greatly appreciated. things im looking for are:

1. What information an AI should have access to
1a. Cheating based information (info a normal player wouldn't have access to)
1b. Non-cheating information
2. What kind of commands should it be able to make.
3. Helper functionality

The actual implementation can then be left to a coder writing the AI. the ideal would be to put a script engine on top of this interface so that people can simply write AI scripts and mess with their own AI creations. regardless, i want to try my hand at making an unbeatable, non-cheating AI.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Jounin, we already have the AI callback interface for the dll's.

Make ti so that every unit built is autoadded and provide a method of accessing build queues, build menus and actually constructing things and we ahve everything for a basic AI to fill the gap in.


As for lua, people keep going on about it, POST EXAMPLES or at least a link to soemwhere where I can get a quick primer.

The dll's and the callback inplemented are already capable fo being 'helpers' though more informtion about building and commands would help that a lot aswell as the ability to change the GUI.

Triaxx and I both seem to have ideas and a general schema and numerous scribble of pseudocode and actual code for an AI that does NOT cheat. Such a thign would violate the 'Sun Tzu' objective

As for what commands it hould eb able to make. I demand full cotnrol fo every command that can be issued in the game to be included.

And making your own AI? Keep us posted on it as much as possible.
User avatar
Triaxx2
Posts: 422
Joined: 29 Aug 2004, 22:24

Post by Triaxx2 »

Not to mention that Triaxx is incapable of anything resembling effective coding. I'll have a look at the source code in the morning and see what I can do about those thingies you asked about AF.
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

there is no AI callback interface in Spring yet. There's only for GroupAI, which is a very small subset of what can be needed by a full scale AI.
alik83
Posts: 82
Joined: 08 Sep 2004, 15:32

KOOL!

Post by alik83 »

jouninkomiko: i want to try my hand at making an unbeatable, non-cheating AI.
Yes! Go for it!
I'm mostly interested in creating AI helper for the player.
It would be really good to have a scripting language in which everyone could define their AI behaviour, but implementing the AI interface in C++ would be also OK.
The AI interface should make possible to define all-level AI behaviour, add new commands to GUI (like "Go to the nearest metal site and build Mex on it!), also new behaviour commands (like maneuver), communicate with other group AIs.
AI should be able to acess all non-cheating info a player could: it includes the number and position of dots on the radar, resources, metal patches locations, markers set by players (so you could draw an "avoid" marker, and your unit AI would avoid stepping into this territory!), and maybe also info on what you saw in the enemy's base(your peeper saw a Nuke building in enemy's base and your AI warns you that Antinuke is needed;)
AI should certainly have access to all possible commands in game, and it should be possible to create high level commands based on the low level commands.
Lastly the AI should be able to control units and build buildings based on the whole information a real player could gather. (Calculate how to get the resources up the fastest way, what units to build, where to put defences).
So go for creating a global AI interface in C++ first with methods to access to GUI commands, game info, defining AI behaviours and creating new commands.
It's great jouninkomiko and others are working on this topic, I already see a great and customizable deadly AI being born :twisted:
SJ
Posts: 618
Joined: 13 Aug 2004, 17:13

Post by SJ »

The group ai interface already provides just about everything you mentioned alik83 so just start coding.
sylvinus
Posts: 18
Joined: 01 May 2005, 16:59

Post by sylvinus »

I think it would also be very interesting to be able to do automated AI vs AI games and statistics to see the power of each one's AI.

Maybe an AI repository too so that one can check how good his one his when working on it ?
alik83
Posts: 82
Joined: 08 Sep 2004, 15:32

Well

Post by alik83 »

Well I looked through the code, GroupAI and AICallback methods and have to say that it's quite possible to create a global helper AI but:
1)What happens if I select a group inside my global helper AI and assign it a second AI? Will it automatically depend only on the second AI?
2)AICallback provides only very basic methods and doesn't provide a way for AI to actually build stuff (code for that could be copied from another place but I'm lazy...), though autoadding new units to AI and acessing build ques should be easy.
Also I would like a method for acessing marker info (pos), adding totaly new commands to GUI, and having GUI commands available when none units are selected.
3)I wonder, does

Code: Select all

GetEnemyUnits(int *units)=0;					//returns all known enemy units
gets all enemy units in your LOS? What about radar?

I'll do some experimenting but mostly I think I'll wait a bit for jouninkomiko to write a more extended AIcallback interface with more methods for the global AI, as he should know the Spring code better;)
AND AI battles would indeed be cool- Programmer's minds batlles;)
jouninkomiko
Posts: 436
Joined: 26 Aug 2004, 08:11

Post by jouninkomiko »

I added a forum for this kind of discussion. Soon, I'll be adding function prototypes and then get started on putting it into spring when i feel we have all the info needed.
User avatar
[K.B.] Napalm Cobra
Posts: 1222
Joined: 16 Aug 2004, 06:15

Post by [K.B.] Napalm Cobra »

GetEnemyUnits(int *units)=0; //returns all known enemy units
Sheekel
Posts: 1391
Joined: 19 Apr 2005, 19:23

Post by Sheekel »

it sounds like you guys are doing greate work :-)
Post Reply

Return to “General Discussion”