goto-bus-stop / recanalyst

Analyzes Age of Empires 2 recorded game files.
https://goto-bus-stop.github.io/recanalyst/doc/v4.2.0
GNU General Public License v3.0
76 stars 11 forks source link

Implement animated SVG (Scalable Vector Graphic) for mini map #47

Open yvan-burrie opened 7 years ago

yvan-burrie commented 7 years ago

Where do we start?

goto-bus-stop commented 7 years ago

This sounds good, but what would be animated?

yvan-burrie commented 7 years ago

There are plenty of ideas. The power of SVG at its best could allow a highly dynamic mini map: zoomability, names of units on mouse-over dots, display/hide certain units via options, or military excerpts. As for animation: a fast preview of the record, flares or squares from unit creation, movement of units within a time frame, or even missile units shooting. There could also be statistical views showing the concentration of dead units or battle threshold.

happyleavesaoc commented 7 years ago

@yvan-burrie two facts will hinder this.

1) Actions are inputs, not outputs. I can spam "Attack" with archers, but that doesn't mean they fire an arrow. I could be targeting something on the other side of the map. 2) Building and unit IDs can't be identified. We can know that I requested to train an archer. We don't know which building it was from. We know I moved a unit. We don't know what sort of unit that was.

I explored an animated heatmap overlay with the Spec Dashboard. You can grab coordinates from the various actions. This will tell you where players are focused, so you can see the ebb and flow of battles and the spread of eco. It works pretty well if you weight the actions influence on heatmap intensity.

yvan-burrie commented 7 years ago

So this means that the only way to fully grasp everything that was recorded would require simulating the entire game?

goto-bus-stop commented 7 years ago

So this means that the only way to fully grasp everything that was recorded would require simulating the entire game?

yeah.

yvan-burrie commented 7 years ago

That's exactly what I'm currently making; a simulator that fulfills the purpose of reading or writing Genie Engine files using the same object-model architecture of the EXE :)