AiBattleground / BotWars

The AiBattleground website and NetBots Game Engine. Serves as an artificial intelligence challenge where AI bots can compete in programming game.
http://aibattleground.com
MIT License
5 stars 5 forks source link

Standalone Testing Project #9

Closed Pharylon closed 9 years ago

Pharylon commented 10 years ago

So, I was thinking today that what we really need is a standalone server app for bots. Even once we have "private" bots, that still won't be a perfect solution for testing because people need to be able to debug their bot, and that requires talking to localhost most of the time. The production server will never really fulfil that role.

So here's my idea.

Step 1: We open up some of the Host bot as an API. Create an ApiController that can take a gamestate object and PlayerMove objects and resolve the moves and return the new GameState object. Probably a few other API calls will be necessary that I'm not thinking about right now too.

Step 2: Create a .exe app or maybe just a static web page that people can download that calls this API. This app/page would allow you to test locally. So no one needs a copy of the server code, or needs to worry about doing Migrations and other fairly advanced things just to get a simple test environment going. Or even needs Visual Studio if they (for instance) want to write their own bot in Javascript or Python or whatever.

I'm willing to do this, and I think it's pretty much necessary. So I'm giving notice that I'm about to start working on this and looking for any ideas/feedback before I really get underway.

Dubman25 commented 10 years ago

I think you have identified a solid need, but I'd like to discuss the challenge more in depth to make sure we're in sync on the issue.

Assuming we're talking about the same need, there are several ways to solve this problem. I think we should discuss those options before building anything.

I think we can take the time to do that, because, in my opinion, the proposed release schedule wouldn't call for the functionality you are describing for another week or two. I think everyone building a bot now is comfortable working against the server code in the short run.

'What proposed release schedule?', you ask. Last night Smiles, Patrick and I hashed out a potential schedule for the next 5 weeks and identified milestones, which should now be in GitHub. The milestones are still up for discussion, but time is tight between now and Tuesday.

The milestones describe a fair amount of work we need to get done between now and Tuesday, in order to get the entire program launched right and build momentum.

I think we should focus on those tasks now, discuss architecture and design after Tuesday, and build out some of the capability Zack is describing after those discussions. How does that sound?

Keith

On Oct 31, 2014, at 1:57 PM, Pharylon notifications@github.com wrote:

So, I was thinking today that what we really need is a standalone server app for bots. Even once we have "private" bots, that still won't be a perfect solution for testing because people need to be able to debug their bot, and that requires talking to localhost most of the time. The production server will never really fulfil that role.

So here's my idea.

Step 1: We open up some of the Host bot as an API. Create an ApiController that can take a gamestate object and PlayerMove objects and resolve the moves and return the new GameState object. Probably a few other API calls will be necessary that I'm not thinking about right now too.

Step 2: Create a .exe app or maybe just a static web page that people can download that calls this API. This app/page would allow you to test locally. So no one needs a copy of the server code, or needs to worry about doing Migrations and other fairly advanced things just to get a simple test environment going. Or even needs Visual Studio if they (for instance) want to write their own bot in Javascript or Python or whatever.

I'm willing to do this, and I think it's pretty much necessary. So I'm giving notice that I'm about to start working on this and looking for any ideas/feedback before I really get underway.

— Reply to this email directly or view it on GitHub.

Pharylon commented 10 years ago

Yeah, I saw the Milestones. I'm thinking this is a Milestone 2 item, definitely not a Milestone 1 item. In fact, I already assigned it to Milestone 2. ;) Does that sound about right to you?

Also, it's "Zach" or "Pharylon" But not "Zack." Never Zach with a K! :p

Dubman25 commented 10 years ago

Sorry about the name. I'm thinking we want this in for the* Workshop 1* milestone (I'm assuming that's what you mean by Milestone 1), but that still gives us a fair amount of time.

There were a number of other tasks to get done for Tuesday that we're directly related to coding, like putting a bunch of info up on the Web Server so people can read about the tournament schedule, the levels of competition and the rules of the game. I didn't see these items as tasks in GitHub.

Patrick, are we tracking those items somewhere else? Or am I missing them?

Zach, how about Xax?

Dub

On Fri, Oct 31, 2014 at 4:02 PM, Pharylon notifications@github.com wrote:

Yeah, I saw the Milestones. I'm thinking this is a Milestone 2 item, definitely not a Milestone 1 item. In fact, I already assigned it to Milestone 2. ;) Does that sound about right to you?

Also, it's "Zach." I'm also good with "Pharylon." But not "Zack." Never that! :p

— Reply to this email directly or view it on GitHub https://github.com/Pabreetzio/BotWars/issues/9#issuecomment-61322191.

Pharylon commented 10 years ago

I like Xax. :)

Yeah, I meant Workshop 1.

As for Tuesday, just give me a direction and I'll go. I just need some marching orders. ;) Like, I literally don't even know what you guys have planned as the difference between a "Battle" and a "Skirmish." Last time I tried to get one-shot battles working, I just merged the Skirmish stuff into the Battle Controller. But I guess you wanted Skirmishing separate in the Home controller for some reason? I'm not saying that's wrong, I'm saying I don't want to muss anything else up by me not understanding. So tell me what to do, and I'll do it.

Dubman25 commented 10 years ago

I think if you, Xax, concentrate on the outstanding code items, Patrick and I can get the info pages and marketing stuff ready.

Code wise we have the following left to do:

Allow Users to Register Bots (I think this is done) Mark Game End / Declare Winner (still to do) Skirmish Screen (see below)

I think Patrick's idea was that the Battle Screen would be where a battle takes place, just the Battle itself. Anytime you reach the screen, whether from a Skirmish or a Tournament, the combatants have already been chosen. On the Battle screen you just click Fight and watch the action. The Skirmish screen would be where the user can set up a one time test fight (which wouldn't count against your record). I think the skirmish action can be left in the Battle controller. * Patrick, does that sounds like what you were aiming for?*

Assuming Patrick is cool with that, does it sound like a plan?

Then of course we need bots. Here's what I think we'll end up with:

Top Level

Keith - Divide by 0, QBot Patrick - GrahamBot Xax - PharlyonBot

Mid-Level

Smiles - FrownBot Steven Shepherd - SheepBot Joel - SpolskyBot Ben - GalacticJunkInTheTrunkBot

Entry-Level

Random Bezerk StraightShot LongWayAround

Dub

On Fri, Oct 31, 2014 at 5:58 PM, Pharylon notifications@github.com wrote:

I like Xax. :)

Yeah, I meant Workshop 1.

As for Tuesday, just give me a direction and I'll go. I just need some marching orders. ;) Like, I literally don't even know what you guys have planned as the difference between a "Battle" and a "Skirmish." Last time I tried to get one-shot battles working, I just merged the Skirmish stuff into the Battle Controller. But I guess you wanted Skirmishing separate in the Home controller for some reason? I'm not saying that's wrong, I'm saying I don't want to muss anything else up by me not understanding. So tell me what to do, and I'll do it.

— Reply to this email directly or view it on GitHub https://github.com/Pabreetzio/BotWars/issues/9#issuecomment-61337126.

Pharylon commented 10 years ago

If that's what you want, I can do it!

Dubman25 commented 10 years ago

I'm cool with it. Let's wait for Patrick to weigh in.

On Fri, Oct 31, 2014 at 6:37 PM, Pharylon notifications@github.com wrote:

If that's what you want, I can do it!

— Reply to this email directly or view it on GitHub https://github.com/Pabreetzio/BotWars/issues/9#issuecomment-61340310.

Pabreetzio commented 10 years ago

Yeah I definitely want to have a standalone bot testing ground for beginning development on a bot that doesn't need a database to be stood up. It should wait till after this Tuesdays milestone of a deep diver tournament, though. End game detection with winner declaration is at the top of the list for most pressing.

The skirmish screen and battle screen are a bit confusing right now, because we haven't fleshed out the feature set were aiming at and assigned them to screens, we just have a general idea that the features will need to be broken up. Battle is for viewing matches. We need to be able to create matches and sets of matches, skirmish is for creating single matches. We may have another page for creating sets of matches, which we'll probably just refer to as tournaments.

I'll do a writeup on the Github wiki on these details and others and then we can modify them there as they change and refer to it when new developers who wish to help want to know what should be developed where.

Pharylon commented 10 years ago

Alright, I'm going to get to work on setting the Battle and Skirmish stuff up like you described today. I think I have a good idea how to implement it.

Dubman25 commented 10 years ago

Sounds good.

On Sat, Nov 1, 2014 at 9:52 AM, Patrick Graham notifications@github.com wrote:

Yeah I definitely want to have a standalone bot testing ground for beginning development on a bot that doesn't need a database to be stood up. It should wait till after this Tuesdays milestone of a deep diver tournament, though. End game detection with winner declaration is at the top of the list for most pressing.

The skirmish screen and battle screen are a bit confusing right now, because we haven't fleshed out the feature set were aiming at and assigned them to screens, we just have a general idea that the features will need to be broken up. Battle is for viewing matches. We need to be able to create matches and sets of matches, skirmish is for creating single matches. We may have another page for creating sets of matches, which we'll probably just refer to as tournaments.

I'll do a writeup on the Github wiki on these details and others and then we can modify them there as they change and refer to it when new developers who wish to help want to know what should be developed where.

— Reply to this email directly or view it on GitHub https://github.com/Pabreetzio/BotWars/issues/9#issuecomment-61368802.

Pharylon commented 9 years ago

Done.