Author Topic: MWLL-RDLG v1.5 - Random Droplist Generator  (Read 4207 times)

0 Members and 1 Guest are viewing this topic.

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
MWLL-RDLG v1.5 - Random Droplist Generator
« on: January 24, 2015, 04:38:03 PM »
After my previous first attempt at randomizing whole droplists I finally sat down and wrote a *real* generator, in the hopes of it being useful with some of the community-organized events in the future.This time the rules the generator operates by are fully customizable, the asset-data can be found in a centralized location, edited and extended (if anybody ever wants to do that, ask me for help or at least glance at the README). In theory the generator can help make any kind of randomized decision, as long as it is provided with an "assets.ini" that contains information about possible choices. If there was interest, it could easily generate lists of maps to play on (although collecting useful meta-information will be some work) or a list of movies to watch next.

Instructions:
  • Download and update the .ini-files with the ones from the package "most_recent_inis" appended to this post (if present). Just overwrite the files.
  • Run the program.
  • Make some rough choices in the top-right corner of the window.
  • If you want, tweak the criteria on the right side, activate some while deactivating others etc. If you create a useful set of criteria and want it saved, use the Menu: File->Save Criteria
  • Press the "Go!"-button in the top-left corner and wait a bit - depending on your choices you may have to wait between 0.1s and 9*10^10years. (you can always cancel and rethink your choices)

Instructions for the commandline version:
  • Settings from criteria.ini and settings.ini will be used.
  • Use parameters -p and -l to set the number of players and wanted lists, respectively.
  • Parameter -h lists available parameters and then ends the program.

Preview & Download:

MWLL-RDLG
v1.5 Windows (9 MB)
Source Code Repository (deployable on every OS imaginable)

PS: The software was created using Qt, my all-time favorite C++-framework.

PPS: If the file is not available, you may answer this thread or send me a PM. I will reupload it as soon as possible.

Latest Changes
Code: [Select]
Change: Speedup (~5x) of list generation, even when many criteria are active at once.

Offline Starch1ld

  • Lance Captain
  • ***
  • Posts: 688
  • l33tp0intz: +47/-25
  • hi
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #1 on: January 24, 2015, 06:04:46 PM »
Err, nope, it's not working for me.
Extracted with 7Zip 9.20, clicked on MWLLDropRand.exe, and nothing appeared.
I saw the process in the Task Manager and I was able to kill it, but that's all.

OS: Windows 8.1 Pro X64

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #2 on: January 24, 2015, 09:52:41 PM »
Sorry, some dll must be missing. I'll look into it after dinner.

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #3 on: January 24, 2015, 11:23:42 PM »
I added a couple of .dlls to the package and tested it in an extremely old virtual machine running Windows XP, where due to a lack of graphic drivers I didn't see more than a white frame where the window should have been. I hope that with a somewhat recent OS (or at least an updated/current version of XP) the program runs properly. I would highly appreciate if somebody tried and told me if everything works.

Sorry for the inconvenience, this is my first time working with QtQuick (which was only necessary to create the UI) and hence I do not yet know how exactly I have to distribute the resulting program.

Offline Starch1ld

  • Lance Captain
  • ***
  • Posts: 688
  • l33tp0intz: +47/-25
  • hi
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #4 on: January 25, 2015, 02:33:43 AM »
I added a couple of .dlls to the package and tested it in an extremely old virtual machine running Windows XP, where due to a lack of graphic drivers I didn't see more than a white frame where the window should have been. I hope that with a somewhat recent OS (or at least an updated/current version of XP) the program runs properly. I would highly appreciate if somebody tried and told me if everything works.

Sorry for the inconvenience, this is my first time working with QtQuick (which was only necessary to create the UI) and hence I do not yet know how exactly I have to distribute the resulting program.
Everything looks to be fine, here. Thanks for your work!!

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #5 on: January 25, 2015, 08:26:07 AM »
Thanks for testing. :) I might take a closer look into the array of .dlls the program currently needs, maybe I can lower the amount/size a bit. But as long as things work, it's not a huge necessity, I guess.

EDIT: I removed the file to download the source code and instead added a link to a public repository - this way I won't have to update the download every time I change minor things. :)

Offline ELH_Vivicector

  • Star Colonel
  • ****
  • Posts: 1285
  • l33tp0intz: +49/-4
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #6 on: January 26, 2015, 06:54:10 AM »
Hey, thats some great work done there! A lot of thanks for your efforts!

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #7 on: February 07, 2015, 06:54:13 PM »
Been dicking around with it and its been working quite well.
The only data about variants that it could probably use would be range brackets.

For my old regiment system I considered the "average" range into
Brawl=0m-350m
Medium=350m-600m
Long=600m-900m
Artillery=901m+

For reference:
Code: [Select]
Osiris - 30 Tons
Prime M
A L
B M
C L
D B
E A

Owens - 35 Tons
Prime A
A A
B B
C M
D B
E M
F B
G M

Raven - 35 Tons
Prime L
A B
B M
C L
D M
E B

Cougar - 35 Tons
Prime L
A L
B L
C L
D B
E L
F B
G L

Puma - 35 Tons
Prime L
A M
B M
C M
D B
E M

Solitaire - 25 Tons
Prime M
A M
B B
C M
D B
E L
F B
G M

Uller - 30 Tons
Prime M
A L
B B
C B
D L
E L
F M
G M

Bushwacker - 55 Tons
Prime L
A B
B B
C L
D M
E L
F M
G M

Chimera - 40 Tons
Prime M
A L
B B
C M
D A
E B

Hollander - 45 Tons
Prime L
A M
B B
C B
D A
E B

Uziel - 50 Tons
Prime L
A A
B M
C M
D M
E M
Clan

Blacklanner - 55 Tons
Prime M
A L
B M
C M
D M
E M

Ryoken - 55 Tons
Prime L
A M
B B
C L
D L
E M

Shadowcat - 45 Tons
Prime L
A B
B B
C L
D L
E M
F L
G M

Avatar - 70 Tons
Prime M
A L
B L
C B
D B
E M
F M
G M

Catapult - 65 Tons
Prime L
A L
B M
C A
D B
E A

Rifleman - 60 Tons
Prime L
A L
B L
C A
D M
E M

Thanatos - 75 Tons
Prime M
A M
B L
C B
D B
E M
F L
G B

Warhammer - 70 Tons
Prime M
A A
B M
C M
D M
E L
F B
G M

Clan
Loki - 65 Tons
Prime L
A L
B B
C M
D B
E M
F M
G L

Madcat - 75 Tons
Prime L
A M
B L
C M
D L
E L
F B
G B

Novacat - 70 Tons
Prime L
A L
B M
C L
D M
E M

Thor - 70 Tons
Prime L
A B
B M
C L
D B
E L
F B
G L

Vulture - 60 Tons
Prime L
A L
B B
C A
D L
E B
F M
G L

Atlas - 100 Tons
Prime L
A B
B M
C B
D M
E A

Awesome - 80 Tons
Prime L
A L
B M
C L
D M
E A

Fafnir - 100 Tons
Prime M
A L
B L
C L
D L
E B
F B
G B

Mauler - 90 Tons
Prime A
A A
B A
C B
D M
E B
F L
G M

Clan
Blood Asp - 90 Tons
Prime L
A L
B M
C M
D L
E L
F M
G B

Daishi - 100 Tons
Prime L
A M
B M
C A
D L
E L
F L
G B

MadCat MK II - 90 Tons
Prime L
A B
B B
C A
D L
E L
F L
G L

Masakari - 85 Tons
Prime L
A M
B L
C M
D B
E M
F M
G L

Chevalier - 35 Tons
Prime L
A B
B M
C M
D M
E M

Demolisher - 80 Tons
Prime B
A L
B B
C B
D B
E M

Harasser - 25 Tons
Prime B
A L
B M
C B
D B
E M
F M
G L

LongTom - 95 Tons
Prime A

Partisan - 50 Tons
Prime L
A L
B M
C A
D M
E A

Clan
Epona - 50 Tons
Prime M
A L
B L
C L
D B
E M

Hephaestus - 30 Tons
Prime B
A L
B M
C A
D L
E B
F L
G M

Huit - 85 Tons
Prime A
A A
B M
C A
D A
E L

Morrigu - 80 Tons
Prime L
A L
B M
C L
D L
E M

Oro - 60 Tons
Prime B
A L
B B
C B
D L
E L

Ares - 40 Tons
Prime L
A L
B B
C L
D L
E M

Corsair - 50 Tons
Prime M
A L
B B
C M
D M
E A
F A
G B
H L
I M

Hawkmoth - 25 Tons
Prime A
A L
B B
C M
D A
E L
F B
G L

Shiva - 85 Tons
Prime M
A M
B A
C B
D L
E L
F B
G M
H L
I M

SparrowHawk - 30 Tons
Prime B
A B
B L
C L
D L
E B
F L
G M

Clan
Donar - 25 Tons
Prime M
A L
B M
C M
D L
E B
F M
G M

Sulla - 45 Tons
Prime L
A L
B B
C B
D M
E M
F A
G A
H M
I M

Visigoth - 60 Tons
Prime M
A B
B L
C A
D L
E M
F L
G B
H A
I L

Note that these were were not picked on the strictest of terms as something that has a weapons that go out to 700m but has trouble keeping range or requires lots of time to do damage (such as LPLs) may be considered M even though it can reach out into L range techincally. Also variants that have heavily contrasting loadouts such as the Daishi B's ERPPCs and UAC20 are also counted as M which means it can pretty much do both.
-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #8 on: February 07, 2015, 07:03:52 PM »
Hey, that's pretty much what I thought about but didn't add since I didn't know how to obtain the necessary information. Thanks a lot, I'll make a proper table out of it and then import it into the data-files.

By the way: What do you mean by "quite well"? I know there are some sanity-checks missing to clearly tell the user about bad combinations of criteria. But aside from that I would appreciate any kind of feedback.

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #9 on: February 07, 2015, 07:22:33 PM »
Well I've had to do some investigating and make a few more filters.

Found out Chevy is not considered a tank but a "StdWheeled" so had to make a filter to limit them.

I don't use mass average, dont use at least one assault or light to give it some wiggle room.

It seems to get angry when there is too many possibilities. I was making 65ton 6 man droplists just fine, but when I bumped it up to 70ton 6 man it was coming up with barely anything. I increased the min/max to 92% and 99% from 94% to free it up a bit more.

Enabled Hovercraft yet see few Harassers, it seems to heavily prefer Solitaires for some reason when it needs at 25 ton asset.

Instead of narrowing down limitations and waiting for them to pop up(sometimes they dont at all) I prefer relaxing and letting it pick bunches then manually pairing off the similar lists.

Also manually changed Partisan tonnage because it has never been considered at full 80 tons in any organized event, like ever.
Have it set to 50 tons because apparently that's what Star decided it was going to be but I prefer 60 tons myself. :P

Is there anyway to give certain assets probability? Seems the more players I have the more it loves to add solitaires. :X
I don't want to ban solitaires outright but it seems having a limit of 1 doesn't guarantee every freakin list won't have one.
Same thing with tanks, it loves to have at least one tank most of the time.
Brute forcing enough lists can provide options but sometimes its annoying how it INSISTS on certain things.

-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #10 on: February 07, 2015, 08:05:21 PM »
First: Thanks again for the data, I added it and appended a little .zip-file to the first post containing the updated .ini-file. I won't update the main-upload for small changes like this since uploading things is some work for me.


Well I've had to do some investigating and make a few more filters.
That was intended, I couldn't possibly come up with all possible filters since the system is extensible.


Found out Chevy is not considered a tank but a "StdWheeled" so had to make a filter to limit them.
"category" is "Tracked", "type" is "StdWheeled" - I am just using the terms the game uses internally. Yes, you kind of have to look some things up in the assets.ini - I was thinking about changing that (e.g. just give a dropdown-list) but that might limit some things. Also, I was looking at things from an economic point of view in the end, and with very few users and not even a guarantee that the program would ever be used, I decided against implementing additional comfort-options.


I don't use mass average, dont use at least one assault or light to give it some wiggle room.
"Mass average" should theoretically make it so that a certain mass is preferred and others are chosen less often (using a gaussian distribution) or never (depending on the softness). It's hard to predict if that setting makes the generator too slow, but I added it when Vivicector mentioned that my old generator tended to add too many Solitaires to the drop-lists.


It seems to get angry when there is too many possibilities. I was making 65ton 6 man droplists just fine, but when I bumped it up to 70ton 6 man it was coming up with barely anything. I increased the min/max to 92% and 99% from 94% to free it up a bit more.
The problem about some choices is that other criteria will conflict: Imagine "6 men", "65 tons each", "150k CBills each" - that will look for lists but it'll certainly not find any; other, less insane combinations might have theoretical solutions which are really hard to find (since things are looked for randomly). So if you include BV, CBills and tonnage, all the settings have to make sense and you have to think a step ahead. As I said: The generator lacks sanity-checks or some kind of user-notification if finding a list is really improbable (I guess the time needed to find a list could mathematically be predicted and shown...but that would be a lot of work which I would have done back in 2011 when things looked a bit better for the game ;( ).


Enabled Hovercraft yet see few Harassers, it seems to heavily prefer Solitaires for some reason when it needs at 25 ton asset.
That's a really good point. Might be BV- or CBill-restrictions, most of the criteria first judge all available assets and assign a "badness"-value, so even "Solitaire A" and "B" might have completely different probabilities to show up for certain sets of criteria. I guess a random generator isn't build to be predictable. :P


Instead of narrowing down limitations and waiting for them to pop up(sometimes they dont at all) I prefer relaxing and letting it pick bunches then manually pairing off the similar lists.
Well, that's a sign of bad design on my part. Balancing out the criteria is some work, but once done in a reasonable way the generation is still pretty fast.


Also manually changed Partisan tonnage because it has never been considered at full 80 tons in any organized event, like ever.
Have it set to 50 tons because apparently that's what Star decided it was going to be but I prefer 60 tons myself. :P
I heard that before.^^ I don't like tinkering with the values since you can include like five dozen criteria that are supposed to be balanced as a set, no particular need to tweak certain criteria manually. But since the program is open source, I guess I have to accept seeing people "butcher" it.^^


Is there anyway to give certain assets probability? Seems the more players I have the more it loves to add solitaires. :X
Sounds like you should use the "average mass/price/BV"-thingy I mentioned before. Yes, that can be used on any numeric property, not only mass. And during my tests I never saw an abundance of super-light assets.


Same thing with tanks, it loves to have at least one tank most of the time.
Brute forcing enough lists can provide options but sometimes its annoying how it INSISTS on certain things.
The whole "gaussian distribution" makes the generator make "good choices" on a regular basis, even though the user might not consider them "good". Add an "average"-criterion (or several...which might have interesting effects). I recommend something like "65 tons w/ softness of 0.7" (which would completely block assets below 0.3*65=19.5tons).

---------
To sum things up: Sorry for the inconveniences, but many of the sanity-checks to keep problems from cropping up might not be easy to implement. And since I never heard back from the results of the testing done in conjunction with the "Chaos March" I will assume that the time needed to improve the program would be in no reasonable relation to the use it might have.

Offline Silvercraft

  • Recruit
  • *
  • Posts: 139
  • l33tp0intz: +43/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #11 on: February 08, 2015, 12:16:59 AM »
And since I never heard back from the results of the testing done in conjunction with the "Chaos March" I will assume that the time needed to improve the program would be in no reasonable relation to the use it might have.

Originally we were unable to get people to do the test  :-\   so we used randomly generated stuff during this weekends ChaosMarch. We played 5 maps during saturday evening and ELH won 4 of them. So we need more testing with more even teams to say much more.

We will be using randomly generated stuff again during next weekend and see how it goes...


Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #12 on: February 08, 2015, 01:04:43 AM »
A small request if possible! :D

Is there anyway results could be sorted into two columns with equal BV and Tonnage?

Currently I'm having no problems churning out balanced lists for each side but its sorting them into pairs so each side has "equal assets" that is taking up alot of manual time.

Even if out of program it would be nice to show a noob like myself how such a thing could be done.
-Invictus ne Vindicetur-

Offline thEClaw

  • Star Captain
  • ***
  • Posts: 976
  • l33tp0intz: +75/-0
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #13 on: February 08, 2015, 07:59:09 AM »
@ Silvercraft: Thanks for the update.


Is there anyway results could be sorted into two columns with equal BV and Tonnage?
I don't understand, how about a small example?

Offline xInVicTuSx

  • Apprentice Dev
  • Living Legend
  • *
  • Posts: 3683
  • l33tp0intz: +193/-5
  • Knight of the Inner Sphere
Re: MWLL-RDLG v1.0 - Random Droplist Generator
« Reply #14 on: February 08, 2015, 03:51:04 PM »
Yeah I figured that explanation sucked.   8)

Look here , https://docs.google.com/spreadsheets/d/1BRicY8wa3jXeZ1ibBvEBN538MXYePosn8ZD9u5n_Sg8/pubhtml

These are paired up lists from two 40 list runs on the generator for 4 man drops at 65 tons and 55 tons a man.

I pasted them all into google docs and then manually cut and pasted the ones that had equal BV and Tonnage side by side to represent a possible droplist for each side, thus keeping available droplists relatively "equal".

I took me a good bit of time to manually check and sort them, was wondering if there was a way to do that automatically.
-Invictus ne Vindicetur-