|
On October 13 2010 09:29 FrostedMiniWeet wrote: I was actually considering writing a similar program. This won't change much in the gaming scene however, as the game gets too dynamic as it goes on, but it may provide some clever builds. I'm curious what function you used to determine the effectiveness of drone mining, as there is diminishing returns for each drone as you approach 3 drones per patch.
Drone mining numbers were taken from liquipedia. Mining Rate
|
A more complicated solution would be to have the greatest economy possible and still be able to hold off a 4 warpgate.
|
this is nice! But still, it will be so much easier so perfect builds with this. I don't know if it's good for the game :/
|
Are you using a genetic algorithm I'm assuming?
|
On October 13 2010 09:34 FrostedMiniWeet wrote: Are you using a genetic algorithm I'm assuming?
Yeah. You are now in 'the know'. :-)
As a result, determining whether the build is optimized or not is kinda hard. I usually just let it run overnight, and check in the morning, but it usually gets a really good idea within about 5-10 minutes.
|
Very cool program, and I don't see any moral dilemma here. A program can't play for you, and it certainly can't tell you what to do past the opening build order.
|
Holy shit according to your OP and multiple replys... it seems this thing is quite well thought out and well put together.
Sounds like it could def. work. Any plans on releasing it soon? If so that'd be awesome because i too am a zerg player and could use this indeed.
|
Are you using a genetic algorithm I'm assuming? I finally got around to registering for the site just to ask this question and you beat me to it by that much.
Very cool. I say release it, although I'm probably more interested in the code than its impact on my gameplay, so I might be biased.
|
This sounds pretty neat. The problem, as Day[9] has pointed out on several occasions, is that you can't plan out an exact build order all the way to the end game. You need to be able to make in game decisions and respond to the situation at hand, while still following an overall game plan.
For example, a bad plan is "how can I get 7 roaches really fast and then immediately win the game?" This plan is lacking, as when those roaches DON'T win you the game, you have no followup. You need to have a plan for what comes after the roaches - in other words, your 7 roaches is an opening into a larger game plan. There are additional variables that matter other than speed of getting to 7 roaches - economy, setting up transitions, map control, etc.
A better plan would be "I am going to open 7 roaches into early aggression and expand, and grab my third after getting some hydras, and push with 3 base roach/hydra/infestor." If you can find a way to input additional variables to plan a build order for an opening that leads into an overall plan, it would be much more effective.
Even better would be if you could simulate modifications to the build order based on enemy builds. For example, you may have a plan which you know loses to certain builds (fast banshees for example in the roach example) but simple modifications could make the build safe. If you had a way to input variation builds (e.g. given the constraint that you must have 2 queens at X time, and an overseer at Y time, after scouting at Z time, what is the fastest that you can open 7 roaches?) then you could make a set of build orders for a given opening that relies on scouting information.
Best, and totally infeasible, would be a system where you have either a database of common openings, or randomly generate openings given some constraint, and match the openings against each other trying to find holes and the ways to fill them. Basically you would give some a goal, and the output would be a set of build orders and scouting instructions (if you scout X, then you must do Y, otherwise do Z).
In short, I think you are safe releasing what you have now, as I doubt it will change the pro scene very much, but could help some of the rest of the player base improve their builds.
|
On October 13 2010 09:32 FrostedMiniWeet wrote: A more complicated solution would be to have the greatest economy possible and still be able to hold off a 4 warpgate.
That's the goal of being able to chain together builds.
7 roach rush, in my experience, crushes 4 gates, because it usually hits their base while they are getting gate 3-4 up, and don't have nearly enough units to defend against it.
But it is weak against someone who goes air.
So 7 roach -> muta, optimize that, and then you have a possible followup that makes you good against air.
Regardless, what you are saying is true, it can't 'hard counter' a 4 gate. That's v2. <gasp>
|
i would like to see some post from the people we consider progamers because not only will this help us if opponents use this program as well they can learn ins and outs of zerg timings for fast whatever whereas at the moment everybody has an very rough estimation or food based on their army and build. then again i could be a complete noob about this
|
Kevmo:
Certainly. It can't make you a better player, but it can tell you how to perform certain openings. And maybe later on it can tell you how to branch those openings into countering other fixed builds, like a bunkered terran that goes banshee rush.
That is, it is a tool as someone said, an optimizer, and not really too useful when one gets into the midgame, since gameplay tends to become quite dynamic at that point.
But using it, you can put things in like... I want at least 2 bases and 30 drones by the time my opening is done.
I hope to put in timing requirements, like an overseer at <insert DT/banshee timing here>, a spine crawler at the expo to stave off a hellion rush, etc, etc.
But obviously, you can't simultaneously defend against every possibility.
swiftazn:
Yeah, I am waiting for pros to chime in as well.
|
hey man, i wouldn't worry about ruining the game or anything. starcraft is not a game of math, it's a game of intuition, but at the same time, being able to perfectly do what you can do perfectly makes you a better player and it helps the game become what it is meant to be.
with that said, i've seen a few build order algorithms and they just have a lot of serious issues with being useful in realistic situations. i see a lot of holes with your algorithm before it gets to a point where it's a reliable source of information that you can point to and say, "this BO wouldn't work because the math says so." but best of luck if you wish to continue the project.
|
I'm kind of curious how you'd react to a real moral dilemma, because this is certainly not one by any stretch. The thing isn't playing the game for you, and any one of us here could do this manually.
I like the idea of this program. It's basically kin to stuff like YABOT, but without actually having to take the time to test a myriad of subtle differences yourself. I'm still a little unclear about how it takes input (perhaps because you were purposefully vague in your description). Could you post a sample input, as you would give it to the program, or how you would modify it if you don't take user input directly?
|
On October 13 2010 09:52 Lomilar wrote:
But obviously, you can't simultaneously defend against every possibility.
If you had a set of builds you were worried about, you could come up with a tree of "scout at time X" and then have branching based on the results: "if fast factory and double gas, go into the 'prepare for banshees' branch" etc.
This is how I try to play (admittedly I'm pretty low in Diamond, only 700 points, but I recently started doing this after watching Day9, and got a ton better, so I think it is pretty good for at least the average player). In PvP matches for example, my favorite build is 2gate robo immortal timing push into colossi, but it dies to a few things like 2gate, and it needs modification to beat 4gate. So I scout twice - once in the beginning to confirm they go gate/core instead of 2gate, and again later to scout their front composition and try to see if they are going 4gate. This build fits pretty naturally into a tree based on scouting.
I have seen analysis of similar things for matchups like ZvT - a certain build is really good, unless the opponent does one of these 2 or 3 things, which are easily scoutable.
In short, the idea is not necessarily that you defend everything at once, but that you figure out what you are defending against and how to defend it. The program figures out how to defend against everything, but not at once.
|
I think this is so cool, since I majored in Computer Science and all. I wonder why I never thought of that. I know how people are saying this doesn't take into account the opponent attacking you, etc etc. But I think this will mostly be used as a ceiling.
"Okay, so this build is the fastest way possible, but my opponent can attack me at this point...etc etc. Let me just TWEAK this part of the build."
That is how I am thinking this will be mostly used, especially for longer BO's. But anyways...nice freagin job man!
|
On October 13 2010 09:52 Lomilar wrote:
Certainly. It can't make you a better player, but it can tell you how to perform certain openings. And maybe later on it can tell you how to branch those openings into countering other fixed builds, like a bunkered terran that goes banshee rush.
That is, it is a tool as someone said, an optimizer, and not really too useful when one gets into the midgame, since gameplay tends to become quite dynamic at that point.
If you can end up properly accounting for all the goals of an opening (transitioning well into mid-game) I can see this being very useful.
However, I still don't think there is any moral dilemma. At worst, this program would expose some imbalance that everyone exploits for a while but Blizzard patches. More likely is that it would find some minor improvements to existing openings which everyone immediately copies, but these improvements would have been found soon enough anyway, thus the effect being just speeding up the development of the metagame.
Additionally, it is unlikely that you would be able to write a program that determines NEW openings with any decent effectiveness. By this I mean, this program wouldn't figure out that a thor drop on LT is really good; it would just tell you how to get that thor the fastest (which is unlikely to be THAT much faster than a pro player would have figured out in the same time frame).
From what I've seen, new creative openings and strong in game decision making combined with great mechanics is what makes a pro player really good. A fast build order is just one component, and a small one at that.
|
The input is currently all code. Basically, you start off with a 'state', that is 6 drones, a hatch, an overlord, and 50 minerals. You then give it a destination 'state', say, 2 hatcheries, 10 mutalisks, 4 extractors, and 44 drones (6 for gas, 16 per base for good saturation). It then finds 'a' way to get there, then starts making it better and better.
And yes, it is a moral dillema, since with the appropriate opening and good execution, you can shut down a LOT of builds. This makes the research and testing of build orders somewhat laughable. That means that some pro zerg with this tool could learn about 10 openings that are (theoretically) perfect, and win a lot of money, and were I a bastard, I could sell it to those people for percentage of earnings, or something bizzare like that. Suddenly, static builds start demolishing any sort of dynamic play, since someone has found 'the perfect build', and not through playing for months.
After hearing about match fixing scandals, where a lot of money was made and lost, I started questioning. A lot of people (edit: Korea) take this game way more seriously than I do, so I didn't want to just drop the bomb without asking.
|
I don't see much use in this app, even though it is a very cute thing to have. Intuitively it seems that the BOs it produces for various things will be different...ie. fastest way to get 5 roaches vs fastest way to get 15 roaches, obviously 1 is an extension of the other in a real-game situation (you will continue to make roaches after 5), but the BO you pursue to optimally pump out 5 roaches may be different to the one you'd choose to then pump 15.
|
I don't know a lot about a lot of things but looking at that build I'd believe it was 100% optimized as claimed. If you look carefully at the larva management with the exception of the time it's saving up for the pool (while it's building the first overlord) all larva is consumed the instant it is produced at the hatchery.
I don't really see how it could get any more optimized unless drones were cut at some point, but I'd be surprised.
|
|
|
|