http://www.aiwisdom.com/ai_genrerts.htmlArminea wrote:This will be probably a stupid question, but what other goal (except a pathfinding and creating multi agent system) could I possibly have?
Full articles appearently not readable but the titles+descriptions are alone give some ideas.
The AI-interfaces use the same terminology as used in game modding. People are only able to write AIs relatively quick when they previously spent years slowly getting familiar with "spring stuff."Arminea wrote:How hard is it? Do I need to know how to develop simple games in Spring or it is possible to program without this knowledge?
Many questions in AI forum are more related to modding (or playing) than about AI. (the rest of dicussion is about bugs*)
I think without some knowledge in spring game modding it is impossible to make an AI.
Questions look trivial but then suddendly without knowing about "spring stuff" or "tricks" of the game are hard to answer.
In this thread someone wants his AI to check if a unit produces resouces. Seems simple enough?
viewtopic.php?f=15&t=32732#p563016
Deciding whether a unit is 'factory', also not as easy:
viewtopic.php?f=15&t=32157#p558064
That is simple examples, hope the idea is clear.
IMO there are only 2 games worth considering for AI:Can I choose any game from Games section or is someone better for my goals?
1) Kernel Panic
+ simple eco
+ few, simple types of units
+ predictable, reproduceable outcome when units fight.
- It has a "few issues" when used with current engine version. (98.0)
viewtopic.php?f=43&t=33512#p569854
It is not actively played: it would be up to you to find out how much those issues matter or not.
Using old engine (95.0) is imo not an option because it is 2 years old and there have been bugfixes to AI interfaces.*
2) Balanced Annhilation
+ known to work, because played regularly
+ uses current stable engine
+ gameplay balance stays fixed
- "spring stuff" needed
- when units fight the outcome is influenced by lots of mechanics/physics: which way a turret is turning, projectiles can miss, splash damage, units can heal others, etc.
This influence of many small factors makes it somewhat unpredictable.
Every other game you would not just be AI developer but also a beta tester for the game. Or the game is too complex. (Techa Annihaltion)
3) zero-K (because others mentioned it)
- similiar to BA but even more complex
- uses testversions of engine
- much game-side scripting that is hard for the AI to 'understand', another barrier
After BA it is the second "big" game but if you have no preference either way then for AI imo BA is simpler.
Of all games you can relatively easy make your own version.
For example to remove all the base-building disable the spawning of the builder units, by commenting out one line:
https://github.com/spring/spring/blob/d ... wn.lua#L68
--Spring.CreateUnit(startUnit, x, y, z, facing, teamID)
With the startUnit constructor removed, players/AIs have no way to build stuff.
(Imagine Age of Empires but you start without towncenter, without peasant)
Instead spawn some dozen military units:
for i=1,12 do
Spring.CreateUnit("name of some tank", x+(i*20), y, z, facing, teamID)
end
and you have simple deathmatch, without building.
Seems cumbersome, and it is, but modifying BA in such way is imo still the best way.
* On AI-interface bugfixes see threads such as: "Java AI Interface broken?"
viewtopic.php?f=15&t=27471
A bug that was "fixed for the second time", and then from this comment it does not seem so robust still:
https://github.com/spring/spring/commit ... nt-6834063
Another thread about bugs:
viewtopic.php?f=15&t=32468
What happens if bug is in your AI: viewtopic.php?f=15&t=32439
tl;dr:
I would not be willing to bet something important like school/uni projects or grades on it, because of the many traps.