Season 38 Round 36 / 60
Game Time 2024 Jun 16, 18:25 UTC(+00:00)
Suggestion: Adding visual to the Match Viewer
Engin Demir
2023-07-07 15:38
Greetings,

While reading the Match Viewer, I often wonder, "Where is this happening on the field?" I often find my forward players stopping the opponent's attacks. Did they come back to help the defense, or did they pressure the opponent on their field?

I have an idea that can add a little extra to the Match viewer.



I made pictures for three examples. The home team is green, and the away team is blue, just like the text. In the first picture, the home team is doing the action on the left midfield, and maybe that player will cross, and the action will shift to the FR section. In the 3rd picture, the away team has the ball close to the home team's goal.

I noticed the game already has a way to display things like throw-ins or free kicks. So if the game engine has a way to determine the location of the event, implementing should be fairly easy.
Fathima
2023-07-07 16:36
Good suggestion.
I remember Tegimus saying before that the match engine had all the data to create a 2d replay of the game, but they were not doing it because of the huge amount of data that needs to be saved for each match to make that possible. But this suggestion should need just a small extra information to be saved, which is position of the ball
Tegimus
2023-07-08 08:16
This is a good suggestion.

As Fathima already indicated, the match simulator has the data to do this. However, implementing this requires some major changes to how the match results are being stored in the database. Besides that, we are already working on updating some parts of the logic in the simulator to improve it's accuracy. So we can consider this improvement when we release the next update to our match simulator.

Thank you for the suggestion. We would actually love to include a proper 2d match replay but with the current resources we won't be able to do that. This suggestion will definitely make the replays more exciting and intuitive though.
Engin Demir
2023-07-08 13:37
I'm glad you liked the idea.

If I understood correctly, the simulator has and uses the position data during the simulation of the events, but does not store it in the match results. That's indeed a challenge. Good luck!
uLtRaSpYnAlL
2023-07-15 15:14
Also if you can, to put a sound when the goal is scored.
Guildmaster Chax
2023-07-17 13:30
Tegimus wrote :
This is a good suggestion.

As Fathima already indicated, the match simulator has the data to do this. However, implementing this requires some major changes to how the match results are being stored in the database. Besides that, we are already working on updating some parts of the logic in the simulator to improve it's accuracy. So we can consider this improvement when we release the next update to our match simulator.

Thank you for the suggestion. We would actually love to include a proper 2d match replay but with the current resources we won't be able to do that. This suggestion will definitely make the replays more exciting and intuitive though.


why not just create a separate 2d viewer for now? possibly on a separate server (or at least the viewer not being loaded automatically during match time).

while some of us actually enjoy the replay. not everyone is actually viewing this. so people can just copy/paste their own match link (or export match data) into this so called "viewer" on their own.

at the very least, it won't clog the server if done this way.
Marius
2023-07-17 18:53
Guildmaster Chax wrote :
why not just create a separate 2d viewer for now? possibly on a separate server (or at least the viewer not being loaded automatically during match time).
while some of us actually enjoy the replay. not everyone is actually viewing this. so people can just copy/paste their own match link (or export match data) into this so called "viewer" on their own.
at the very least, it won't clog the server if done this way.

This sounds like a great idea, even as a paid feature (maybe independent from the membership option, like Viewer Pack)
Tegimus
2023-07-18 04:18
Guildmaster Chax wrote :
why not just create a separate 2d viewer for now? possibly on a separate server (or at least the viewer not being loaded automatically during match time).

while some of us actually enjoy the replay. not everyone is actually viewing this. so people can just copy/paste their own match link (or export match data) into this so called "viewer" on their own.

at the very least, it won't clog the server if done this way.

It is not the viewer which will be a problem. It is the sheer amount of data that needs to be stored for each match (think player positions, movement, action information etc. for each of the 22 players). It could easily be 20-30 times more data that needs to be saved for every minute of the match. Currently only the data needed for the commentary is stored and the rest is discarded after processing every minute. There is also the time required for writing to disk which could slow down the simulation as well.

But as you said, saving it to a separate server might be an option. Anyways this is not priority right now, but we can keep improving it step by step. Engin's suggestion might be a good idea to start with without too much overload. Does not mean that we can never have the 2D viewer, we can hopefully make it evolve over time and make the match viewer much better and more exciting in future.
Engin Demir
2023-07-18 18:35
Tegimus wrote :It is not the viewer which will be a problem. It is the sheer amount of data that needs to be stored for each match (think player positions, movement, action information etc. for each of the 22 players)


Depending on how your simulation engine works and your choice of data storage, you can implement a few tricks to minimize the load.

My favorite implementation is "scene by scene" storage. In that case, you don't store the entire match, but only important parts separated as "scenes". For example for my suggestion, you'd only need to store an array of 2: [attacking_side, Position].
In that case first picture: [0,11] .. meaning home team, LM Position.
2nd picture: [0,25] Home team, FR Position,
3rd picture: [1,23] Away team, FC Position.
For keeper, it would be [x,0]

I checked the match reports and there are max 40 cases you might need this. And that's it, the whole data you'd need, an extra 40*8=320 bytes per match to implement this example.

You also store 3 images: Field, Home arrow, and Away arrow.

Then client HTML takes care of positioning.

For more complicated viewings, I'd suggest using cases. For example, I've noticed that there are about 15 different attacks in this game. Again, you don't store the actual action but only the type of that attack as an array
action_Array(ID1, ID2, ID3, ID4, D1, D2, K1, typeID)
Where ID1-4 are the IDs of attacking players, D1-D2 defending players, K1 is the keeper and typeID is the type of attack (Winger crosses, freekick, cornerkick_farpost etc) and the client HTML uses this data to display the scene by pre-recorded animation engine.

Obviously, despite the huge data storage and speed efficiency advantage, this can get a little repetitive over time.