Jump to content
Sign in to follow this  

Map Meta Data (MMD)

Recommended Posts

You'll notice the MMD library in the map which has yet to be utilized. The purpose of said library is to export data from the map to a hosting bot for use in a league. We have two servers within the community (meateor, MagicalHacker), and the plan is to get both of them running a bot in the near future. In order to extend the usage of these servers beyond mass hosting, we need this library implemented.

I have attached a word file briefly detailing what data I'd like to collect. Below you will find a reply I received from the author of the library that contains some useful information and pointers.

There are essentially three important types of output: flags, variables,

and events.

Flags are used for stuff that I assumed would be incredibly common and

shared across most maps: player wins, player loses, player was a dirty

leaver, don't count this game for this player, etc. These are pretty

simple, and if a bot supports MMD it will definitely support the basic


Variables are used for quantities. This would be your kill counts, your

death counts, your total gold, total towers, etc. Essentially the values

you might want to build a leaderboard or a simple chart of value vs time

with. I envisioned these being used by bots to automatically created

leaderboards for kills and stuff.

Events are used for everything else. X kills Y, X leaked, X sold a

tower, X built tower Y at location Z, etc. You can then use that

information to compile more useful data like total kills or how fast a

player was selling and building towers. Most bots will probably ignore

these because they don't mean anything unless you tell it to count kills

or whatever.

All this data goes into the replay file. You can write your own parser

(I have an example one posted at wc3c) to extract the information you

need from events, etc.

As for your specific questions:

- Elements: Probably an event

- Towers: Definitely events

- Game modes: Event.

- Ronald Kills: Variable or event. Both, if you want.

- Time duration: Probably an event for the per-round stuff. Keep in mind

the last player leaving won't have a total time data emitted; you'll

need to use the replay's total time.

- Player Events: Flags for the common stuff, events for the rest. You

can get leaves from the normal replay data.

- Leaks: Variable or events

- Player placement: Hmmm. Probably a variable. There's no flag mechanism

for placing 2nd, 3rd, etc.

Keep me updated on development. I'm sure you'll find things that don't

work well, or should be redesigned somehow.

Oh, and I have noticed that TriggerSleepAction doesn't combine well with

the game cache sync actions. MMD uses those. If you find any

unexplainable timing bugs tell me about it, and see if switching to

PolledWait or timers fixes it.


Share this post

Link to post
Sign in to follow this  

  • Create New...