How to set a global LuaAI?
Moderator: Moderators
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: How to set a global LuaAI?
AF, you think I'm singling you out. I'm not. Yes, you were the catalyst, but not the target.
Let me point out sequence of events with AI's and you tell me where I'm wrong.
Krogothe, gone (after all the work I did testing KAI for him too)
Reth, gone (I think???)
Submarine, gone (afaik)
You have ALWAYS been here, therefore it stands to reason that I can reliably figure that you aren't going anywhere anytime soon.
Surprise! You go away for x amount of time, leaving me to troubleshoot your AI for you when I don't really know much about it nor understand how it works.
When you left, it was working ok. While you were gone, some new engine versions came out, and it was then not so fine.
AI devs go away as though it doesn't matter and leave us to clean up their mess.
You aren't the target. You are not the focus. You were the catalyst. I understand what smoth had been telling me that entire time. I won't be making the same mistake again. No, I am not upset with you nor think any less of you. You simply pushed me towards a different line of thinking.
And smoth said it would happen, and it did. I didn't listen to him and I should have.
***************************************************************
If the whole point of this thread is to say that luaai 's should be able to be shown in the lobbies just like c++ ai's... On principle, I agree. However, imo the AI devs should work with the gamedevs instead.
Let me point out sequence of events with AI's and you tell me where I'm wrong.
Krogothe, gone (after all the work I did testing KAI for him too)
Reth, gone (I think???)
Submarine, gone (afaik)
You have ALWAYS been here, therefore it stands to reason that I can reliably figure that you aren't going anywhere anytime soon.
Surprise! You go away for x amount of time, leaving me to troubleshoot your AI for you when I don't really know much about it nor understand how it works.
When you left, it was working ok. While you were gone, some new engine versions came out, and it was then not so fine.
AI devs go away as though it doesn't matter and leave us to clean up their mess.
You aren't the target. You are not the focus. You were the catalyst. I understand what smoth had been telling me that entire time. I won't be making the same mistake again. No, I am not upset with you nor think any less of you. You simply pushed me towards a different line of thinking.
And smoth said it would happen, and it did. I didn't listen to him and I should have.
***************************************************************
If the whole point of this thread is to say that luaai 's should be able to be shown in the lobbies just like c++ ai's... On principle, I agree. However, imo the AI devs should work with the gamedevs instead.
Re: How to set a global LuaAI?
I may not have had the resources I usually had to bear, but I was still contactable, I always am, and I always have, nothing changed, and nothing changed in the last sentence dictating that any reply was to be via PM to prevent further derail
Re: How to set a global LuaAI?
edit: woops! i fail at forum (though tis a new thread)
aehh.. this thread title is totally inappropriate/misleading and.. you should have done this through PMs instead of wasting time of everyone?
Last edited by hoijui on 03 May 2011, 20:59, edited 1 time in total.
Re: How to set a global LuaAI?
Not all the posts are af/forb. 

Re: How to set a global LuaAI?
hoijui, just ignore the postings, it is all OT.
the question is:
Is it possible to make a LuaAI that is not bundled in a game?
the question is:
Is it possible to make a LuaAI that is not bundled in a game?
Re: How to set a global LuaAI?
as i see it, this would require Gadgets that are neither part of spring, the map nor the game or a dependency of map or game, to be available at runtime. That is technically possible of course, but ... i do not know if want.
Re: How to set a global LuaAI?
It would be possible if modtype = 2 was implemented.
(That was once planned for mutators, as in select one game plus any number of extra mutators.)
(That was once planned for mutators, as in select one game plus any number of extra mutators.)
Re: How to set a global LuaAI?
But that means when a player dls a new version of the game in question suddenly they only have those engine included AIs
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: How to set a global LuaAI?
LUAAI's should have to be included with the game. That is the only sensible way.
Re: How to set a global LuaAI?
its not "engine included AIs", but "game & mod independent AIs". they could come with the engine, a mod package, or be downloaded manually or a download system.
it means, giving more control to the user, and less to game makers. If there was a way for games to disallow usage of this feature when their mod is loaded, it would be ok for me.
it means, giving more control to the user, and less to game makers. If there was a way for games to disallow usage of this feature when their mod is loaded, it would be ok for me.
Re: How to set a global LuaAI?
For C.R.A.I.G. it would have saved a lot of pointless development time if I could have made a single release that was playable with both IW and with S44.
Instead I had to always release two copies, identical modulo modinfo.lua.
For quick feedback on an AI it is really important to not have to wait for a new release of the mod for every release of the AI, so only allowing Lua AIs to be included in a game does not make sense.
A mutator on top of a game is halfway there, but it would be even better if such a LuaAI could be made as mutator for multiple games at the same time. And it would be best if there are sufficient interfaces in unitsync so that the lobby can actually display the LuaAI for the game in the list of AIs, without the user having to go through the steps of changing the game to a "mutator with AI" of the game, and then still having to select the AI.
The brings me to a few ideas:
Maybe it makes sense to allow an archive to have a modinfo.lua that returns a table with multiple entries, so the archive acts like it is two (or more) archives. That way for C.R.A.I.G. I could have made a single package that would show up in the lobby both as "SWIW + C.R.A.I.G." and as "S44 + C.R.A.I.G." (only if its dependencies would also be present of course).)
And another: maybe some metadata about provided AIs should go into modinfo.lua, and be exposed to lobbies through unitsync, in the form of an answer to the question: which mutators provide Lua AIs for this primary mod package, and what is the metadata of those AIs?
Then, an AI could be a hidden package, and lobby could include such AIs in the list of AIs for a game, and automatically switch to the mutator if the AI is used.
Just brainstorming here though, I think there must be better solutions, as this all appears kind of hacky to me...
Instead I had to always release two copies, identical modulo modinfo.lua.
For quick feedback on an AI it is really important to not have to wait for a new release of the mod for every release of the AI, so only allowing Lua AIs to be included in a game does not make sense.
A mutator on top of a game is halfway there, but it would be even better if such a LuaAI could be made as mutator for multiple games at the same time. And it would be best if there are sufficient interfaces in unitsync so that the lobby can actually display the LuaAI for the game in the list of AIs, without the user having to go through the steps of changing the game to a "mutator with AI" of the game, and then still having to select the AI.
The brings me to a few ideas:
Maybe it makes sense to allow an archive to have a modinfo.lua that returns a table with multiple entries, so the archive acts like it is two (or more) archives. That way for C.R.A.I.G. I could have made a single package that would show up in the lobby both as "SWIW + C.R.A.I.G." and as "S44 + C.R.A.I.G." (only if its dependencies would also be present of course).)
And another: maybe some metadata about provided AIs should go into modinfo.lua, and be exposed to lobbies through unitsync, in the form of an answer to the question: which mutators provide Lua AIs for this primary mod package, and what is the metadata of those AIs?
Then, an AI could be a hidden package, and lobby could include such AIs in the list of AIs for a game, and automatically switch to the mutator if the AI is used.
Just brainstorming here though, I think there must be better solutions, as this all appears kind of hacky to me...
Re: How to set a global LuaAI?
isn't what we need basically, an unversioned dependency?
as in: specified only by name, instead of name+version.
... does not work of course, as everyone in a multi-player game would need the same version.
so yeah... i have no better idea then you, Tobi, but i agree it feels a bit hacky.
as in: specified only by name, instead of name+version.
... does not work of course, as everyone in a multi-player game would need the same version.
so yeah... i have no better idea then you, Tobi, but i agree it feels a bit hacky.
Re: How to set a global LuaAI?
Unversioned dependency would also be a step in the right direction, but is different from the things I mentioned.
Also, loosely versioned dependencies may be better. (So you can specify lower/upper bounds.)
My ideas in short would be:
1) single archive that actually is multiple mutators from Spring/unitsyncs point of view (solves need to release multiple times for multi-game AIs)
2) LuaAI metadata in modinfo, so lobby can know of presence of an AI for the selected game in a mutator (could help solving the inconsistency for user in the lobby)
EDIT: On second thought I think that whole archive dependency stuff could use an overhaul. Not sure how realistic that is tho
Also, loosely versioned dependencies may be better. (So you can specify lower/upper bounds.)
My ideas in short would be:
1) single archive that actually is multiple mutators from Spring/unitsyncs point of view (solves need to release multiple times for multi-game AIs)
2) LuaAI metadata in modinfo, so lobby can know of presence of an AI for the selected game in a mutator (could help solving the inconsistency for user in the lobby)
EDIT: On second thought I think that whole archive dependency stuff could use an overhaul. Not sure how realistic that is tho

Re: How to set a global LuaAI?
NoForboding Angel wrote:LUAAI's should have to be included with the game. That is the only sensible way.
When I talk about engine included AIs I am talking about stuff like rai, they get included with the spring install have never worked with gundam and really only confuse my players.hoijui wrote:its not "engine included AIs", but "game & mod independent AIs". they could come with the engine, a mod package, or be downloaded manually or a download system.
it means, giving more control to the user, and less to game makers. If there was a way for games to disallow usage of this feature when their mod is loaded, it would be ok for me.
I think that luaais should be treated the same as these useless AIs. As in give them a dir and selectable with any dependency stuff. Dependencies are messy. Why not treat the lua AIs as the regular AIs are treated. We still have been given no reason for this.
Re: How to set a global LuaAI?
you think that is someting different then what we talk about here. it is not.
Re: How to set a global LuaAI?
People only want lua AIs because of the so called C++ bus factor and are utterly blind to the fact that any lua AI of any complexity has just the same issue, only without the high chance of an engine developer coming to your rescue.
Until they can be packaged the same way as a native AI then lua AIs will always be behind or they'll be developed by people who are strict enough to develop competitively with a massively stressful release process, and good luck trying to exert any control over those kinds of people
Until they can be packaged the same way as a native AI then lua AIs will always be behind or they'll be developed by people who are strict enough to develop competitively with a massively stressful release process, and good luck trying to exert any control over those kinds of people
Re: How to set a global LuaAI?
This does not answer my question
Re: How to set a global LuaAI?
Code: Select all
Error 79124: GeneralReplyException thrown, PersonalReply arguement expected in smoth.cpp line 302
Re: How to set a global LuaAI?
This wasn't funny in grandma's boy and isn't now

Don't be a douche you are a human use human speech ffs.

Don't be a douche you are a human use human speech ffs.