ShardLua games configurations dev

ShardLua games configurations dev

Here is where ideas can be collected for the skirmish AI in development

Moderators: hoijui, Moderators

Post Reply
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

ShardLua games configurations dev

Post by prandipadaro »

In the past I helped eronoobos-zoggop in the development of the shard configuration for BA and BAR.
Now I have learned that he has no present intention of developing it.
I would then try to continue the project.
The situation is, however, also tangled:
There are currently the following repository:
main shard https://github.com/tomjn/Shard
another main shard https://github.com/Tarendai/Shard
shardLua version https://github.com/eronoobos/ShardSpringLua
root configuration for BA https://github.com/eronoobos/Balanced-A ... hard-LuaAI
root configuration for BAR https://github.com/eronoobos/BAR-Shard-LuaAI
THE submodule (?) configuration for BA and BAR https://github.com/eronoobos/BABAR-The-Shardifant
BAR repohttp://imolarpg.dyndns.org/trac/balatest/
BA repo https://github.com/Balanced-Annihilatio ... nihilation

uff ... I'm a little confused and lost.

Also, if I have understood well the discussions about shard, and shard configurations for games, there are problems with modules and submodules and "symlink".

Well I just would like to know:
This situation is ok now? or someone expected great revolution in the nearest future?
If i will to continue developing of shard-shardLua conf for BA and BAR: What are the steps that I must follow to push my changes on BA and BAR configurations?

I open this new topic because i think that the dev of shard itself and her configuration for games, are two different things.
thanks in advance
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

So first things first, I renamed my GitHub account from tarendai to tomjn, but this broke a few things, so I recreated the tarendai account as a mirror so older builds of spring aren't broken. Use https://github.com/tomjn/shard

Finally, the other repos haven't anything to do with me and the official project, they're independent efforts


A fork of Shard that uses LuaAI instead of the native AI interface so it can be embedded in games shardLua version https://github.com/eronoobos/ShardSpringLua

Game specific configurations bundled as submodules:
root configuration for BA https://github.com/eronoobos/Balanced-A ... hard-LuaAI
root configuration for BAR https://github.com/eronoobos/BAR-Shard-LuaAI

I assume this is related to the above but I am unsure
THE submodule (?) configuration for BA and BAR https://github.com/eronoobos/BABAR-The-Shardifant

This is the BA game itself, it seems they took the Shard fork and bundled it
BAR repo http://imolarpg.dyndns.org/trac/balatest/
BA repo https://github.com/Balanced-Annihilatio ... nihilation




I tried to make efforts to make the lua component of Official Shard more portable, so that the lua files could be lifted out of the native AI and ran as a Spring LuaAI. I added an abstraction layer to do this, I even added a Null layer so it could run on the command line for testing purposes ( Travis CI build tests, though those aren't running currently ). This creates a logical separation between the AI and the C++ part.

For maximum efficiency moving the AI out into a new repo would make development much easier, as well as automation, but an effective solution is not available, and existing solutions have all been blocked and actively worked against by the Spring developers

At the moment I consider the Lua part of Shard a project in its own right, and a dependency of the native C++ AI


The Shard LuaAI Fork?

There's a lot of stuff inside it that isn't built quite the way I had in mind. I had a behaviour and module system, but instead the behaviours in the BAR AI are monolithic in nature, and manage their own behaviour internally rather than using the provided system. This means it's not possible to lift and drop the code out of BAR into other AIs, and it's tightly coupled to BAR and the codebase in ways that are unnecessary.

There are also cases of using the Spring API directly rather than using the Shard API. If the Shard API had been used and fully implemented for that environment, then all the other games would be supported, and a single version could be worked on.

For those things that the native AI don't support, I would rather that they be added in lua, and the native AI implementation return dummy values on the lua side to indicate it's not yet supported so that a C++ recompile isn't necessary

I was hoping all this stuff could be backported into Shard, and the LuaAI API implementation could be finished
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

AF wrote:Finally, the other repos haven't anything to do with me and the official project, they're independent efforts


A fork of Shard that uses LuaAI instead of the native AI interface so it can be embedded in games shardLua version https://github.com/eronoobos/ShardSpringLua
Yes, this is the version that i use for develop the shardLuaAI with eronoobos, but I did not know that you was not involved in this project.
I know, however, that this version is performance, also allows you to use some APIs of widgets or gadgets of Spring; example:
Spring.GetGroundHeight (x, z). I don't know if this is possible with the original interface.
AF wrote:I tried to make efforts to make the lua component of Official Shard more portable, so that the lua files could be lifted out of the native AI and ran as a Spring LuaAI. I added an abstraction layer to do this, I even added a Null layer so it could run on the command line for testing purposes ( Travis CI build tests, though those aren't running currently ). This creates a logical separation between the AI and the C++ part.

For maximum efficiency moving the AI out into a new repo would make development much easier, as well as automation, but an effective solution is not available, and existing solutions have all been blocked and actively worked against by the Spring developers
So this go in the direction of a official ShardLuaAI and will replace in the future the one created by eronoobos?
What is the problem that block you in this direction and who can solve it?
Can i help in some way?
I'm sure that, if a core dev active block you there are a reason, but I'm also sure that a solution is available.

Finally, I want to make an inquiry, who can actively lock or unlock this small hitch, for us, small contributors of this great project. It does what is in your power, or tell us how to do it, we do not want fame or glory, but just be part of something bigger, but to do this we need you.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

We disagreed over how the project should be structured with prevented even attempting a solution. But that's been gone over many times

Particularly, the Shard APIs have a Spring LuaAI version, but it's implementation isn't finished, the functions mostly return dummy values rather than actually doing anything. Filling these in should make Shard work without requiring native Spring calls to be placed all over the place. Any AI would then work regardless of how the AI was loaded
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

AF wrote:Particularly, the Shard APIs have a Spring LuaAI version, but it's implementation isn't finished, the functions mostly return dummy values rather than actually doing anything. Filling these in should make Shard work without requiring native Spring calls to be placed all over the place.
If this work is start and not finish, maybe i can help to finish him!
Can you give me instructions and the link with the work already done? maybe i can continue in this direction(maybe)! maybe this can help to unlock the situation
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

AF wrote:We disagreed over how the project should be structured with prevented even attempting a solution. But that's been gone over many times
No one can accept a compromise?
Or, there is a road, maybe longer or difficult, which can be traveled?
Who are the people primarily involved in this controversy?
If I were technically well prepared to deal with the technical problems I would offer me as a mediator, but are not ready to support such complicated topics.
But I would like that the problem was solved. It seems to me that Shard interface is particularly simple powerful and flexible. I do not think abandoning it to itself is an excellent choice for the spring of developers; unless they have not some other equally good option to be presented shortly.
Maybe they do not care anything about what we're talking about. Or you have already spent so much on the subject as not to merit another.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

My ideal situation would be 3 repos on GitHub:

- Shard Spring C++ Loader - a native C++ AI that loads the Shard AI
- Shard Spring LuaAI Loader - a Spring LuaAI that lives in a game archive that loads the Shard AI
- Shard AI - An AI written in Lua

But there is opposition to git submodules, and I haven't the knowledge to devise an alternative that would allow the above separation. Perhaps if there was a way to have them be folders in a single repository, but I am unsure how I could make that still work with the Spring Engines build system
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

The Lua AI implementation is at:

https://github.com/tomjn/Shard/tree/mas ... spring_lua

It's incomplete at the moment
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: ShardLua games configurations dev

Post by abma »

AF wrote:So first things first, I renamed my GitHub account from tarendai to tomjn, but this broke a few things,
exactly because of such changes the "efforts" were "blocked". suggested solutions how to solve it in an better way were ignored.

https://github.com/tomjn/Shard/issues/109

the renames/removals of git repositories lead to errors like this:

viewtopic.php?f=11&t=35903

also ALL automatic builds were randomly broken due to removals / renames of git repositories. This is why Shard is cloned to https://github.com/spring/Shard as all other submodules required to compile the spring engine.

AF seems to not understand whats the problem with renaming/removing repositories which are used as submodules.

in short: i warned about possible problems with git submodules, AF ignored it and we changed to git submodules, the problems arrived and nobody cared about it in a timely manner -> submodules were reverted.

So it was not blocked, it was reverted because of unsolved problems.
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

abma wrote: suggested solutions how to solve it in an better way were ignored.
abma wrote:So it was not blocked, it was reverted because of unsolved problems.
Well, very well...
Happy to see your interest abma, though I don't know what are the steps to fix your issues, at least I understand that not all is loosed!
Now the next step is get a road map to get a ShardLuaAI working framework.
To do this is absolutely necessary the convergence between spring engine devs need and Shard related devs need; this before someone starting to do something.
Someone have a vague idea about a "Shared ShardLua Road map" ?
Where for "Shared" i intend that one engine dev like for example "abma" declare some inexorably points; and a ShardLua dev like for example "AF" declare some inexorably points; And then, with a logical derivation, emerge a road map that sound like ( A and B ) then (c).

As an aside, even though this post is voluntarily written in a stupid way, it does not want to be an offense to any of the people to whom it is addressed; I'm just a fan of simplicity, happiness, and other things that do not really matter now.
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: ShardLua games configurations dev

Post by abma »

Someone have a vague idea about a "Shared ShardLua Road map" ?
make shard load the lua ai from an archive file or directly the game archive. thats imo the best solution:

- no git submodules required
- can be updated independently
- is only downloaded when needed
- ...
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

also ALL automatic builds were randomly broken due to removals / renames of git repositories. This is why Shard is cloned to https://github.com/spring/Shard as all other submodules required to compile the spring engine.
I'm fine with having a separate repository that I can PR against, it improves release management. I'm surprised you didn't do it from the start. But keep in mind I created a new user under my old alias and mirrored the repo so builds would work again.

All you had to do was have the following conversation with me:
Abma: Hey AF, did you move your repos? Our builds broke
AF: Oh bugger, sorry about that, I moved stuff and forgot about that, let me create a mirror at the old URL
Abma: Thanks
No need for fireworks and outrage
AF seems to not understand whats the problem with renaming/removing repositories which are used as submodules.
I was actually trying to secure the tomjn alias on GitHub and forgot I had submodules with Spring, at the time I thought it was a copy of shard being used. My mistake, but no need to be hostile about it
in short: i warned about possible problems with git submodules, AF ignored it and we changed to git submodules, the problems arrived and nobody cared about it in a timely manner -> submodules were reverted.

So it was not blocked, it was reverted because of unsolved problems.
The changes you opposed were never made... you never really demonstrated an understanding of the problem I was trying to solve or what the suggestion was, just a vehement unrelenting opposition to nested submodules and change. I'm more than open to alternatives, it doesn't have to be nested submodules at all, it was just the only solution I could think of at the time

Also keep in mind I have a full time job, and I'm not always at a computer. If you pop up and say the build is broken, I might be able to fix it. I might also be at a conference, about to board a 9 hour flight, or at a friends house or on a night out, far, far away from my computer. Immediately fixing something isn't always possible despite the best of intentions and priorities. Real life has a habit of throwing spanners in the works.

A lot of the time I have no way of knowing if the build fails either. I have zero interest in engine build failures, only Shard build failures, for the longest time I didn't know that Shard was even tested by buildbot for anything more than compile failures. I already have information overload of hundreds of notifications per day I need to pay attention to, and thousands I try to filter out, if you want me watching these things I need help not outrage. I've tried taking preventative steps, such as setting up Travis, as far as I'm aware there haven't been any build failures since then


Since you keep pulling this up, and since none of it is constructive, I propose the following:

- Shut up about this, we're just rehashing stuff that's already been said and it's wasting time, and sapping energy out of things. It's already driven off a contributor
- If you're going to involve yourself in Shard discussions, be constructive. Outrage and grudges aren't helpful to the spring community, nevermind Shard
- Think of a better way to solve the shared dependency problem, I was never a fan of nested submodules but you wouldn't even acknowledge there was a problem

I'm sure there's drama elsewhere you can entertain yourself with if you're bored
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

abma wrote:
Someone have a vague idea about a "Shared ShardLua Road map" ?
make shard load the lua ai from an archive file or directly the game archive. thats imo the best solution:

- no git submodules required
- can be updated independently
- is only downloaded when needed
- ...
There are no VFS APIs for the AI interface Shard uses, so this is a no-go for the native AI
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

Well, very well...
Happy to see your interest abma, though I don't know what are the steps to fix your issues, at least I understand that not all is loosed!
Now the next step is get a road map to get a ShardLuaAI working framework.
To do this is absolutely necessary the convergence between spring engine devs need and Shard related devs need; this before someone starting to do something.
Someone have a vague idea about a "Shared ShardLua Road map" ?
Where for "Shared" i intend that one engine dev like for example "abma" declare some inexorably points; and a ShardLua dev like for example "AF" declare some inexorably points; And then, with a logical derivation, emerge a road map that sound like ( A and B ) then (c).

As an aside, even though this post is voluntarily written in a stupid way, it does not want to be an offense to any of the people to whom it is addressed; I'm just a fan of simplicity, happiness, and other things that do not really matter now.
Shard needs a loader gadget, written in lua, that figures out which players need to be controlled by a Shard AI, creates those Shard AIs, and passes events to them

Here's an example:

https://github.com/ZeroK-RTS/Zero-K/blo ... ai_CAI.lua

most Lua AIs mix in some AI logic in there too, but Shard is self contained so the gadget literally just needs to figure out which players are Shard, and which aren't, create Shard AIs for each, and pass events to them

Spring engine devs aren't necessary here for this, nor is their cooperation needed as it's a pure lua venture. They appear to be confused between ShardNative and ShardLua, and don't distinguish them as separate efforts.
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

AF wrote:Shard needs a loader gadget, written in lua, that figures out which players need to be controlled by a Shard AI, creates those Shard AIs, and passes events to them
Can this gadget be put inside the game itself? in this manner no submodules is needed! And Abma can be satisfied!
A shardLua developer should only be provided with the gadget and instructions on how to insert it into the game where it wants to write the configuration.

it is a solution?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Re: ShardLua games configurations dev

Post by AF »

It doesn't solve the duplicate code across multiple GitHub repos problem, but yes the gadget would need to go inside the game itself. I think the end goal is a shard.sdz that other games could depend on. That way they can include the game specific stuff themselves and depend on shard.sdz for the core stuff, or bundle it in if that's what they prefer
abma
Spring Developer
Posts: 3798
Joined: 01 Jun 2009, 00:08

Re: ShardLua games configurations dev

Post by abma »

AF wrote:Also keep in mind I have a full time job, and I'm not always at a computer
stop moaning, i have a full-time job, too.
AF wrote:There are no VFS APIs for the AI interface Shard uses, so this is a no-go for the native AI
implement them and don't waste time on bad workarounds.

my conclusion of this is to listen less to others and enforce more my opinion, basicly to be more consequent. So sorry, my mistake i should have never allowed to use a repository outside of the "spring organization" at github.
User avatar
prandipadaro
Posts: 98
Joined: 19 Oct 2011, 22:38

Re: ShardLua games configurations dev

Post by prandipadaro »

The fact that you(both) warm up so much shows that you basically keep both of them in Spring-shard's future. Take a good breath...
Peace
Post Reply

Return to “AI”