mannyzhou5 / evolutionchamber

Automatically exported from code.google.com/p/evolutionchamber
0 stars 0 forks source link

Online database of build orders #137

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I propose the addition of an online database for the storage and retrieval of 
optimized build orders. Rather than begin from scratch each time, the program 
will download an optimized build order from a designated web site to resume 
optimizing. As the build order is further optimized, the remote copy is 
overwritten.

If two users are optimizing the same build, then the server would only accept a 
user's overwrite if the remote copy was currently worse.

Advantages:
Shorter time to a satisfactory level of optimization.
The basis for a public display of the most optimized build orders in existence 
for a given set of way points.

Disadvantages:
Server bandwidth cost: While build order strings are small, the constant 
download and upload of them may add up to significant bandwidth.
Database storage space cost: While build order strings are small, the way point 
combinations that users will attempt is potentially very large. The upper bound 
is theoretically infinite.
Server CPU load: This may be the most relevant. As the database grows more 
complex, its performance will use more CPU power, making lower cost, shared 
hosting nonviable. Eventually, a more expensive, dedicated server would become 
necessary.
Maintenance: New features will require a refactoring of the database structure 
if they alter the data structure.

Original issue reported on code.google.com by qwerty10...@gmail.com on 8 Nov 2010 at 6:08

GoogleCodeExporter commented 9 years ago
"I propose the addition of an online database for the storage and retrieval of 
optimized build orders"

I would assume this would have to be part of a larger-reaching website (and 
thus not part of the EC tree)?

"Rather than begin from scratch each time, the program will download an 
optimized build order from a designated web site to resume optimizing"

seems counter intuitive - wouldn't this limit the search results hugely? For 
me, it seems to find the optimum build in 15min or less (ie after 15min it 
won't find a better build if left running).

I think this issue is too far reaching; to me, the natural progression towards 
a goal like this would start with a import/export format specification.

Similar to what online builds for RPG's have, a alpha-numeric string to store 
the build order so as to be more convenient to copy/paste, with integration 
into some sort of display page. You would then have a JS or similar page where 
you could paste the build string in and get an easy to read text & graphical 
summary of the build, with perhaps graphs of army value, income, etc. 

Any DB storage might be integrated in, but really, I'm unsure how useful it 
would be, and with the popularity of a program like this the hosting 
requirements would be fairly huge if it was integrated directly into the 
program itself.

Original comment by kel.bolden@gmail.com on 8 Nov 2010 at 11:43

GoogleCodeExporter commented 9 years ago
Would just like to make an amendment to the above reference to an import/export 
spec: I know several methods exist for exporting the builds (such as YABOT) but 
a compressed version would be fairly important (as the YABOT version tends to 
be quite large).

Original comment by kel.bolden@gmail.com on 9 Nov 2010 at 1:13

GoogleCodeExporter commented 9 years ago
It would be cool if EC provided a way to share the builds you generated.  Like, 
uploading the build in YABOT format to a website somewhere.  The website could 
store these builds in a database and allow others to view them.

Original comment by mike.angstadt on 10 Nov 2010 at 6:52

GoogleCodeExporter commented 9 years ago
Would like to add that I would be happy to take on the online side of this 
particular issue if it reaches that point, my background is in PHP/MySQL rather 
than java so it would be an easier way for me to contribute.

I do feel that the export format should be in some way compressed, as either 
(or the option for both) alphanumeric/font friendly special chars or as a 
binary compressed.

I think the best method of interaction would be via a php/aspx/whatever script 
on EC's website, or possibly one of the many SC2 community sites out there - 
for instance could be released as a plug-in for TL's forum.

Hosting would still need to be found, and I would imagine this would be 
attached to a forum or similar, so people would need to register and put their 
username/etc into EC itself for uploads.

I think the issue is complex enough to warrant it's own tree, at least the 
online side will be a separate project so it comes down to the protocol 
definition for interaction between EC and the website.

Original comment by kel.bolden@gmail.com on 11 Nov 2010 at 4:45

GoogleCodeExporter commented 9 years ago
Sorry for the late reply.  That would be great if you could get something 
going.  I don't think it would be too hard to integrate something into EC which 
uploads the build orders.  The hard part is designing the website or whatever 
that accepts these uploads, stores them in a database, etc.  Yeah, I agree that 
it deserves to be its own project.

I think getting help from the SC2 community in terms of hosting this website 
would be a good way to go, but whatever you want to do is fine.

If the size of the YABOT strings are an issue, we could just compress them with 
ZIP before uploading them.  But I don't think YABOT strings get that big, do 
they?

Original comment by mike.angstadt on 17 Nov 2010 at 3:40

GoogleCodeExporter commented 9 years ago
YABOT is basically a cut down version of the normal output string, still leaves 
a lot of room for optimization.

I think a user/pass should be needed to upload anything (and it has to go 
somewhere), so need to know where it's going to even begin writing it. Probably 
best to freeze it until EC has a website.

Original comment by kel.bolden@gmail.com on 25 Nov 2010 at 6:02

GoogleCodeExporter commented 9 years ago
I think that requiring a username and password in order to upload build orders 
would be nice because then you could associate a build order with the person 
who generated it.  But this feature could be pushed back until later.  What's 
most important is that it accepts YABOT build order strings, loads them into a 
database, and displays them somehow.  User authentication could be added later.

The web hosting service that I use to host my personal website supports PHP and 
MySQL.  If you need someplace put the application while it's being developed, 
let me know.

Original comment by mike.angstadt on 25 Nov 2010 at 5:55

GoogleCodeExporter commented 9 years ago
Issue 165 has been merged into this issue.

Original comment by mike.angstadt on 27 Nov 2010 at 5:37