How to set a global LuaAI? - Page 2

How to set a global LuaAI?

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: How to set a global LuaAI?

Post by Forboding Angel »

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.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: How to set a global LuaAI?

Post by AF »

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
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: How to set a global LuaAI?

Post by hoijui »

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.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

Not all the posts are af/forb. :(
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: How to set a global LuaAI?

Post by knorke »

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?
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: How to set a global LuaAI?

Post by hoijui »

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.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Re: How to set a global LuaAI?

Post by Tobi »

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.)
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

But that means when a player dls a new version of the game in question suddenly they only have those engine included AIs
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Re: How to set a global LuaAI?

Post by Forboding Angel »

LUAAI's should have to be included with the game. That is the only sensible way.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: How to set a global LuaAI?

Post by hoijui »

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.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Re: How to set a global LuaAI?

Post by Tobi »

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...
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: How to set a global LuaAI?

Post by hoijui »

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.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Re: How to set a global LuaAI?

Post by Tobi »

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 :-)
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

Forboding Angel wrote:LUAAI's should have to be included with the game. That is the only sensible way.
No
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.
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.

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.
User avatar
hoijui
Former Engine Dev
Posts: 4344
Joined: 22 Sep 2007, 09:51

Re: How to set a global LuaAI?

Post by hoijui »

you think that is someting different then what we talk about here. it is not.
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

Please explain
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: How to set a global LuaAI?

Post by AF »

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
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

This does not answer my question
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: How to set a global LuaAI?

Post by AF »

Code: Select all

Error 79124: GeneralReplyException thrown, PersonalReply arguement expected in smoth.cpp line 302
User avatar
smoth
Posts: 22309
Joined: 13 Jan 2005, 00:46

Re: How to set a global LuaAI?

Post by smoth »

This wasn't funny in grandma's boy and isn't now
Image
Don't be a douche you are a human use human speech ffs.
Post Reply

Return to “Engine”