Name of competition
I was under the impression that the official name of this competition was "TwinDuel", all one word (like RoboRumble is all one word). That's how it appears on the Main Page, and Voidious never complained. « AaronR « Talk « 21:16, 13 January 2008 (UTC)
- Hmm, I'm not sure I have a strong opinion either way. ;) We named a lot of things as one word like that on the old wiki because it auto-linked words with InterCaps, but that's not the case in MediaWiki. As a comparison, I think calling it "Wave Surfing" with a space now makes sense, but then again, old habits die hard. I just don't know! :-P Obviously, whichever it is, the other should forward to it anyway... --Voidious 18:58, 2 December 2008 (UTC)
I've had the Twin Duel on my mind a bit lately. Tonight I finally got around to looking at my tourney automation code, which has been broken for quite a while due to changes to the robocode.control API. (I ran the Twin Duel on Robocode 1.07 for a really long time.)
I was pleasantly surprised to see how easy it was to get the new control API working! I deleted several classes and a bunch of code and replaced it with just a few lines of new code. I ran quite a few tests and all is working well. So I can run Twin Duels again if there's interest. And with VoidBot, I could actually setup something to automatically upload the results to the wiki, too. =)
--Voidious 01:58, 7 August 2009 (UTC)
Ooh.. interesting... though I likely probably won't get involved in Twin Duel again any time shortly, as I really want to get my melee megabot out there and there's no way it could be adapted to Twin Duel. Still though, neat :) --Rednaxela 02:44, 7 August 2009 (UTC)
My offer still stands to help integrate TwinDuel into the rumble (as a new game type). The server side should be easy but the client will also need some changes. --Darkcanuck 05:27, 7 August 2009 (UTC)
- That would be awesome. I think it's a really cool format that could garner a lot of interest with its own rumble. There's so many non-standard rules for the Twin Duel that we should probably discuss which we might drop for the rumble version - I'll make a separate section for that. I'd be happy to look at the required client-side changes, but I'm not too familiar with that code as of now. --Voidious 13:54, 7 August 2009 (UTC)
- What I like on TwinDuel is that it is a tournament. It looks better for me than rumble-style, even though PL would be similar to. Because it is about luck too in tournament. If you are second to best team in PL, you might lose at the first if you met the best team. » Nat | Talk » 14:02, 7 August 2009 (UTC)
On my side I've been kind of sad I wasn't around for Twin Duel times, so I would probably do some work there before Melee or Team. But I have near to zero experience on both team and melee, so it will probably take me some time to get some decent working code. --zyx 07:13, 7 August 2009 (UTC)
- Yeah, it was definitely a lot of fun, especially when there was a lot of activity (like right when it started). It was really cool to see the rapid evolution of the metagame in a new format, something most of us (myself included) kind of missed out on for standard 1v1 / Melee. I'd also be interested in trying some other new formats if there's interest (Hat League has been discussed before). --Voidious 13:54, 7 August 2009 (UTC)
- I'd definitely be interested in joining Hat League. :) --Positive 14:48, 7 August 2009 (UTC)
Alright, I see no reason not to start running this again. It's OK if there's no new entries for a little while. Does anybody have a strong preference on the schedule? I think running it Thursday while I'm at work would be good for me. So deadline would be like Wednesday nights and results Thursday evenings. Thoughts? --Voidious 15:44, 10 August 2009 (UTC)
- I would like if you can start it now. I have Wednesday off this week, should be able to finish a team. » Nat | Talk » 16:07, 10 August 2009 (UTC)
I kicked off this week's tourney, and I'll post results when I get home. I kind of screwed up with the Robocode version. I wrote the automation to 1.7.*, but didn't want to use 126.96.36.199 because of onRobotDeath issues, but I now see that the 188.8.131.52 control API is different. I'm going to gamble and use 184.108.40.206-Alpha 8 this week, since it seems the best option. I'll scrutinize for funny results and delay/rerun if needed. Good luck all! --Voidious 12:43, 13 August 2009 (UTC)
Tourney is running now, I think I'll have the results up this evening. I had some strange Java/Robocode errors derailing it earlier and then couldn't wait to get things migrated to my new machine that arrived today. I'm not sure how much interest still exists for the tourney now that we have a rumble, but I'll keep running it until we decide otherwise... --Voidious 23:52, 20 August 2009 (UTC)
Darkcanuck has offered to help create a TwinDuelRumble. The weekly format has its own charm (and maybe we could keep it, too?), but having a real rumble would be awesome.
The Twin Duel has a few non-standard rules. (Until it's migrated, see oldwiki:TwinDuel.) We might want/need to change some of them for the rumble version.
- No writing to or reading from files is allowed.
- Survivalist / PL scoring. The score is based on survival firsts, and only win/loss (not score %).
- Battles are 75 rounds.
- Code Size < 2000. Obtained by running the code size utility on the team's .jar file.
- I say we just use the honor system for the file access rule, or drop it.
- Keep the code size limit the same.
- I say we keep the 75 round battles, but I don't see much problem with 35. One battle carries less weight in a rumble.
- The weird scoring is the big issue. The Twin Duel scoring doesn't match any of the current styles of rumble scoring. My ideal vision of the scoring would be:
- PL: Wins and losses based on survival firsts, not regular score or survival score. This would be the default ranking.
- APS: Based on survival firsts / total rounds instead of score / total score.
- Glicko-2/ELO: If included, based on the above style of APS.
What do you guys think?
--Voidious 15:39, 7 August 2009 (UTC)
That should works, I think. I like the honor system, there shouldn't much team in the rumble that we can't randomly check it. But I wonder about codesize, the client is hard-coded on that one. » Nat | Talk » 16:01, 7 August 2009 (UTC)
Ideally I don't want the scoring to get too exotic. I think replacing the "standard" APS with %survival firsts / # rounds should be ok; the PL scoring and Glicko2/ELO rankings would then follow from that using the existing algorithms. The client will need to be updated to do the codesize check (although this could be based on the honour system too). --Darkcanuck 16:13, 10 August 2009 (UTC)
- That would rock! I'm not sure what you mean by "too exotic", but what you describe sounds perfect and would be everything we need, imo. --Voidious 17:20, 10 August 2009 (UTC)
- Ok, I have the basics of this working on my test server. I've swapped the APS and survival scores so that survival is used for ELO/Glicko2/PL. No need to update the client after all, unless we want to add a codesize check. Can go live tonight if you want to give it a whirl... --Darkcanuck 16:37, 12 August 2009 (UTC)
- Sweet! I'm still not sure how the survival score works in team games (ie, if that's equivalent to "Survival Firsts"), I'll have to investigate. I should have some time tonight or tomorrow to do some testing. So I'd just configure a twinrumble.txt based on teamrumble.txt, modify to use 800x800 battlefield, different participants URL and temp files, 75 rounds, and (maybe?) point it at your test server? --Voidious 17:14, 12 August 2009 (UTC)
- "Survival Score" is to my understanding, is based on how many enemies that the bot lived to see the death of. In team matches, I think this means your score is better if both your bots are living at the end instead of just one. I also happen to know that LunarTwins scores exceptionally well in that regard ;) --Rednaxela 17:43, 12 August 2009 (UTC)
- All of the survival scores on the rumble server (existing games, that is) use the survival firsts, not the survival score. The client doesn't normally send the survival score, just the total score, bullet damage and survival firsts for each bot. There were some versions (post-220.127.116.11) that sent the score instead of the firsts but I filed it as a bug and it's since been fixed. Voidious, you bring up a good point as what counts as a "first" in team games, but this score adds up to 75 in my tests so I'd assume it's counted for the last bot standing of the winning team.
- I'm going to run a few more tests, then push this update to the live server. I'll post a twinduel.txt file and already have the participants list ready to copy into the wiki. Then you guys can play with it and if we need to make changes then we can flush the twinduel results and start fresh. --Darkcanuck 02:11, 13 August 2009 (UTC)
- Oh! I didn't realize it was all Survival 1sts in the rumble. That's great! Actually, my concern was not how Survival 1sts are handed out (my own tourney automation keys off them, too), but whether survival points are handed out as if each team were one entity (like a 1v1), or handed out per bot and then summed (like a 4-bot Melee). If it were the former, the survival score % would be equivalent to survival 1sts %. But anyway, it's moot. Really stoked about this - thanks Darkcanuck! --Voidious 03:12, 13 August 2009 (UTC)
It's live! If you want to try it out, the config file is here: twinduel.txt. Note that this file should not be renamed. Setup a batch/shell file similar to the existing ones and you're ready to go. Please don't try this if you're not an experienced rumble user -- this is still new and I don't really want to spend my next weekend cleaning up the database. Enjoy! --Darkcanuck 08:25, 13 August 2009 (UTC)
- Thanks again. =) Looks great. Love the new header navigation, too. Can't wait to get home and setup my rumble client. --Voidious 12:41, 13 August 2009 (UTC)
- Very nice Darkcanuck! I'll start running my rumble client on it now (and I promise not to try my ipod on this one :)). Hmm... revived interest in TwinDuel kind of makes me more interested in the idea of making LunarTwins better still, or perhaps making a more 'traditional' TwinDuel team. I really should get my melee megabot out on the field before I do that though... haha. --Rednaxela 12:44, 13 August 2009 (UTC)
- If this seems to be working ok, feel free to add it to your rumble "superpack". --Darkcanuck 03:15, 14 August 2009 (UTC)
One small bug I found: when you click on a team's details page, the Survival and APS are swapped from what they are on the rankings page. (Not sure if this affects the API, too.) --Voidious 14:54, 17 August 2009 (UTC)
- Thanks -- fixed that plus the labels were swapped in the compare view as well. Data-wise, TwinDuel stores the survival firsts % in the 'score_pct' field; the other rumbles use that field for APS. This allows all routines to operate on the same field (eg. ELO/Glicko calculation, PBI, etc). APS for TwinDuel actually goes into the 'score_survival' field since I figured you'd want to see it anyway. When the views are rendered, the labels for those rows/columns are changed depending on the rumble type. --Darkcanuck 15:41, 17 August 2009 (UTC)
The 2000 Club?
I wonder, LunarTwins has an ELO of 2082 now. Should we have The 2000 Club/Twin Duel? I'm not sure since this is a survival league, but I would like to have it. » Nat | Talk » 13:28, 14 August 2009 (UTC)
I was wondering this too. I'd use Glicko-2 instead of ELO, since the ELO will probably drift down like in the other rumbles. But there are so few teams right now... LunarTwins may not have 2000+ Glicko-2 in a few months. So maybe we should wait a bit. Also, I don't know how ratings will be viewed in the Twin Duel Rumble, since it was always defined as a win/loss type of format. Personally, I consider GeminiTeam the champion right now, since he beats every other team. Maybe we should have an Undefeated Club instead. =) --Voidious 13:40, 14 August 2009 (UTC)
I agree that we should be waiting before giving any club memberships. Also... well, Voidious, I know how to make a robust rumble ranking which is in roughly the same spirit as the old tournament format... I propose we move towards Schulze method ranking (a better explanation of it is here). I'll implement this in php some time (i.e. in a way that Darkcanuck would potentially plug into rumble some day?), and see how the schulze ranking would look with the pairings in the current TwinDuel Rumble (and maybe check out how other rumbles look with it too?). :) --Rednaxela 14:33, 14 August 2009 (UTC)
- Hmm, that would be really neat. At the same time, now that we have a real rumble, maybe people will be more interested in optimizing for (survival) score instead of just win/loss? If it happens naturally, I'd have no problem with that. It may even help to evolve the format, as "thrashing the weak" has evolved 1v1. Truly, LunarTwins is amazing in its level of dominance against so many bots... I'm not trying to downplay that. --Voidious 14:50, 14 August 2009 (UTC)
Speaking of thrashing the weak, adding twin duel to the rumble has demonstrated how easy it is to add new game types to the rumble (the only real work for twin duel was revising the scoring). It might be time to revisit the idea of an "elite" league: take the top 50 or 100 bots from the 1v1 rumble and see how they fare against each other, without inflated scores from destroying weaker bots. Or perhaps a "newbie" league? But then again, I should be working on my bots... --Darkcanuck 14:57, 14 August 2009 (UTC)
- Well, I personally think that a Schulze method ranking would be quite fair, and probably wouldn't inflate scores due to destroying weaker bots... but I'll try that with static data before I truly advocate including it in rumble. Speaking of which, it would be nice to be able to query pairing scores so I can test this with static data while minimizing the load on the server to obtain that data... :) --Rednaxela 15:20, 14 August 2009 (UTC)
- I forgot to comment here that the "elite" league still sounds like a really cool idea to me, though I certainly have plenty else to focus on for now. --Voidious 05:45, 17 August 2009 (UTC)
- A 'Robots only' league is also a possibility, although I am not sure if we can check if only robots (and no advancedrobots) are participating. --GrubbmGait 19:17, 17 August 2009 (UTC)
- I'd really love a haiku or femto league. :) Unfortunately they are hard to implement.. :( --HUNRobar 16:28, 1 September 2009 (UTC)