|
Hi,
My name is Andy an I'm currently working on a SC2 Map Analysis Tool for my Bachelor Thesis. It is supposed to parse replays and gather statistical information about each map. You can then look up these for each matchup and compare with other maps.
If there is an advanced map designer out there who would like to help develop such a tool I'd apprechiate that you contact me to talk about details. Most of all the calculation of parameters and the visualization are important.
Have a nice day,
Andy
|
Unfortunately bro, I think this is going to get closed since you are asking for help on homework which I think is something that this website frowns upon, and also there is not much substance in your post for discussion (also bad).
That said, hopefully I can point you in the right direction. Currently there is a tool "SC2 Gears" which helps to save/rename, organize, and draw statistics from replays. I believe this still works, although I haven't updated mine in a while.
There is also a Map Analyzer (use TL search) tool which up until patch 1.5+ helped mappers by generating images with a certain set of relevant map data.
If you look these up and ask in the proper threads, you might get a little further in your search to collaborate on your project and may get some ideas to help you understand what's already out there and what might be left that is still needed. (fix the map analyzer plz!) Good luck!
|
I vote for including a cluster analysis feature!
|
Thx very much for your reply Hypertonic. You might absolutely be right about the substance, sorry for that. My goal was to give as less information as I can because I'd like to have a little chat with advanced map developers without them being influenced by my ideas and progress thus far. Also I wanted to keep my post as short as possible to avoid tldr 
I've also already observed the two programms you mentioned. Mine aim to close the gap between those two. SC2 Gears is for players and Map Analyzer only analyzes the map itself. My programm is to analyze player behaviour through the replays and give detailed map statistics and information.
The help I am asking for is furthermore demanded by my prof as research. I am not asking for help to program, I need help to determine what parameters to use and how to visualize them so people could make use of such a tool.
and EatThePath, what is that cluster analysis feature you desire? 
more discussion is welcome 
ps: this tool will later be released online and could be of use to wide range of people, so I hope I'm in the right forum for suportig map development in SC2...
|
So, you're saying this tool needs to "understand" maps, in a way. And you want to talk to mapmakers to focus on the important aspects of maps that the program should consider? Like chokepoints, open areas, cliffs, air space, base locations, expansion pattern, xel naga tower placement... etc. ?? 
Cluster analysis is a way to analyse multi-dimensional data and look for patterns, which seems applicable here. The end user doesn't have to read the analysis itself, but it could be used graphically for that purpose if you wanted. It's kind of like doing a statistical correlation analysis but is based on an iterative algorithm that tries to group data points and keep improving until it's found the best grouping. Maybe the wikipedia will be of some help.
For example, if you simply integrated dimfish's map analyzer as is for data about a map, and combined it with data from a replay, you could get data like: every unit that died, what player it belonged to, where it died, at what time it died, what the openness of the terrain was where it died, how far from the nearest base, etc etc. Any number of things. Then you can see if this data groups by clusters (which could be in any dimension). By including some more interesting dimensions, you can find patterns you might not expect. So the unit death data would obviously cluster at certain points in time when battles take place, and also at certain map locations where battles took place. But it'd be interesting to see, does it also cluster around bases? Around towers? In open or narrow terrain, depending on race? Does it vary between maps?
It's a very powerful way to make sense of huge amounts of data.
|
|
|
The poor thing is, you can't track unit deaths... or at least I can't. Unit death seems to be dealt with by the game engine. So there's nothing in the replay data that I can analyze  But thanks for your suggestion. Any help is appreciated.
What you can so with cluster analysis ist determine where fights take place.
@TheFish: thx for the link.
|
Hmmm... yeah I guess it makes sense that unit deaths wouldn't be in the replay file, it'd be redundant. I know they are plainly available while the game is running because triggers can use them.
Well, you can use cluster analysis for lots of other things too. It can get as abstract as you want. Keep it in mind, although it can get computationally expensive.
|
I will keep it in mind. As is going to be run on a webserver there is not that much computing power :/
|
|
|
These are really good suggestions Barrin, thx.
Because this is a Bachelor Thesis at the moment I am not only limited in time but also by my subject which is to analyze replays and display significant information.
I think at the moment you could more likely call the programm a map-player-behavior analyzer. But in the future I want to use other sources and improve the tool furthermore. At this stage you could later tell if your map is played as it was intended and maybe also where to make changes.
|
The use of such a tool over time as the metagame develops would be cool and informative as well. This just depends on having it and using it though. gl, keep asking questions as needed
|
I've thought a little bit about doing something like this in the past (my PhD is in computer sciences and visualization). Can you PM me with your school and Advisor? I will tell you my information in PM also. Are you thinking about going to grad school?
You can't gather everything you need just from parsing the replay or map files. You need the SC2 client running the simulation to produce the data you need. You also don't have direct access to it without some significant work.
Ideas that I've had are the following:
Heat maps of deaths and damage being done
Given a set of replays show a heat map of vision at different times in the map
maps of how favorably or unfavorably an engagement turned out for different sides (possibly filtered by units involved in engagements)
In order to gather this information you need something like external maphack. The source for this is on github at the following location:
https://github.com/MrNukealizer/SCII-External-Maphack
(admins if you want to remove this go ahead - I can talk to OP in pms if necessary)
You should be able to adapt this to gather the necessary information while the replay is playing back in real time.
To do this over a large number of systems you need the following
- a large number of low-end pcs to collect the data - automated ability to launch the viewing of a replay along with modified external maphack to collect the information you need - data collection and aggregation across all these low-end pcs - visualization of results
For a Bachelor's thesis I would think the following would be more than adequate and would be very impressive - the act of using the external maphack source to collect this data from a replay and store it - you should not be logged in when you do this to reduce your chance of being banned - plotting the data using a couple clever visualizations (read Tufte's books if you have not) both for individual replays and an aggregation of 5-20 replays (you could do this data collection on your own PC in a couple nights of work) - A discussion of how to do this for much larger datasets and how to do achieve it as inexpensively as possible (if your advisor has a lab - you could run replay analysis at night when people aren't around)
If you wanted a slightly more hardcore version of the Bachelor's this I would recommend the following - if you play a lot of games modify external maphack to collect these statistics while you play and store them - this way you could get this data for several hundred to thousands of games all played by the same player If blizzard catches you doing this they will ban you even if you aren't displaying the information while you play (don't display the information if you do because it would be unethical) - make visualization of the heat maps that I suggested and see if it give you quantitative ideas on how to improve your play - make animations of these heatmaps and how they evolve in time
What I would think would be appropriate for a masters thesis - same as above but fully automated system for processing replay files and turning them into a list of unit positions and deaths - more care in the visualization styles and choices - disk images both for VM's and for getting going quickly that take a PC with certain specs and make it into a replay processing machine so that this could be scaled to the cloud
PhD thesis - full cloud processing of replays at a massive scale - open to the public with visual analytics similar to SC2gears but using far more data - analysis of the visualization choices used and feedback from players - note that Blizzard might shut this down
|
These are great ideas, but this kind of analysis would exceed the scope of my work.
I have to stick with the replay files only.
I can calculate: - game length - winration - expansion timing - gas timimg - apm - Units & upgrades - Mules / scans - cronoboosted Structures - Hotspots for fights - rage quits 
each overall and for every matchup.
any suggestions on that?
|
|
|
I have been working on a GIS based system based on OpenLayers, PostGIS and other web techologies to extract and present data produced in debug files. You cant extract heatmap data from replays, but it is possible if you build your own trigger packages. It was discontinued due to incompetense and just general lack of inspiration.
HereHere is a simple version of a heatmap system made in excell.
|
it'd be nice if we could get win ratios based on spawn positions.
|
|
|
|
|
|