Topic: a big thank you and some suggestions
Tibor |
Posted at: 2017-04-11, 13:46
soulless, few comments to your comments. Lumberjacts has a "target" (number of sites) that are never dismantled for security reasons. Yes in a corner case all sites can be placed in infertile areas.
Yes, it might dismantle all lumberjacks and rangers in radius x, but consider: What if these will be all rangers+lumberjacs the player has? This is in confilict with target 'policy', but also what if AI will have no building material to build new ones? Or if new ones will be build in the same territory? By my opinion, the land quality should be considered mainly when placing ranges/foresters, but the infor is not available. As for seafaring, it is even worse. AI is not capable to operate on two / more seas, it builds one shipyard only and presumes that all waters are interconnected. What if AI dont see how far the sea goes and have no idea whether this one is good for seafaring? Should it cheat (it can)? It would need (eventually) a logic to gave up on current sea and start building fleet on another one. Seafaring is completely ommited from genetic algorithm being developed, so there is really a place for improvement, would be merged to trunk directly, and it is now even in separate file. AI tries to build shipyard ASAP, just in case it is short of good spots, so checking/waiting for producers could interfere here, and could backfire.... But if somebody is willing to take care of this.... Generally, corner cases are just corner cases, AI will never cope with them well. Top Quote |
soulless Topic Opener |
Posted at: 2017-04-11, 14:15
Yes, that would be the best solution. But ok, if the info is not available that is a problem. I thought there was something like "getGroundNearby" and you can say don't build foresters if groundNearby is only desert and mountains.
I generally think that the ai is not that bad. If there is a small map with all resources available like "Crater" the ai performs good. The problems I see are bigger maps and difficult starting positions where not every resource is available soon. But I think I need to first learn c++ and work a little with the code to give any help on this. Unfortunately there is not enough time to do interesting things like this. But I will check out ai-post-b19-2 cause I am interested in your genetic algorithm being developed. Top Quote |
Tibor |
Posted at: 2017-04-11, 14:21
You know, I am not against new ideas, but they usually takes more time to implement and test than it seems initially and means commitment. I am doing a lot of changes to that genetic algorithm branch so changes between commits are quite big and in both directions. So if the commit is more than 2 days old it does not reflect actuall status in my PC. Top Quote |
king_of_nowhere |
Posted at: 2017-04-12, 23:38
about the attack messages: maybe once a building give attack message it should disable all other attack messages in a radius of 8 tiles concerning the same soldiers. that would avoid one single soldier getting reported with a dozen different attack messages from all your buildings. but it seems difficult to code. Top Quote |
WorldSavior |
Posted at: 2017-04-17, 19:16
Good idea
Yes, I know. Being attacked without getting a message is horrible...
... so I think that there should be no interval at all.
I haven't thought much about the origin of the "8" in your suggestion, but it sounds like a good idea Wanted to save the world, then I got widetracked Top Quote |
GunChleoc |
Posted at: 2017-04-19, 18:55
I don't know that part of the code well enough to tell if "the same soldiers" is implemented easily, if not, we might add a short time interval to the radius that blocks additional messages - maybe 15 seconds game time? Bug for highlighting on the minimap: https://bugs.launchpad.net/widelands/+bug/1684227 Port spaces/patrol mode: https://bugs.launchpad.net/widelands/+bug/1684228 Edited: 2017-04-19, 18:58
Busy indexing nil values Top Quote |
Nordfriese |
Posted at: 2017-04-20, 12:20
Perhaps the attack messages should include information about which player is attacking, e.g "Player 2 is attacking your sentry". I´m in favour of disabling attack messages for all soldiers of the attacking player in a radius of about 8 tiles (or perhaps a bit more than 8, since multiple attacks should be expected) for as long as the attacker has at least 1 soldier there. If another player attacks the same buildings at the same time, then this should be worth another message. Disabling the messages only for the same soldiers would mean another message every time the enemy sends reinforcements – which, in my experience, happens very often and would not significantly reduce the number of sent messages. I´m not sure how easy it would be to implement player-specific attack messages, though. Top Quote |
king_of_nowhere |
Posted at: 2017-04-20, 19:10
I am proposing an 8 corner radius to disable messages because that radius easily fit into a screen, so you can see all threatened buildings. and yes, disabling messages by player is better than by soldier, and probably easier to do too. the important thing is that attention is brought to the threatened area, but without flooding with messages that may cover other, secondary attacks. Top Quote |
GunChleoc |
Posted at: 2017-04-21, 09:23
Bug time: https://bugs.launchpad.net/widelands/+bug/1685114 Busy indexing nil values Top Quote |