• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Survey of machine learning in Warcraft 3 modding

Status
Not open for further replies.
Level 15
Joined
Aug 7, 2013
Messages
1,337
Hi,

I am looking for a survey of the modders or tools that have been developed for Warcraft 3 modding which have used machine learning to enhance a Warcraft 3 mod/map. I am preparing to create a terrain/doodad generation library that will center on machine learning (unless it doesn't work in which case I'll switch to a different technique). Hence the recent threads I started: Generate random terrain and Tool to extract w3x file, replace/edit any file, then create new w3x file..

Note: While creating melee Warcraft 3 bots is interesting, that is something that would be less relevance to this thread. If you've created Warcraft 3 bots using machine learning or statistics for custom games then that would be of interest.
 
Level 23
Joined
Jan 1, 2009
Messages
1,610
I'm not sure how machine learning will aid you much in terrain generation. Currently it's mostly used for pattern detection or prediction and learning from big input data sets.
Since wc3 terrain needs to be very specific in almost all maps, even if you parse a big set of wc3 maps and use it to generate terrain from it, you need some sort of rating to describe whether the generated one is close to what you want. Or what is your approach?

Good ol' gex did some terrain generation back in the day. E.g. I found this thread with a testmap eeve.org • View topic - Procedural Terrain Generation you can try out.
Though this doesn't use machine learning and I wouldn't know of any application in wc3 thus far.

If you check how other games generate terrain, like minecraft, no man's sky etc., it's more about 3d noise functions and simulating tectonic plate movement. Then add biomes etc.
 
Level 15
Joined
Aug 7, 2013
Messages
1,337
I'm not sure how machine learning will aid you much in terrain generation. Currently it's mostly used for pattern detection or prediction and learning from big input data sets.
Since wc3 terrain needs to be very specific in almost all maps, even if you parse a big set of wc3 maps and use it to generate terrain from it, you need some sort of rating to describe whether the generated one is close to what you want. Or what is your approach?

My approach is use a Deep Learning method called General Adversarial Network (GAN). See this for example of a GAN generating realistic looking pictures of bedrooms: An introduction to Generative Adversarial Networks (with code in TensorFlow) - AYLIEN

As you said, I plan to collect a large set of terrain/doodad data I want my network to generate similar looking terrain automatically. I'll then also generate random noise terrain (choose random values for each possible tile/texture/doodad, etc.). I'll then train a model (convolutional neural network perhaps) to say whether the terrain is good or bad (binary classification). When I get the right amount of data and the model is stable, the next step I'll create a second model that generates complete random terrain again. However, this 2nd model will get to see whether its results are rejected by the 1st model (i.e. they are too noisy). The 2nd model then will update its weights, and try again. This back and forth process continues until hopefully the GAN (2nd model) starts making terrain that looks like what the 1st model was trained on.

Will this work just as expected? Certainly not, and it may turn out to be a poor way to create terrain in Warcraft 3. I think it will be good (if I do the math/engineering correctly), because WC3 Terrain is really analogous to creating any 2D artwork/image (albeit functionality considerations, but I can encode the model to also make the terrain reasonably pathable), e.g. if neural networks can generate realistic but fake images, surely they can do this for WC3 maps. Maybe I won't get enough data, but I'd like to try it.

Good ol' gex did some terrain generation back in the day. E.g. I found this thread with a testmap eeve.org • View topic - Procedural Terrain Generation you can try out.

That is generation at runtime and I tried playing that map but it just froze in game (or the script was too heavy). Mine is at compile time.

If you check how other games generate terrain, like minecraft, no man's sky etc., it's more about 3d noise functions and simulating tectonic plate movement. Then add biomes etc.

Thank you for mentioning these. I think those make a lot of sense of Minecraft and No Man's Sky for a few reasons: 1) their terrain is inherently "open world", and 2) they didn't have a pool of previous made terrain to "learn" from.

In my case, I have access to potentially thousands of example terrains already completed by expert humans. Nevertheless, their approaches may turn out to be more suitable.
 
Status
Not open for further replies.
Top