Single Player

Single Player

Discuss Lua based Spring scripts (LuaUI widgets, mission scripts, gaia scripts, mod-rules scripts, scripted keybindings, etc...)

Moderator: Moderators

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

Single Player

Post by AF »

Right now there's an underlying theme among plans for spring 0.75, that skirmish AIs can handle everything new but they're not going to because they're designed for OTA game mechanics.

This is horse sh*t.

I made the second working skirmish AI, I've spoken with, worked with, and read through the code of the other developers. I'm the longest running active AI programmer in this community, and enver have I been more apalled or insulted by this attitude.

Modders seem to ahve no qualm with taking a grenade, pulling the pin, and obliterating their single player support in one foul swoop. Custom game economics, putting unit morphing as a critical part of game mechanics, intense reliance on ammo resupplies.

You're all underestimating single player, and your all udnerestimating the AIs. I could code a few tweaks that would allow people who sued lua mechanics to use them in toolkit, btu I cant ebcause there's no way for NTai to use these things even if ti was specially designed from the ground up to use just those features.

Its impossible for an AI to use units morphing via lua, not because the AI cant handle that sor tog gameplay, but because the AI cannot do it. Its like being told to type without using any part of your body to do it, including telling somebody else todo it. There's no CMD_MORPH command for AIs, there's no AICallback::Morph(unitid); there's not even a simple way of telling a lua widget "hello" or even passing ones and zeros.

This community is NOT a multiplayer only community. Single player is not a niche to be played around with. Removing singleplayer can hugely damage your mods popularity, and is one of the underlying causes of the lack of popularity non TA mods have. Nanoblobz for example is played in the lobby every few months for half an hour, the rest fo the time its offline tests by new players. This is how people usually test mods, they start an AI game and see how it plays. If you neglect AI, you're taking a sledge hammer to your game.

We're in a genre of gaming were most battles involve skirmish AIs offline. The reason we have so many noobs in the lobby as we do is because there's no clear path to singleplayer for them, and most green battles are locked and private, people playing singleplayer games with AIs.

Right now showing player flags in a lua script and fancy graphics, is a higher priority than an AI community and a skirmish AI. I sincerely hope this changes. I do not have the encessary tools or knowledge to patch this myself. I am not the only person in this community, and this issue is too large to simply ignore. You cant justify dealing huge blows to spring by saying "go learn yourself you lazy b*stard, waiting for other people to do your work for you".
User avatar
Ishach
Posts: 1670
Joined: 02 May 2006, 06:44

Post by Ishach »

yeh
tombom
Posts: 1933
Joined: 18 Dec 2005, 20:21

Post by tombom »

Make your AI more customisable maybe. A game like Spring which is mainly multiplayer shouldn't have additional features cut out just because your AI can't handle them well enough.
User avatar
1v0ry_k1ng
Posts: 4656
Joined: 10 Mar 2006, 10:24

Post by 1v0ry_k1ng »

the AI is as customisable as AIs get.
adding LUA base features pwns the AI, just makes one wonder if there is another way to do it. Personally I like to practice vs a few AIs before coming online.
User avatar
Neddie
Community Lead
Posts: 9406
Joined: 10 Apr 2006, 05:05

Post by Neddie »

tombom wrote:Make your AI more customisable maybe. A game like Spring which is mainly multiplayer shouldn't have additional features cut out just because your AI can't handle them well enough.
I think the point here is that LUA features have no interface with Skirmish AI, and we either need to patch for that, or not expect both to work.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

Well, there's no doubt that AF is capable of making a patch to fix his complaints, rather than complaining about how volunteer devs spend their free time.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Lordmatt, tombom, pelase read the post again very carefully.

AIs are fine with lua. The problem is not that they arent customizable. We have the most customizable AIs in the entire RTS genre save for scripted AIs.

The problem is that there's no way of an AI and a lua feature to communicate.

Its fine that you've just wrote a lua script that allows units to transform, but how do we let the AI do this? We could always just send a message to lua from the AI asking todo it for us, oh wait we cant do that. Well we could set up a pool of strings which lua would read and then interpret as the message oh wait we cant do that.

And again, I am not writting a patch for this for the following reasons:

- I am unable to compile spring in mingw32 atm
- My mingw32 debugger doesnt work either
- I have no svn client atm
- Visual studio 2005 builds of spring refuse to work with any AIs and usually crash anyway
- Ubuntu doesnt like my usb wifi, and my PC doesnt have a pcmia slot for the one it does like
- My laptop with ubuntu cant run spring bcause it has a 2MB gfx card and a 440Mhz cpu
- NTai development
- AFLobby development
- A Maths coursework about vectors and matrixes
- A Software engineering coursework I have yet to start due in two weeks
- A Computer architecture exam a week today
- A Computer games enginering exam 2 weeks today
- I dont know enough about lua programming
- I dont know how trepan has bound lua to spring very well
- I dont understand the code that sits between the lua API and trepans widget system
- I understand even less about the code between the API and the mod rules system.
- Trepan is always hostile towards me so I cant ask him for help anyway.
- The lua API internals are constantly changing as trepan commits more and more stuff.

I have neither the time nor the resources todo this at the moment. Maybe in 2 months when I've managed to strike out the above list I can start writting patches but not now.
User avatar
Zenka
Posts: 1235
Joined: 05 Oct 2005, 15:29

Post by Zenka »

Indeed the AI devs are not as praised as they should.
I for instance was noob in a time the AI couldn't do much more then getting a +10 metal in an hour, and that was because they DT's them self in.*
Look at the AI now, we have full glory AI who gives a goof fight. who poses all aspects of the games and learn from their mistakes.

We should not go to much forward with one thing when the rest isn't able to keep up. The AI devs ask for an AI interface for LAU. I surly hope someone can give them that. We should not lose their efforts.

If someone thinks Alantai yells around, I will tell you it's highly necessarily to get anything going around here.

O hail Alantai!

'about your long list of reason you cannot make a patch yourself. you could just go for: I'm busy with tons of stuff and so are the devs. And I don't understand springs' LUA code good enough. it's more suptle, and I think you made you're point already :)

*this is not true of course, but the AI were very young
tombom
Posts: 1933
Joined: 18 Dec 2005, 20:21

Post by tombom »

AF wrote:The problem is that there's no way of an AI and a lua feature to communicate.

Its fine that you've just wrote a lua script that allows units to transform, but how do we let the AI do this? We could always just send a message to lua from the AI asking todo it for us, oh wait we cant do that. Well we could set up a pool of strings which lua would read and then interpret as the message oh wait we cant do that.
Yeah basically I was thinking that you could do that from some customised AI config or something but I'd forgotten that you couldn't actually access LUA from the AI interface. Sorry if I came over as a dick.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Something like

void IAICallback::SendLua(const char* c);

Which would send a string, would be enough. This way I can add a new keyword to toolkit which allows modders to tell NTai to send a string to lua when it reaches that keyword, and then the modder could change whatever needs changing lua side to respond to that string.

Single player is Core gameplay, yet it is considered a low or even a none priority. This is of HUGE relevance. A missing function which could possibly take 20 lines of code, not being implemented in v0.75, could make 100,000+ lines of code obsolete and useless. It could demotivate some AI makers so badly that they simply give up, something we cant afford right now.



What some people hail as the crowning glory of the next spring release is what has the potential to drive away the biggest number of users and alienate an entire sub community who have collectively given thousands of hours of free time and effort over several years.

AI makers put masses of effort into their creations, they're generally undervalued, and their AIs underestimated and unappreciated. Single player is an immense part of this genre, you cant ignore it.
User avatar
KDR_11k
Game Developer
Posts: 8293
Joined: 25 Jun 2006, 08:44

Post by KDR_11k »

Sorry but for my current project if I were to remove the scripted rules the most important gameplay aspects would be lost and the whole thing would be pointless.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I am not asking the modder to remove the scripts, I'm asking for the engine to let AIs interact with them

KDR, what you think I'm saying and what I am actually saying are so far apart you'd need warp drive to get from one to the other.

The mod doesnt need changing, its fine
The AI doesnt need changign its fine
But the engine does let the two talk together, it does need changing, it is not fine, and its a big thing, and its not being taken seriously.

This is the sort of thing entire spring releases where dedicated back in the days when the SYs where the projct leads before SJ left. There were several releases that served no purpose but to fix the AI interface which was broken in a new release earlier that day.

Fnordia and SJ had no prior warning and went to work immediatly and re-released. Here we are and we've currently used up several months of prewarning with the only answer being do it yourself it isnt a priority. This is not acceptable.

I am confident that whatever needs to be done wont take longer than an hour, and that more complex additions have been made that do trivial things which we can argue are graphical gimmicks.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Sounds like a junior job then, someone make a patch?

I don't think it's *that* bad, even if 0.75 doesn't have this the possibly b2 has it. It's not that *poof* once 0.75 is released suddenly all mods need LUA for like all their gameplay mechanics.

(For example there are still only 3 single player missions (for NOTA by Thor) on UF while it has been possible to make them for quite a few releases. This suggests modders either lack time/skill, or aren't interested in SP. I'd guess the first though.)

And I guess you're right yeah that rts/ExternalAI doesn't really have a maintainer at this moment, so I guess someone should step up?
Last edited by Tobi on 26 Apr 2007, 22:21, edited 2 times in total.
User avatar
KDR_11k
Game Developer
Posts: 8293
Joined: 25 Jun 2006, 08:44

Post by KDR_11k »

well, you said it like the modders are hurting the AIs and the only thing modders do is implement the gameplay.
User avatar
Forboding Angel
Evolution RTS Developer
Posts: 14673
Joined: 17 Nov 2005, 02:43

Post by Forboding Angel »

Tobi, I have yet to see any clear AND decisive info on how to make scripted missions. And I spent a good deal of time looking as well.


@ kdr... No he didn't. His point was crystal clear the entire way through. Read it again, and this time don't skim over it.
User avatar
Snipawolf
Posts: 4357
Joined: 12 Dec 2005, 01:49

Post by Snipawolf »

Huhm, not a big dilema for now, but could cause quite a lot of havok in a few months time.... If spring is still alive by the time I get to summer break and buy the C++ learning book I want, I'll make the patch if no one else will :wink:
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

trepan has made a commit which seems to address this somewhat, however the commit also says that the AI interface additions dont have an implementation.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Forboding Angel wrote:Tobi, I have yet to see any clear AND decisive info on how to make scripted missions. And I spent a good deal of time looking as well.
http://spring.clan-sy.com/wiki/Mission_development

But yeah we need documentation writers too, since basically nothing is documented properly IMHO. (Well maybe some stuff that hasnt changed for years has crystalized out on the wiki.)
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Missions are a problem as there's no real itnerface to bind them all together, and you have to take time lots of time scripting them nd planning....
User avatar
Zenka
Posts: 1235
Joined: 05 Oct 2005, 15:29

Post by Zenka »

If I had time I would love to get into missions. I tried swiftly once. I was able to, well, get a chosen map and mod going on.
The is quite little documentation, but there is enough for a goro to figure out a mission and write nice documentation from the mission maker's point of view. Sma ehtings have happend for map, unit and mod making.

Sadly, I lack the time now. as always.

ps: I just say, there are people very interested in single player missions.
Post Reply

Return to “Lua Scripts”