Global AI Interface
Moderators: hoijui, Moderators
-
- Posts: 436
- Joined: 26 Aug 2004, 08:11
alantai, i deleted posts like "trees fart! loooooke me! im at 5 bagillion posts! YOUR MOM IS GAY" etc. i never deleted a post with real content. now that theres a forum for stuff like that, i don't really see much of it anymore and haven't deleted a post since. dont even read the open discussion forum, in fact...
Lol well I dont want anybody at all to be able to look at it but I see your point. However I'm more interested in people who ask to see seeing at the moment, I dont want my AI forums to be despoiled with "great keep upt he good work" or "what do you mean,=s I'm new to all this"
Jouninkomiko, I was being sarcastic,. As for thgins like " ttrees fart" and "Your mom is gay" I take great offense form event he suggestion that any spam I produce would be in that form.
However Renev I'll think about access problems for the moment and see what can eb changed.
Jouninkomiko, I was being sarcastic,. As for thgins like " ttrees fart" and "Your mom is gay" I take great offense form event he suggestion that any spam I produce would be in that form.
However Renev I'll think about access problems for the moment and see what can eb changed.
imho it would be very usefull if you wrote a summary of the ideas posted on your forum. i'd like to keep discussion about spring on this forum, and we can use all the ideas we can get :)Alantai Firestar wrote: However Renev I'll think about access problems for the moment and see what can be changed.
if you really don't feel like it, i can do it, but i think it's better if you did it yourself. you probably have a vision too, right? :)
i realize that this means we'll have to wait for it, no problemo.
- if anyone else has ideas, now is the time to post them (possibly again due 2 db crash) -
Renev, there are those fo us who see my vision and would gladly help me get there with me, happily join in and contribute, resulting in an outcome where ema nd my merry group are sitting playing a skirmish game of Spring and being beaten everytime.
And then there are those who see our vision and want to take it to augment there own visions to accelerate their progress and be able to sit there and be beaten by their own AI's.
These people are called the competition.
I want to continue wiht my AI ideas along with those whodecide to join my path and walk along ti with me. I and the rest who've been invited shall cherrypick and select those who we think are trustworthy and are good enough to get into the flow without beign confused and muddled by half fo what they see.
In the end It comes down to me being protective fo my ideas and thought flow. My vision is my vision, I dont want someone else to pass it off as their own.
The 3 AI paths that I currently have documented on darkstars will continue to be developed and new people are in on an ivnite onyl basis. They will agree not to disclose what they see to the competition and they will contribute ideas or pseudocode/code to the project.
And for those who are itnerested as you say in the AI I see why not they shouldnt be allowed in for a peek as long as I find them trustworthy and can be sure that hey wont use what theys ee to create their own AI or post ti in these forums.
And long ahve I seent he need to palce an AI forum soemwhere other than this Message board. I dont want random people postignt hgisn whcih are pointless or they ahvent read everything and are suggestign things I've already said or poking holes absed on information they ahvent fully read when I've already filled the holes in.
And then there's the rest of the forum, I dotn have time always tor ead the forum and see which threads to keep track of and where enw posts are etc, I want to deal with AI and the rest seperatly, keep my priorities ordered.
Renev, I dont mind you havign access to the content at Darkstars btu as long as you do not spread what you see without permission or post it anywhere else. Just register and I'll take that as an 'agreed'. That goes for you too Gabba & Tsumari.
As for needing all the ideas one can get, I have more than enough ideas, it is different perspectives I want and new innovations. A bog standard AI is not spiffy and is not Sun Tzu compatible.
And No I will not post a summary of my ideas on this forum, that is the same as giving free access to the AI sections of Darkstars and would be throwing everything I said above back in my own face to spite me.
However I will comment on ideas in this forum and suggest possible fixes within reason, possibly point people in a direction, release thigns to certain people whoc an be trusted to help.
And then there are those who see our vision and want to take it to augment there own visions to accelerate their progress and be able to sit there and be beaten by their own AI's.
These people are called the competition.
I want to continue wiht my AI ideas along with those whodecide to join my path and walk along ti with me. I and the rest who've been invited shall cherrypick and select those who we think are trustworthy and are good enough to get into the flow without beign confused and muddled by half fo what they see.
In the end It comes down to me being protective fo my ideas and thought flow. My vision is my vision, I dont want someone else to pass it off as their own.
The 3 AI paths that I currently have documented on darkstars will continue to be developed and new people are in on an ivnite onyl basis. They will agree not to disclose what they see to the competition and they will contribute ideas or pseudocode/code to the project.
And for those who are itnerested as you say in the AI I see why not they shouldnt be allowed in for a peek as long as I find them trustworthy and can be sure that hey wont use what theys ee to create their own AI or post ti in these forums.
And long ahve I seent he need to palce an AI forum soemwhere other than this Message board. I dont want random people postignt hgisn whcih are pointless or they ahvent read everything and are suggestign things I've already said or poking holes absed on information they ahvent fully read when I've already filled the holes in.
And then there's the rest of the forum, I dotn have time always tor ead the forum and see which threads to keep track of and where enw posts are etc, I want to deal with AI and the rest seperatly, keep my priorities ordered.
Renev, I dont mind you havign access to the content at Darkstars btu as long as you do not spread what you see without permission or post it anywhere else. Just register and I'll take that as an 'agreed'. That goes for you too Gabba & Tsumari.
As for needing all the ideas one can get, I have more than enough ideas, it is different perspectives I want and new innovations. A bog standard AI is not spiffy and is not Sun Tzu compatible.
And No I will not post a summary of my ideas on this forum, that is the same as giving free access to the AI sections of Darkstars and would be throwing everything I said above back in my own face to spite me.
However I will comment on ideas in this forum and suggest possible fixes within reason, possibly point people in a direction, release thigns to certain people whoc an be trusted to help.
Last edited by AF on 09 May 2005, 00:01, edited 1 time in total.
I see a conflict of interest, but completely understand your 'project-political' point of view and respect it. A little competition can go a long way :)Alantai Firestar wrote:....
Renev, I dont mind you havign access to the content at Darkstars btu as long as you do not spread what you see without permission or post it anywhere else. Just register and I'll take that as an 'agreed'. That goes for you too Gabba & Tsumari.
This doesn't conflict with the GPL-nature of spring, because you want to keep the development process hidden, not the releases. Right?
I will join under your conditions, and ask you for permission before posting any material found in your team's pool. I think it's great you understand the need for *some* leadership here and there.
On the other hand, I am an 'cathedral and bazaar'-typed opensource evangalist, just so you know

Good, I udnerstand your point of view. But firstly, I will make clear that I will take the same patha s sprign did, keeping ti closed source utnill a release which will be coupled with source and using the same license as spring etc.
As for team, I think that you must note that I and most other people on the 'team' have exams coming up very soon or are in them atm, I myself have posted things btu ym main drive will be once my AS exams are finished in a few weeks.
As for team, I think that you must note that I and most other people on the 'team' have exams coming up very soon or are in them atm, I myself have posted things btu ym main drive will be once my AS exams are finished in a few weeks.
accepted & respected.Alantai Firestar wrote:Good, I udnerstand your point of view. But firstly, I will make clear that I will take the same patha s sprign did, keeping ti closed source utnill a release which will be coupled with source and using the same license as spring etc.
that's cool, i just registred and there's plenty of material to fuel my fire for a while. :)Alantai Firestar wrote: As for team, I think that you must note that I and most other people on the 'team' have exams coming up very soon or are in them atm, I myself have posted things btu ym main drive will be once my AS exams are finished in a few weeks.
what are the criteria for other people wanting to join your team?
They can be trusted, they have ideas, they issue feedback, they will post their ideas and feedback as soon as they ahve it and not hide it from the rest if they knwo it will affect or help the rest. People who fit the above and are toying with their own dieas can start a seperate path as logna s they post ti int he forums and help other people out and try to icnorporate their dieas into other peoples and vice versa. Thus is the goal of research, to generate new paths and carry them out changing and growing till they're at their full potential.
But above all, no leak of content to non members without permission.
And feedback and ideas basically.
But above all, no leak of content to non members without permission.
And feedback and ideas basically.
It's just I wasnt sure howto put it.
I dont like other people doing AI's to compete with me ro of their own accord. But I dont mind people toying with AI ideas and architectures that are foreign to what is currently at Darkstars, but helping us out and us helping them out, eitherway ti would be beneficial to us all and the likely outcome is a hybrid as the 2 paths merge. Sorta like research into a new form of design and they and the rest get the benefits fo exploring the new path and incorporating what ahs been learnt into the rest.
Innovation.
New ideas.
And most importantly, helping eachover grow.
In essence this si ym way fo kicking out the self serving arrogant people and the people who wish to compete or arent bothered about what I or the rest get upto.
I dont like other people doing AI's to compete with me ro of their own accord. But I dont mind people toying with AI ideas and architectures that are foreign to what is currently at Darkstars, but helping us out and us helping them out, eitherway ti would be beneficial to us all and the likely outcome is a hybrid as the 2 paths merge. Sorta like research into a new form of design and they and the rest get the benefits fo exploring the new path and incorporating what ahs been learnt into the rest.
Innovation.
New ideas.
And most importantly, helping eachover grow.
In essence this si ym way fo kicking out the self serving arrogant people and the people who wish to compete or arent bothered about what I or the rest get upto.
Amen.Alantai Firestar wrote: In essence this is my way of kicking out the self serving arrogant people and the people who wish to compete or arent bothered about what I or the rest get upto.
But remember to have some allowance for Humanity, Stress and Egos.

Otherwise you'll end up being the nasty cop... :)
Afterrall it is humanity we're trying to simulate here in an rts context. Besides I should be fair in my judgement of moderation on ym forums cosnidering I chose my users and I have given them a theme and they can run with it to their hearts content.
The people who I am tryign to get out, are the people who would damage the projects and brign em and the rest into disrepute and start flame wars.
The people who I am tryign to get out, are the people who would damage the projects and brign em and the rest into disrepute and start flame wars.
-
- Posts: 436
- Joined: 26 Aug 2004, 08:11
I am thinking that the standardized functions should look something like this
MapData, Unit, UnitDef, Attack, and Command are somewhat arbitrary at the moment and, having not taken a real good look at the code, I don't know exactly how any of this would be implemented. Also, vectors are probably a much better solution than c arrays for the list items.
Code: Select all
//all of these functions will be called by the AI and need to be implemented by
//spring
class AISendInterface{
public:
void enableCheating();
//enables cheating AIs
Command* getCommands(int unitNumber);
//get the command queue of the unit specified by unitNumber
int* setCommands(int unitNumber, Command* commands);
//set the command queue of the unit specified by unitNumber
//to the list specified by commands
//returns a list of the indices of all the impossible commands
//if all commands are valid, returns null
int appendCommand(int unitNumber, Command command);
//adds command to the queue of the unit specified by unitNumber
//returns 0 if command is valid, 1 if invalid
Unit* getControlledUnits();
//returns a list of all unists controlled by the AI
Unit* getVisableOpponentUnits();
//returns a list of all units visable to but not owned by the AI
Unit* getRadarOpponentUnits();
//returns a list of all units visable on radar but not owned by the AI
Unit* getAllOpponentUnits();
//returns a list of all units not owed by the AI
//or null if cheating has not been enabled
double getTotalMetal();
//returns the metal reserves of the AI
double getTotalEnergy();
//returns the energy reserves of the AI
double getMetalCapacity();
//returns the metal capacity of the AI
double getEnergyCapacity();
//returns the energy capacity of the AI
double getMetalIncome();
//returns the metal income of the AI
double getEnergyIncome();
//returns the metal income of the AI
int setTotalMetal(double metal);
//sets metal reserves to metal if cheating enabled
//returns 0 if cheating enabled or 1 if not
int setTotalEnergy(double energy);
//sets energy reserves to energy if cheating enabled
//returns 0 if cheating enabled or 1 if not
MapData getMapData();
//returns the map data
//probobly an ineffeciant call. should be some MapDataChange, which can
//be used to update the internal MapData
//or alternitively, MapData could just be public data
Attack* getVisableAttacks();
//gets a list of all Attacks not by the AI but visable to the AI
//that have occured since the last invocation of getVisableAttacks()
}
//the meathods in this interface will be called by spring and need to be
//implemented by the AI
class AIRecieveInterface{
public:
void unitCreated(Unit);
//called when construction of Unit has started
//Unit is controlled by the AI
void unitCompleted(Unit);
//called when construction of Unit has finished
//Unit is controlled by the AI
void unitDestroyed(Unit);
//called when Unit has been destroyed
//Unit is controlled by the AI
void unitOrdersComplete(Unit);
//called when Unit has completed all orders in queue
//Unit is controlled by the AI
void unitEnteredLOR(Unit);
//called when a new Unit has entered radar range
//Unit is not controlled by the AI
void unitEnteredLOS(Unit);
//called when a new Unit has eneted line of sight
//Unit is not controlled by the AI
void unitUnderAttack(Unit);
//called when Unit comes under attack
//Unit is controlled by the AI
}
class MainAI{
public:
MainAI(UnitDef* unitDeffs, Unit* startingUnits, MapData mapData);
//Setsup the AI at the start of the game.
//unitDeffs is the list of all of the units that are playable in the game
//startingUnits is the list of all units the AI has at the beginning of
//the game. This is normaly just the commander but can include others for
//special games
//mapData is all of the relevent map data, including heightmap, water level
//and metalmap
}
ILMTitan!
*points to the group AI dll interface*
Which ahs pretty much everythign you said already doen and implemented, including unit defs and so on as they're implemented in the engine. Exept for one or two thigns such as Enablecheating();
As for your events, why not stick them all in a single function but pass an extra parameter to represent which one it is.
Just look at the interface code in the source and see that its all been done.
*points to the group AI dll interface*
Which ahs pretty much everythign you said already doen and implemented, including unit defs and so on as they're implemented in the engine. Exept for one or two thigns such as Enablecheating();
As for your events, why not stick them all in a single function but pass an extra parameter to represent which one it is.
Just look at the interface code in the source and see that its all been done.
-
- Posts: 436
- Joined: 26 Aug 2004, 08:11
yea, i really think it would be much easier to have a single function with a parameter representing the event type. also, alot of that functionality is within the groupAI already. the problem is, groupAIs need to be manually assigned to groups, and have no means of management... which is where the globalAI should come in. furthermore, i'm starting to think the global AI should receive most, if not all of it's information from group AIs. ie: unit entered LOS, etc. then, the frequency or type of information sent to the global AI can lie in the hands of the person coding the group AIs, leaving alot of room open for refinement by the AI developers
You think so?
jouninkomiko:
In this case for example each group should still have a unitEnteredLos(), unitEnteredRadar, UnitUnderAttack() functions, but if GlobalAi gets the info then you need to define them only once- for GlobalAI.
Also if some event has happened for a group, it still need to report it to GlobalAI, cause only GlobalAI can take decisions based on the whole information, then GlobalAI would react to this event by giving new order to a group or assigning a new group.
So if GroupAI gets the info it's 3 steps; If GlobalAI- only 2.
Also functions like metalProduced, energyProduced, terrainInfo are only for GlobalAI anyway.
You said that
He can additionaly code all kinds of groupAIs for GlobalAI helpers so basically he still has full control.
The globalAI is really GLOBAL because it takes all the main decisions based on whole information, assigns groups when needed, so it should be able to receive any information, mostly witout intermediates.
Group AIs can also receive info, but mostly the kind of info only important for their group (group of builders assigned a build order should receive info about whether it can build there; attack group should receive info on their attack and loses and smth. like this).
I mostly don't agree.i'm starting to think the global AI should receive most, if not all of it's information from group AIs. ie: unit entered LOS, etc. then, the frequency or type of information sent to the global AI can lie in the hands of the person coding the group AIs
In this case for example each group should still have a unitEnteredLos(), unitEnteredRadar, UnitUnderAttack() functions, but if GlobalAi gets the info then you need to define them only once- for GlobalAI.
Also if some event has happened for a group, it still need to report it to GlobalAI, cause only GlobalAI can take decisions based on the whole information, then GlobalAI would react to this event by giving new order to a group or assigning a new group.
So if GroupAI gets the info it's 3 steps; If GlobalAI- only 2.
Also functions like metalProduced, energyProduced, terrainInfo are only for GlobalAI anyway.
You said that
But if globalAI get's most info, the frequency and type of info it get's also fully depends on the person who'll code GlobalAI.then, the frequency or type of information sent to the global AI can lie in the hands of the person coding the group AIs
He can additionaly code all kinds of groupAIs for GlobalAI helpers so basically he still has full control.
The globalAI is really GLOBAL because it takes all the main decisions based on whole information, assigns groups when needed, so it should be able to receive any information, mostly witout intermediates.
Group AIs can also receive info, but mostly the kind of info only important for their group (group of builders assigned a build order should receive info about whether it can build there; attack group should receive info on their attack and loses and smth. like this).
I will not join a closed up project for Spring. If I contribute to Spring it will be in these forums this year, and next year I may take some tasks to code in the Summer.
Spring is not mature enough to fork or split tasks into private entities, any of which could fall apart at any given time. Skilled programmers should understand that they can best help Spring by donating their resources to the primary project in an open environment.
When Spring is more mature people can take the engine and do other things with it. I, for one, would love to revive some of the old Shattered Realms team in say ~2 years and put together a game based off our old design docs.
I have some experience with the hobbyist project scene. Our project (SR) fell apart partly because most of us wanted to keep it bottled up and exclusive so we could claim all the glory. Alantia's project, barring exceptional skill, will do the same. Don't try to be elitist because unless you really are elite you'll fail.
Tsumari
Spring is not mature enough to fork or split tasks into private entities, any of which could fall apart at any given time. Skilled programmers should understand that they can best help Spring by donating their resources to the primary project in an open environment.
When Spring is more mature people can take the engine and do other things with it. I, for one, would love to revive some of the old Shattered Realms team in say ~2 years and put together a game based off our old design docs.
I have some experience with the hobbyist project scene. Our project (SR) fell apart partly because most of us wanted to keep it bottled up and exclusive so we could claim all the glory. Alantia's project, barring exceptional skill, will do the same. Don't try to be elitist because unless you really are elite you'll fail.
Tsumari