|
On October 13 2010 15:17 Cheerio wrote: Dont be ridiculous with thinking how good your program is. Even for me its value is questionable. Pros with never use it.
This program will be a great benchmark for all the builds out there. At the very least, it will stem the flow of "hai guyz check my fantastic super safe never fail build vs all race"
And why wouldn't the pros use it. If they have a question like 'how fast can I possibly get 2 colossus out?' Why wouldn't they use this to get a ballpark figure.
Then they can say 'ah, I see 2 colossus comes out at best possible scenario of 8:30. If my opponent is going mass roaches, there is a 2 minute window where I am vulnerable'
This would be a good starting point to understanding a 2 colossus timing push against a mass roach zerg. And this could be done very quickly, by a computer instead of a day's worth of grinding games.
|
On October 13 2010 13:45 Lomilar wrote:Show nested quote +On October 13 2010 13:30 Chill wrote: lol i like how you pretend this will singlehandedly destroy sc2 as an esport or something. Wouldn't that suck? I'd feel pretty bad. Like, even if I reached even sAviOr or Yellow's level of damaging e-sports, I'd feel pretty bad.
No, he was implying that this will never even affect the esport scene.
Getting some units fast isnt all, the way you get them count too. A computer will not take into account something like : what your opponent is doing or how to be safe against this or that. A build order optimiser will never replace your experience of the game. At best it will only produce some extreme cheeses.
It is really interresting, but of little use at high level of play imo.
|
Hm. <irrelevance removed >
|
Man I would love this, just because I love breaking things down analytically.
In yabot, I've been opening hatch first and pool first and building nothing but drones over and over. No combination of resource/queen timings has ever made hatch first produce more drones. It actually seems to be slower economically than pool first. I'd be curious what your optimizer has to say about that.
|
Sounds great. If I lose against a certain strategy, I could look up a unit combination which beats that and let the program compute the corresponding build order.
Great!
And if everyone in silver and gold would be cheesing with the help of that tool: that's not a problem because it would boost the overall quality of everyone's play in the end.
|
You should make one for protoss and terran as well.
|
I considered making something like this using mixed integer programming, but decided it was too much work to model. Well done.
|
Before this is even out two additional things I'd really like to be able to see: printing as a traditional build order (including @100gas, etc when timing isn't precise), but moreso the ability to being able to write in a build order ie "10 pool 10 overlord" and have it print the timings. Quite a few people have started to implement such things, but clearly you've already implemented this as a tiny subset of what your whole program does . If you could expose that would make for some neat experimentation and theorycrafting...
Would also be really nice if as part of the goals you set (ie "7 roaches") you could also add "scout on 14" or "scout 15 or before".
|
On October 13 2010 13:01 Lomilar wrote:Show nested quote +On October 13 2010 12:49 voss wrote:On October 13 2010 12:40 Lomilar wrote:On October 13 2010 12:36 voss wrote: Question for you Lomilar: Is it possible to input multiple requirements? Or is it just limited to X number of Y units in fastest possible?
example: I want to get out 10 roaches, 4 zerglings, 2 infestors and a hatchery in the shortest time possible. Is this a valid input to your optimizer? Yes. Impressive. In order to maintain a decent economy, can you specify a number of drones? - how does this incorperate with this current amount of drones? Will it factor in the increased resources that come with these drones? Does it factor in oversaturation (pretty hard to do I guess) example: I want to get out 10 roaches, 4 zerglings, 2 infestors, a hatchery, and 30 drones. Will these 30 drones be factored in to the income rate? Will it add 30 drones to the amount of drones in the previous example (10 roaches, 4 zerglings, 2 infestors and a hatchery)? Or will it count the amount of drones from before (if this makes sense)? 1 More question: is it possible to put a higher priority on certain units: - using the previous example; obviously getting the 30 drones out first would result in the fastest time, but it would be unrealistically unsafe. So could you put priority (or something) on the 10 roaches some how? You may specify a number of pretty much anything. It can determine if it needs more drones than you have specified to make it faster, same with things like overlords, etc, and it does factor in oversaturation. It will only seek to the number you specify, so it will build 24 drones plus any used to make buildings. Right now, there is not a way to put a priority on certain units. That is in the list o' things to do. I just put in the ability to remember old builds it did, so it can use those old builds as ideas for the new builds, and copy them to the point where they become unreasonable.
I think the next step is being able to insert timings like:
you need A before time t_a
B before time t_b
C before time t_c
while maximizing the amount of drones.
If it can do that I would really use it.
On the other hand, I don't see it being that useful for protoss or terran.
|
It's very nice to find transitions that work really well. Say I opened up with 14pool/13 gas, then got a hatch, lings, etc. now I want to know what's the best way to get to 10 hydras, 3 hatch, 40 drones, or whatever..
Great tool, imo.
|
Just release it, it won't really have any effect to players with good understanding to make builds themselves. They might use it as a starting point but it will just make their process a bit faster not make the result better.
Really, if this was such a great groundbreaking idea, you think nobody would have thought of it before? Pretty cute delusions of grandeur :D
|
The problem is this : The fastest way to get X amount of units, will always consist of making ONLY DRONES until the last possible minute - then making the units you need all at once.
This could be very useful for openings, but past that it's not "game breaking".
For example, if I tell the program I want 2x ultralisk, I'll have nothing until those ultras pop.
If you were able to specify maybe 10-15 different "checkpoints" of units to have at certain times, it's usefulness would be dramatically increased.
|
Go for it all the way. This can be the start of something greater. Just go for it in the name of programming if anything else.
|
Theoretically it should be no problem at all to incorporate checkpoints. I am planning to implement my own Genetic Algorithm to see how it performs. I would be interested tho in the population size and gene parameters. I assume the OP is just listing possible production units (buildings, drones, zerglings, etc...) as possible genes. Then evaluating the chromosome linearly as a "build-order" to see what it does and if it reaches the goal. How do you put in the constraint of keeping time as low as possible? Have you considered using other constraints to improve the algorithm? I am not too familiar with GA but I am gonna give it my best shot.
FOR THE SWARM!
|
does it understand the extractor trick? and the fast-expo optimal timing?
|
Due to the fact that SC2 is much about the right balance between macro and micro of a player, this does not sound like a dilemma in a moral way to me. Even if there should be the new Oo imba Z strat evolving from this, you can often scout and harass, disrupt the play of your enemy and force the game into your ways.
So it will be very interesting to theorycraft, but the "real" game will always turn out with twists and insecure parts.
I guess the program can be very interesting to get a quick opening, but for the "ongoing" game, there is players creative needed.
|
People still play chess, even though it's solved, right? Have no fear. This only gives hints to early game, neither mid game nor late game nor any reaction to your opponent's actions for that matter. I think it shaves off a good deal of time that would otherwise be wasted trying to figure out all this timing stuff by hand. Good job, OP. I'll be using it.
Oh and please keep it a Zerg only app. ;P
|
oooo extractor trick would be nice to program in too. Since it makes one of the constraints a bit relative Should be interesting to see how often the algorithm uses extractor tricks if you give it the possibility, as this can get a lot more drones out earlier. Are there any other tricks like that which can help the econ?
P.S. Putting in arbitrary wait periods for building structures and sending drones to mine should not be too hard, but of course we want to keep them minimal so that we still get an optimal build order. I am wondering if the algorithm could also learn to Maynard efficiently given some time constraint on the movement of drones.
|
On October 13 2010 17:52 Dagobert wrote: People still play chess, even though it's solved, right? Have no fear. Chess isnt solved...
|
And never will be...
How do you put in the constraint of keeping time as low as possible? That'd be the fitness test. ie maximize fitness where fitness is the negative of the time taken.
|
|
|
|