Server Help Forum Index Server Help
Community forums for Subgame, ASSS, and bots
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   StatisticsStatistics   RegisterRegister 
 ProfileProfile   Login to check your private messagesLogin to check your private messages   LoginLogin (SSL) 

Server Help | ASSS Wiki (0) | Shanky.com
MervGen
Goto page 1, 2  Next
 
Post new topic   Reply to topic Printable version
 View previous topic  AnimationToImages Post :: Post Subspace Offline (AI)  View next topic  
Author Message
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Fri Feb 02, 2007 10:51 pm    Post subject: MervGen Reply to topic Reply with quote

MervGen is a visual tool for creating Merv-based bots. Bots have many common design patterns (timers, votes, ship constraints, etc) that are then mixed and matched to create specific event bots. Since my master's thesis is on automatic program generation, and I was very bored for a couple weeks over winter break, I thought I'd give this project a shot.

I had been holding back on posting this, since it's still very early in the development process. However, I'm currently busy with my real life projects so I don't have much time to work on this, which is unfortunate because I think it's a really good idea.

So I'm going to adopt the Google method and just post the last stable build here, and label it a beta version for now. :)

Current Functionality in bold
Partial functionality (though not released yet) in italics
No functionality (or no design in mind yet) in regular text

Features MervGen Supports:
- Loading files from variables (will create a stub .ini as well)
- Votes (call method "startVote_name()" to start it)
- Timers (set it to value > -1 to start, will call name_Done() when timer reaches 0)
- Stats tracking, including creating variables that can be used later in the tool
- Ship Constraints, (I have functionality for this, but I think I need to rework the general approach)
- Team size constraints
- Team/Arena starting positions
- Sequential starting actions
- Custom triggers (i.e. powerful event->action statements)
- Specifying ending conditions

Any input you guys have is really appreciated. Also, bug reports are welcome, but keep in mind only the bold parts should be bug-free. If you notice any better way to do one of the patterns, let me know.

MervGen Website

Trigger Editor Features (idea list)
Teams:
- Team 0
- Team 1
- Team 2
- ...
- Team 10
- Any Team

Conditions:
- team/player enters region
- timer reaches time
- team/player controls boolean operator amount flags

Actions:
- Grant prize to team/player
- Grant amount points to team/player
- Reset timer




MervGenerator.zip - 29.17 KB
File downloaded or viewed 61 time(s)


Last edited by tansey on Wed Feb 07, 2007 7:55 pm, edited 3 times in total
Back to top
View users profile Send private message Add User to Ignore List
D1st0rt
Miss Directed Wannabe


Age:36
Gender:Gender:Male
Joined: Aug 31 2003
Posts: 2247
Location: Blacksburg, VA
Offline

PostPosted: Sun Feb 04, 2007 3:27 am    Post subject: Reply to topic Reply with quote

Wow, I thought I there was only one other person that played this game in Blacksburg...

This looks interesting btw, I don't suppose I could convince you to switch to either TWCore or ASSS eh?
_________________

Back to top
View users profile Send private message Add User to Ignore List Visit posters website
Chambahs
Power attack
Power attack


Joined: Jun 19 2005
Posts: 820
Offline

PostPosted: Sun Feb 04, 2007 7:43 am    Post subject: Reply to topic Reply with quote

"However, I'm currently busy with my real life projects so I don't have much time to work on this, which is unfortunate because I think it's a really good idea."
Back to top
View users profile Send private message Add User to Ignore List
CypherJF
I gargle nitroglycerin


Gender:Gender:Male
Joined: Aug 14 2003
Posts: 2582
Location: USA
Offline

PostPosted: Sun Feb 04, 2007 10:13 am    Post subject: Reply to topic Reply with quote

I had this idea too so glad someone else had the time to develop this type of application!
_________________
Performance is often the art of cheating carefully. - James Gosling
Back to top
View users profile Send private message Add User to Ignore List
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Mon Feb 05, 2007 11:06 am    Post subject: Reply to topic Reply with quote

D1st0rt wrote:
Wow, I thought I there was only one other person that played this game in Blacksburg...

This looks interesting btw, I don't suppose I could convince you to switch to either TWCore or ASSS eh?


Glad there's another fellow hokie on here. =)

I've never used either of the other APIs. What would be nice is a uniform approach that could make it easy to convert this to any API (relatively) quickly.

The current implementation is just a quick-and-dirty proof of concept that can get a few features up and running, however it doesn't generate particularly readable code. I think a better way to go might be to make a general library addition then generate a smaller, better structured file which is used in conjunction with the library. Seems like that would make things easier for everyone.

I expect that over the summer I'll have time to refactor all of the code. For now, it's kind of just a good idea and a proof of concept. I'm interested more in feedback and ideas/criticisms.

P.S. d1st0rt--are you a CS major/grad student?
Back to top
View users profile Send private message Add User to Ignore List
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Mon Feb 05, 2007 11:10 am    Post subject: Reply to topic Reply with quote

CypherJF wrote:
I had this idea too so glad someone else had the time to develop this type of application!


Just the opposite, sadly. I don't have the time to develop it, as I'm working right now on generating MPI code for high performance compute clusters, which is really killing me.

Maybe a better way to do this would be to create a plug-in architecture and just let people write their own bits of code?

Nice Gosling quote btw. =)
Back to top
View users profile Send private message Add User to Ignore List
D1st0rt
Miss Directed Wannabe


Age:36
Gender:Gender:Male
Joined: Aug 31 2003
Posts: 2247
Location: Blacksburg, VA
Offline

PostPosted: Mon Feb 05, 2007 1:18 pm    Post subject: Reply to topic Reply with quote

I'm a sophomore CS minor (majoring in mechanical)

I can't currently think of an easy way to swap out APIs, following conventions in each core would probably require a complete code generator for each.
Back to top
View users profile Send private message Add User to Ignore List Visit posters website
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Mon Feb 05, 2007 4:08 pm    Post subject: Reply to topic Reply with quote

D1st0rt wrote:
I'm a sophomore CS minor (majoring in mechanical)

I can't currently think of an easy way to swap out APIs, following conventions in each core would probably require a complete code generator for each.


Well I can easily generate an XML file representation of what needs to be generated. Maybe I'll look into the ASSS code, but DSB uses Merv, so that's my primary target platform.
Back to top
View users profile Send private message Add User to Ignore List
CypherJF
I gargle nitroglycerin


Gender:Gender:Male
Joined: Aug 14 2003
Posts: 2582
Location: USA
Offline

PostPosted: Mon Feb 05, 2007 5:46 pm    Post subject: Reply to topic Reply with quote

tansey wrote:
[..]
...
Nice Gosling quote btw. =)


Thank-you, I love his blog. biggrin.gif
Back to top
View users profile Send private message Add User to Ignore List
Cerium
Server Help Squatter


Age:41
Gender:Gender:Male
Joined: Mar 05 2005
Posts: 807
Location: I will stab you.
Offline

PostPosted: Mon Feb 05, 2007 5:50 pm    Post subject: Reply to topic Reply with quote

Neat project. If you really want to help the non-developers, look at the trigger system in Blizzard's RTS games. If you implemented something like that... damn.
_________________
There are 7 user(s) ignoring me right now.
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Animate Dreams
Gotta buy them all!
(Consumer whore)


Age:36
Gender:Gender:Male
Joined: May 01 2004
Posts: 821
Location: Middle Tennessee
Offline

PostPosted: Mon Feb 05, 2007 5:56 pm    Post subject: Reply to topic Reply with quote

Cerium wrote:
Neat project. If you really want to help the non-developers, look at the trigger system in Blizzard's RTS games. If you implemented something like that... damn.


You're basically talking about a new bot-core now, I think. Although, couldn't this conceivably be done(with a complete recode) in AS3?
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website AIM Address MSN Messenger
CypherJF
I gargle nitroglycerin


Gender:Gender:Male
Joined: Aug 14 2003
Posts: 2582
Location: USA
Offline

PostPosted: Mon Feb 05, 2007 6:43 pm    Post subject: Reply to topic Reply with quote

Cerium wrote:
Neat project. If you really want to help the non-developers, look at the trigger system in Blizzard's RTS games. If you implemented something like that... damn.
Blizzard maps/triggers were pretty sweet back in Starcraft/Warcraft. Haven't played anything new lately from them.
Back to top
View users profile Send private message Add User to Ignore List
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Mon Feb 05, 2007 6:55 pm    Post subject: Reply to topic Reply with quote

Cerium wrote:
Neat project. If you really want to help the non-developers, look at the trigger system in Blizzard's RTS games. If you implemented something like that... damn.


Link?
Back to top
View users profile Send private message Add User to Ignore List
Animate Dreams
Gotta buy them all!
(Consumer whore)


Age:36
Gender:Gender:Male
Joined: May 01 2004
Posts: 821
Location: Middle Tennessee
Offline

PostPosted: Mon Feb 05, 2007 8:11 pm    Post subject: Reply to topic Reply with quote

CypherJF wrote:
[..]

Blizzard maps/triggers were pretty sweet back in Starcraft/Warcraft. Haven't played anything new lately from them.


New? The only thing Blizzard has done since then is World of Warcraft.
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website AIM Address MSN Messenger
CypherJF
I gargle nitroglycerin


Gender:Gender:Male
Joined: Aug 14 2003
Posts: 2582
Location: USA
Offline

PostPosted: Mon Feb 05, 2007 8:33 pm    Post subject: Reply to topic Reply with quote

Animate Dreams wrote:
[..]
New? The only thing Blizzard has done since then is World of Warcraft.


Ah good I'm not that old then. icon_smile.gif
Back to top
View users profile Send private message Add User to Ignore List
Cerium
Server Help Squatter


Age:41
Gender:Gender:Male
Joined: Mar 05 2005
Posts: 807
Location: I will stab you.
Offline

PostPosted: Mon Feb 05, 2007 10:23 pm    Post subject: Reply to topic Reply with quote

tansey wrote:
[..]
Link?


None required, really.

This is something I wanted to implement long ago, but I was too inexperienced at the time. It would be very cool to see this finished. May even breathe some new life into this dying game.

Basically, the system worked something like this:
There was a dropdown list of actions. Like "player moves to ____" and upon selection, the user would fill in the blank. In the case of Starcraft or Warcraft, the blank would be the name of a region on the map.
Anyway, after the action was set, the reaction would be set, based off another dropdown list of actions. The language that was used in all of the action/reaction sets was plain english. No symbols or programming lingo.

The key here is that each "trigger" could have multiple actions/reactions. It was a very simplistic system that everyone could adapt to quickly without any programming experience, but could still make powerful maps and subevents.

Some examples that could be good for SS (The underlined text represents sub-options the user would select after choosing the action/reaction):

any player enters region region1 -> grant prize fullcharge to active player
Timer timer1 reaches 5 seconds AND team1 controls atleast 2 flags -> grant 500 points to team1; reset timer timer1



Edit:
Some images of the GUI from Starcraft can be viewed here: http://hybrid.shanky.com/sctriggers
Back to top
View users profile Send private message Add User to Ignore List AIM Address
L.C.
Server Help Squatter


Age:33
Gender:Gender:Male
Joined: Jan 03 2003
Posts: 574
Location: Missouri, US
Offline

PostPosted: Mon Feb 05, 2007 10:46 pm    Post subject: Reply to topic Reply with quote

Now that's cool. biggrin.gif Almost just like pseudonyms (right? icon_surprised.gif).
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website AIM Address Yahoo Messenger MSN Messenger
Samapico
No, these DO NOT look like penises, ok?


Joined: May 08 2003
Posts: 1252
Offline

PostPosted: Mon Feb 05, 2007 11:25 pm    Post subject: Reply to topic Reply with quote

im guessing in the case of asss this could all be converted to region code?

that would be a cool thing to do in DCME tongue.gif
_________________
(Insert a bunch of dead links here)
Back to top
View users profile Send private message Add User to Ignore List
Animate Dreams
Gotta buy them all!
(Consumer whore)


Age:36
Gender:Gender:Male
Joined: May 01 2004
Posts: 821
Location: Middle Tennessee
Offline

PostPosted: Tue Feb 06, 2007 12:59 am    Post subject: Reply to topic Reply with quote

Samapico wrote:
im guessing in the case of asss this could all be converted to region code?


Er, um... the region related ones, I suppose. But I think it would be a bit broader than that, I'm sure it would be very similar to callbacks in AS3, only with a GUI to create them. It sounds like a great idea, but even with the existing callbacks in AS3, I'm sure it would be a ton of work. You also have to think, the first time you compile a new AS3 module, you probably get tons of errors. I think things would have to be quite a bit different for that to ever work. Really nice idea, though....
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website AIM Address MSN Messenger
Cerium
Server Help Squatter


Age:41
Gender:Gender:Male
Joined: Mar 05 2005
Posts: 807
Location: I will stab you.
Offline

PostPosted: Tue Feb 06, 2007 3:10 pm    Post subject: Reply to topic Reply with quote

Ideally, the module itself wouldn't be written for each bot, rather than there would be a single module which reads a script that the GUI creates.
Back to top
View users profile Send private message Add User to Ignore List AIM Address
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Tue Feb 06, 2007 11:57 pm    Post subject: Reply to topic Reply with quote

Cerium wrote:
The key here is that each "trigger" could have multiple actions/reactions. It was a very simplistic system that everyone could adapt to quickly without any programming experience, but could still make powerful maps and subevents.


Very interesting program from the snapshots. I suggested the multi-reaction idea on the MervGen website (that's what the '+' buttons are for in the screen shots), but I like the way they did it in the SC editor a lot better.

I think maybe I was trying to be a little too ambitious by allowing complete generation of any bot. Maybe a (large) subclass would be better if it allows for a more intuitive interface.

I would certainly be willing to work on something like the SC trigger editor if we could flesh out the details. Maybe we could start a list of different Player, Action, and Condition parameters. I'll keep a running tab at the the original post for this thread.
Back to top
View users profile Send private message Add User to Ignore List
Smong
Server Help Squatter


Joined: 1043048991
Posts: 0x91E
Offline

PostPosted: Wed Feb 07, 2007 4:47 am    Post subject: Reply to topic Reply with quote

Cerium wrote:
Some examples that could be good for SS (The underlined text represents sub-options the user would select after choosing the action/reaction):

any player enters region region1 -> grant prize fullcharge to active player
Timer timer1 reaches 5 seconds AND team1 controls atleast 2 flags -> grant 500 points to team1; reset timer timer1
This layout reminds me of mail filters. I think a code generator like this could be made to work for all bots and asss. You would still need a compiler and header files, which some people are going to have problems setting up. Having a bot/asss plugin read the file and do everything dynamically just sounds a bit flaky and complex.
_________________
ss news
Back to top
View users profile Send private message Add User to Ignore List Visit posters website MSN Messenger
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Wed Feb 07, 2007 9:50 am    Post subject: Reply to topic Reply with quote

Smong wrote:
[..]

You would still need a compiler and header files, which some people are going to have problems setting up. Having a bot/asss plugin read the file and do everything dynamically just sounds a bit flaky and complex.


If people have visual studio installed (for Merv at least), we can invoke the compiler inside the program, so all they'll get is a DLL.
Back to top
View users profile Send private message Add User to Ignore List
tansey
Novice


Joined: Nov 03 2004
Posts: 53
Offline

PostPosted: Wed Feb 07, 2007 7:57 pm    Post subject: Reply to topic Reply with quote

I updated the OP with a list of the features suggested so far, how about some more?

Think of events you've created and/or want to create, and the triggers they would use.
Back to top
View users profile Send private message Add User to Ignore List
Samapico
No, these DO NOT look like penises, ok?


Joined: May 08 2003
Posts: 1252
Offline

PostPosted: Wed Feb 07, 2007 8:57 pm    Post subject: Reply to topic Reply with quote

teams Even / Odd could be used for some balling games

team/player enters region
could even be
team/player enters region
'enters' could be replaced by 'leaves' or by
'is in' [...] 'for / every' value 'seconds / minutes..etc'

But I guess that,s mostly an interface issue... whether to show 'enters' , 'leaves', etc. as all individual actions, or show a 'regions:' category, in which you can choose the verb

Same thing could apply to about every condition created
Back to top
View users profile Send private message Add User to Ignore List
Display posts from previous:   
Post new topic   Reply to topic    Server Help Forum Index -> Misc User Apps All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum
View online users | View Statistics | View Ignored List


Software by php BB © php BB Group
Server Load: 679 page(s) served in previous 5 minutes.

phpBB Created this page in 0.522016 seconds : 52 queries executed (86.8%): GZIP compression disabled