robocode-dev / tank-royale

Git repository for Robocode Tank Royale
Apache License 2.0
122 stars 23 forks source link

Getting results at round end #46

Closed SirStone closed 1 year ago

SirStone commented 1 year ago

Is your feature request related to a problem? Please describe. At the moment the results are provided at the end of the battle, I think that would be very useful to have the (partial) results provided at the end of each round

flemming-n-larsen commented 1 year ago

@SirStone: The results should be available with each round, obviously. But should we also extend the GUI to represent the results per round? With the original Robocode, the current state/results can be shown per turn (with a separate and optional view), which is automatically updated while the battle is going on.

We could add partial/current results per turn. But it will need more data to be transferred per turn. Perhaps we only need the result per round, and perhaps per turn for observers only? I don't think it will be very useful per round and/or turn for each bot? So I guess we should stick to providing partial results per round and perhaps per turn.

SirStone commented 1 year ago

Sorry for the delay, I'm temporary working on a new automated backup system at my house, asap it is up and running correctly I'm going back to implementing the botApi in nim. I can't wait to put it in test re-creating some of the basic bots with it.

My 2cents: I would not enable the partial results per turn, that would be a lot of data to transfer extra on top of what is transferred now as you stated and I can't think at any important matter that would justify this overhead of data; I would prefer to leave this to the single bot programmers, in case they want or need to keep track turn by turn, to program by themsleves scores based on the bot's gathered activities, this will help them to understand what when and how a score is builded up in time also. What I think is important to enable are the results at the end of the round, this in a machine-learning persepctive could represent the episodes scores, instead of making episodes out of a full game. Both bots and Observers should receive these round scores.

flemming-n-larsen commented 1 year ago

Sorry for the delay, I'm temporary working on a new automated backup system at my house, asap it is up and running correctly I'm going back to implementing the botApi in nim. I can't wait to put it in test re-creating some of the basic bots with it.

My 2cents: I would not enable the partial results per turn, that would be a lot of data to transfer extra on top of what is transferred now as you stated and I can't think at any important matter that would justify this overhead of data; I would prefer to leave this to the single bot programmers, in case they want or need to keep track turn by turn, to program by themsleves scores based on the bot's gathered activities, this will help them to understand what when and how a score is builded up in time also. What I think is important to enable are the results at the end of the round, this in a machine-learning persepctive could represent the episodes scores, instead of making episodes out of a full game. Both bots and Observers should receive these round scores.

Thank you for the feedback, and I hope you did well with the automated back system in your house. :)

I will make sure to add the results per round for the Bot API. Then we can always extend it later if we e.g. want to show the progress in the battles for the observers per turn. But that will need GUI updates as well etc.

flemming-n-larsen commented 1 year ago

This has now been implemented with the release of 0.19.0: https://github.com/robocode-dev/tank-royale/releases/tag/v0.19.0