Talk:Main Page
For old discussion, see Archived talk:Main Page 20110903.
- [View source↑]
- [History↑]
Contents
Thread title | Replies | Last modified |
---|---|---|
New Rumble Categories | 8 | 13:16, 16 January 2023 |
is wiki css broken? | 7 | 21:58, 3 March 2019 |
Robocode IRC | 9 | 17:48, 12 October 2018 |
Old RoboWiki is down | 0 | 17:15, 17 September 2017 |
Wiki spam | 4 | 01:33, 25 August 2017 |
Spamming attack, reconsider account creation | 3 | 13:50, 24 August 2017 |
Robocode Online Web Application - what do You think? | 26 | 01:03, 30 June 2015 |
Code of Tanks: 3-D PvP Tank Battle Game for Programmers | 0 | 19:41, 27 June 2015 |
Recent Downtime | 1 | 14:35, 11 June 2014 |
Wiki back online | 0 | 22:32, 8 January 2014 |
Running Error - Robot is not stopping, forcing a stop | 1 | 17:19, 7 December 2013 |
MediaWiki update | 6 | 03:56, 18 October 2013 |
NodeWar, Code & Conquer | 0 | 16:06, 5 September 2013 |
First page |
Previous page |
Next page |
Last page |
Time-based Rumble Types Proposal
The conversation is about the possibility of adding new rumble types in Robocode that are limited by time per tick instead of code size. Some participants suggest that this would encourage bots to make more time tradeoff decisions and could potentially lead to more diverse strategies. However, there are concerns about how to categorize these bots and the difficulty of accurately measuring time per tick. Some suggest using a fixed tick time competition, while others point out that the Robocode engine's control over CPU time is not precise enough for this task. There is also mention of the possibility of using Java bytecode instrumentation to assign fixed costs to different Java bytecode instructions, but this is seen as too complicated to implement.
-- ChatGPT
I don't think code size is a good limiter for different rumble types, because it forces people to do all sorts of tricks which results in very difficult to understand code. In addition, code size is so small compared to memory now that it hardly seems relevant in most cases. What if new rumble types were added where time per tick is the limiting factor: QuickRumble, with half the time, FastRumble 1/4, HyperRumble 1/8, SlowRumble 2x, etc. (Names are arbitrary) This would mean bots in faster rumbles would have to make more time tradeoff decisions, (less precise prediction? more approximate GFs?), and perhaps bots in slower rumbles could find a use for non-KNN classification schemes that required more time. What do you think?
Tick time size sound like a fantastic idea, I think robocode has some built in constants which potentially can be tweaked for time based rumbles.
But, I would still keep size based categories. I personally amazed how much can be squeezed into small code. It is indeed unreadable, but they set a bar and send a strong hint to me when those little gizmos level my megabot.
The problem is categorizing them. Right now they are automatically sorted into the categories, since codesize is a compile time constant. However time limiting is a run time value. You would have to run a number of battles to place a robot. Even then you need to decide if something that is under the certain limit 99.9% of the time but over 0.1% of the time should be in which category, and so forth.
Well, we can make a time tick fixed competitions. Every one participate but bots which designed with time constrains in mind will sort to the top by themselves.
I think it is analogous to current size based system: nano bots participate in mega bots competitions and have good chances, but it is not true in reverse. Though here we can participant selection in advance.
So all we need is good tick measure, which is not that easy with current CPU which tend to throttle and boost their performance.
The problem I have with this idea, is that the Robocode engine's control over CPU time is far too approximate for that task.
The nature of such a league is to encourage people to push the limit of the alotted CPU time, however one can expect the calibration of CPU time to be off by wide margins between different computers, or even different runs on the same computer.
If one wants to have a league where the CPU time is a primary design constraint for bots, we need an engine with more precise management of this, such as by using Java bytecode instrumentation to assign fixed costs to different Java bytecode instructions... but that... that gets very complicated to implement.
When I look at discussion threads, I do not see anymore separate post highlighting? The whole discussion with action links now looks like one a single continuous stream.
Does anyone else experience it?
I experienced the same bug two weeks ago. But it seems fixed for me now, even though I didn't do anything.
Perhaps it's an intermittent issue?
I have a theory about the root cause of the problem, but I need more data to confirm.
Can someone experiencing this issue please open the browser console (F12 -> Console tab), and post the contents of it? Also, which browser are you using?
If I my idea is right, you should see Uncaught ReferenceError: jQuery is not defined
.
Same here. That's why I suspect the cause is js resources. However this issue seems to happen some time, and disappear some time. Maybe browser caches that once it successfully loads.
I see something else in Firefox:
SyntaxError: illegal character load.php:1:190
When I go to
After character 190 it is a bunch of strange characters. I guess something was corrupted on the database?
It seems there are two separate problems then.
Everyone who sees Uncaught SyntaxError: Invalid or unexpected token
is:
- Using Monobook (the default skin), either by choice or by not being logged in.
- Experiencing this problem continuously.
- The root cause is that this script, which should contain jQuery and MediaWiki frontend code, has parts of it overwritten with 155648 0x00 bytes.
- Because that script does not parse, the loading process is broken.
- This probably requires a server-side fix.
- People seeing this: Skilgannon
Meanwhile, everyone who sees Uncaught ReferenceError: jQuery is not defined
is:
- Using the Vector skin.
- Using Chrome.
- Experiencing this problem intermittently.
- For the Vector skin, this script, which contains jQuery and MediaWiki frontend code, it perfectly fine.
- However, that script is loaded by this script through document.write() of a <script> tag.
- Chrome is known to block the use of document.write() to load scripts on slow Internet connections.
- Thus, since the script that contains and exposes jQuery is not loaded, other code that depends on it errors with
Uncaught ReferenceError: jQuery is not defined
. - Possible fix: Go to chrome://flags, set "Block scripts loaded via document.write" to "Disabled", and restart your browser.
- People experiencing this: Xor and past me
The channel from the old wiki is decidedly dead. Is there a new one? I can't find one on any network.
If not, I'm on FreeNode.net/#robocode, I can transfer ownership of the channel to an appropriate veteran if one joins it.
Whilst the wiki discussion thing is good for serious robocode questions and things which require the persistency of a wiki, I think having a place to chill out and talk robocode more casually might be nice. Especially for things like bouncing ideas around and getting more instant feedback on things.
What are other robocoders thoughts/opinions?
I think part of me is still struggling to associate a wiki with quick responses... :P
ok, maybe I can't transfer ownership (it's already owned by someone?) but I can idle in there quite happily until someone else pops along :)
according to freenode's FAQ, the channel #robocode is under silly regulations, and we should use ##robocode instead, unless we can complete a "group registration" in order to secure #robocode (failing being able to contact Chase-san, who is the current "founder" of #robocode).
The upshot of this is that ##robocode is the channel I will be idling in (as well as #robocode, just in case anybody shows up there), and my recommended channel to join (unless you know who Chase-san is, or can navigate around freenode's bureaucracy)
What about me?
The reason I don't keep up the robocode IRC is that no one really ever went in there.
I used to love to hang around in IRC channels. But these days, I don't really have a good time to do it. I can't do it at work, and at home the only time I spend on my computer anymore is when I'm actually working on my robot. The rest of the time, I'm doing family activities, chores, doing home improvement projects, etc. I suppose I could fire it up during the periods when I sneak off to the bedroom to get in some Robocoding time. That would be mostly between 10pm and 1am central time, but not every day.
Sorry, Chase-san, I presumed because the IRC channel hadn't been visited in ages you might be a retiree from robocode.
If we can fire up the channel again, that would be good for people who enjoy it. Since Chase-san clearly does still exist, I'll drop the ##robocode and just idle in #robocode in that case. If anybody wants to join me, they can feel free, if not, that's cool also. I don't lose anything by idling in there (I'm already idling in ##java) so it's no biggy to add another chan. :)
While we are in the process of transferring to new littlerumble accepted clients, it make sense to revive irc channel for faster communication.
I am hanging on FreeNode.net/#robocode and will be happy to talk to you all.
I'm idling on both ##robocode and #robocode, ##robocode does not have an owner and i did not register it.
Been on a very, very long hiatus from Robocode. Got really pissed off that I lost my excellent robot, Thor, and just abandoned everything.
I am the channel owner of FreeNode.net/#robocode and I'll be there over the next few days while I try (probably in vain) to recreate my fancy targeting algorithm.
The old RoboWiki is offline. Accessing it produces 500 Internal Error.
Is anyone else seeing this problem? Does this happen often? Does anyone need to be contacted?
Never mind.
Please nuke these users: Special:Contributions/Dfsdf, Special:Contributions/Ghfdhfg, Special:Contributions/Yifaput4, Special:Contributions/Lericuxi12345, Special:Contributions/Jfnjdf, and Special:Contributions/Dsgdfhg.
Edit: See Thread:User talk:Skilgannon/Spam bot invasion instead.
Also, a better CAPTCHA is needed, MathCaptcha is too easy.
I think a question-based CAPTCHA would work. Questions such as:
- Q: "Name a sample bot." A: One of ["Corners", "Crazy", "Fire", "Interactive", "Interactive_v2", "MyFirstRobot", "MyFirstJuniorRobot", "PaintingRobot", "RamFire", "SittingDuck", "SpinBot", "Target", "TrackFire", "VelociRobot", "Walls"]
- Q: "Name a robot base class." Q: One of ["Robot", "JuniorRobot", "AdvancedRobot", "TeamRobot"]
- Q: "What is the default battlefield size (WIDTHxHEIGHT)?" A: "800x600"
- Q: "What is the default number of rounds?" A: "10"
- Q: "What is the name of the sample bot in the 'samplesentry' package?" A: "BorderGuard"
etc.
I like the question based CAPTCHA. I have a low profile wiki where it is enabled for registration, and questions keeps spamers away...mostly. From time to time there is a renegade human who reveal the answer, and spam bots invade. But than I change the question. Last time I changed it was more than a year ago.
Another good measure would be to put all messages from newly registered users in a pre-moderated pool until they prove themselves.
Overall, I think our fort is holding, we just need a way to summon admins a bit faster.
Due to the recent (May 23 - May 31) spam attack, maybe whe should reconsider the process of creating a user account. Alas I have no idea how to change that, some someone (wiki-host ?) should take some action here. Note that 'Main Page' is redirected to 'Robowiki:Main Page', and I don't know how to revert that.
Thanks for reverting so much of the spam, GrubbmGait! I've disabled account creation for now and I'll fix the main page redirect. Still not sure what we should do longer term, but I'm sure there are options... I'll try to look into it this week.
Another spam attack happened today.
Blocking some accounts, cant do more from a tablet whole on holiday
Hey ho!
I was wondering: why there is no serious website, where You can upload your bots, create rankings and tournaments and just battle. Rumble is fine, but be serious - it's has a few functionalities and it's NOT user friendly.
There is a question to all of You: do You want to have such web application? Possibility of uploading bots, instant fights, rankings, tournaments etc...
What would You expect from such application?
I am thinking about gathering a team. With that team we could create a nice webapp.
Guys, please think about it. share Your feelings and thoughts.
/skiba
I've thought about this lately, particularly after implementing a web UI for my own programming game. I have a couple thoughts:
- First, the online Robocode community is pretty hardcore about bot programming. We have the RoboRumble in place that facilitates that perfectly. A user-friendly, non-IDE development UI is just not something that would grab these people the way it would grab programming beginners, if you ask me.
- I love Robocode, but... It's ancient. :-) I think you should build something for a new generation of users, not try to prolong the life of Robocode's current code base. Or even work with Fnl to implement this in Robocode 2.
Such a web app would be great for new people. But for new people, I think there are better alternatives.
- It would be nice to have something to replace the Robocode Central, so it is possible to upload and download robots - and the same robot in various versions etc.
- It could run new types of tournaments, and divide robots into beginner (Level 1), experienced (Level 10?), veteran (Level 30?) or similar depending on how well they perform. Everybody starts as beginner, and then gain higher level, when they are able to beat more than 50% of the other robots at the same level or something like that.
- It would be great to have a web page or GUI where beginners can put program a simple robot using stuff like graphical symbols (commands) that could be drag'n'dropped, like e.g. "Turn left", "Move forward", and "Fire". And each command could take a parameter value like 90 for "Turn left" 90 degrees. Then it could write the source code on the fly which could be copy'n'pasted, saved and/or compiled for Robocode.
- Regarding Robocode 2. I am working on a prototype that is platform independent (protocol based). But it is not ready for a web page yet. Lots of details could change. So it is still on the experimental level.
Don't get me wrong! I agree with you that the Robocode community skews pretty strongly towards the hardcore. It lacks the infrastructure to attract beginners and nurture/funnel them into the ecosystem. And it's possible we could build something awesome that integrates nicely with what we already have. I just think the ship has sailed on major changes to Robocode that don't include a complete rewrite. I think your efforts would have more impact if you don't chain yourself to Robocode.
Wise words, I have to agree with You. Let's wait for other's vote. I am waiting for developer's opinion and general thoughts about Robocode 2, the future of Robocode and possibility of merging Robocode 2 with some kind of online platform. It could breathe new life into this game.
FYI a more reliable way to get in touch with the developers is the Google group: https://groups.google.com/forum/#!forum/robocode-developers
Fnl and Pavel stop by here sometimes, but they're not that active.
Btw, have you looked around at some other games with this kind of stuff? I think it's common to find Robocode with its epic hardcore community, RoboRumble, thousands of bots, and 15 years of history and think it's the only programming game worth looking into. (And it might be, depending on what you're after...)
- RobotGame.net got a lot of attention recently. I didn't dive in but it looks neat and pretty polished. Python and looked like simple game rules with some depth.
- FightCodeGame is pretty cool. The gameplay seems mostly like a simplistic Robocode clone, but the web site is pretty awesome. The main thing that turned me off (personally) was that they gained launch momentum with a GitHub coding contest and then switched to closed source/for profit shortly after.
- Nodewar is a pretty simple UI, but I think the gameplay itself is pretty sweet. One of the few games I really feel is pushing the envelope with gameplay. I'd say at least half of programming games (including Robocode) are "2+ tanks on a rectangular battle field with no walls".
- CodeCombat seems more of a legit "learn to code" style programming game. It's a common strategy for advertising programming games, but for most games, it strikes me as similar to claiming basketball was designed to keep you healthy.
- PlayBerryBots.com is the web UI for my own game, which is a cross-platform desktop app like Robocode. For now just a simple "write code / run battles", but I may build it into something more robust soon.
Oh yeah and ProgrammingGames.org is cool too. It's run by one of the main guys from the Core War community.
Yeah, even my roboflight is just a '2+ spherical bots in a sphere'.
I need to work on it, but I was considering switching it over to C/C++ Lua like Berry Bots. I realize that Java is a lot of overhead, but due to Robocode I am most comfortable in the language.
I think Lua is awesome and totally perfect for programming games, but its relative unpopularity is probably worth considering too. I think Python or JavaScript are probably the ideal languages for attracting people to a programming game right now. But I like Lua and it's a choice I'm still happy with. And if Lua suddenly takes off, I'll be in pretty good shape. :-)
You might try out Code of Tanks, a 3-D tank battle game, which is brand new as of this writing. You write your AI in a .NET language, C# or whatever. Whenever you want to play you create or join a room, run your AI and pick your tanks, and watch the battle live in 3-D. You can watch the video trailer at the website to see it in action: codeoftanks.com
For those interested in .NET programming, you might like Code of Tanks, an online PvP tank battle game, brand new as of this writing. It does require some fundamental .NET programming knowledge, but other than that it's pretty simple: you create or join a room with other players, get your AI ready and pick your tanks, and watch the battle live from anywhere in 3-D.
It's in Beta and anyone can try it out: codeoftanks.com
No tournaments or contests yet, but live battles can be had any time. As a new product you may not find many competitors online when you are, but as more people discover it there may be rooms running around the clock. Until then you can just get some friends to play at the same time and run matches.
Hi all. Sorry for the recent downtime. For some reason the HTTP server had stopped, for no discernible reason that I can tell.
It took me much longer than it should have to get around to fixing it, as the only times I remembered were times I didn't have access to it. Sorry about that.
For the record, if anyone sees issues on the site in the future, I can be poked at http://node01.strangeautomata.com/files/email.png
When I start the battlefield,my robot and other enemy are frozen. The println messages are not displayed in the robot console. But the command prompt shows the following error. I check that the cause of error is the addition of node in my queue (queue.add(n)). However, this line of code shall be fine i guess. So I would like to ask how to solve this error message? (this part of my program is for path finding using bfs)
Thank you.
- BATTLE 1, ROUND 1 *****
TURN 1: StudentRobot* (1) hard deadline exceeded - 532809us
Err> Robot StudentRobot* (1) is not stopping. Forcing a stop.
Err> Robot StudentRobot* (2) is not stopping. Forcing a stop.
Average computation time per turn: 511706
Max turn computation time: 532809
private boolean pathFinding_BFS(Node start, Node end){
LinkedList<Node> queue = new LinkedList<Node>();
queue.add(start);
start.setMarked();
while (!queue.isEmpty()){
Node temp = (Node)queue.poll();
System.out.println("first node:" + temp.getPointInPath().getX() + " y " + temp.getPointInPath().getY());
if (temp.equals(end)){
temp.setPrevNodeInPath(temp.getPrevNodeInPath());
return true;
}else{
for (Node n : temp.getAdjacentNode()){
System.out.println("in node:" + n.getPointInPath().getX() + " y " +
n.getPointInPath().getY());
if (!n.isMarked()){
n.setMarked();
n.setPrevNodeInPath(temp);
System.out.println("test n");
queue.add(n); //problem here
}
}
}
}
return false;
}
public List<Point> getShortestPath(Point start){
Node src = new Node(start);
List<Point> path = new ArrayList<Point>();
for (int i=0;i<endup.size();i++){
Node destination = new Node(endup.get(i));
if (pathFinding_BFS(src, destination)){
while (destination.getPrevNodeInPath() != null){
destination = destination.getPrevNodeInPath();
path.add(destination.getPointInPath());
}
Collections.reverse(path);
return path;
}
}
return path;
}
I don't see any clear problems with that code there. The only way I could see it looping forever is if either setMarked and isMarked are not working correctly, or some other code being called is unsetting the marks in the middle of that loop.
It is possible that this search is just plain taking far too long (>533ms on your computer) because of there being too many nodes to search before it finds the desired end point. How many nodes are you running this code with? If this is indeed the case, you should do one or both of the following: 1) Reduce the number of nodes, and/or 2) Switch from a full breadth first search to a more efficient algorithm such as A*
To figure out what the problem is, I would tend to suggest running this under a debugger, and step through what is happening.
EDIT: Oh, and another possible thing that comes to mind, is perhaps your problem has nothing to do with your node search code. Maybe your robot is just never calling any of the methods that signal to Robocode that has finished it's turn.
So I updated MediaWiki to 1.19 and the LiquidThreads extension. The MediaWiki update script failed when dropping some index after updating LiquidThreads, but everything seems to be working (and wasn't before running the script), so I'm hoping everything's ok and please just let me know if you see any problems. The update script ran OK for just the MediaWiki upgrade, but some things were still broken due to the LiquidThreads incompatibility. Everything's backed up so I'm not too worried - I think it's mainly LiquidThreads that might be messed up.
The wiki font is also back to default size. I'm leaving it for the moment but let me know what you guys think - I'm not sure if I was the only one that wanted it bigger before anyway.
We need PHP 5.3.6 for MediaWiki 1.20, and for that I think we need to upgrade Ubuntu, so that won't happen until I can coordinate that with David.
Shoot, we also lost Twitter on the sidebar. I'll get that stuff fixed up tomorrow. And this new LiquidThreads rendering is kind of weird...
From memory, you might be able to get around updating ubuntu by adding the 'backports' repository, if it isn't already in. I don't play around with *nix enough these days to be confident with making these kinds of changes =)
Using this CSS will make the new liquid threads more tolerable (at least to me).
.lqt-post-wrapper { border-style: solid none none solid; border-color: silver; border-width: 1px !important; background: #fff; } .thread-collapse-control > a { background: none; width: 10px; height: 10px; border: 1px solid silver; }
Depending on how you apply it, you may need to include a few more !important
tags, I tested it in Stylish on Google Chrome.
I liked the font size the way it was before.
Also, when you update the sidebar, try putting the Twitter feed below the Toolbox. I think that would be more useful.
Thanks
Upgrading Ubuntu should be relatively painless. i've always had good luck with it and Debian. :)
The site looks nice!
Alright, I've finally:
- Reverted the font to non-tiny.
- Fixed the RoboRumble Twitter feed [1]
- Restored the @robowiki Twitter feed on the sidebar (actually it's a new one, I guess they killed the old widget).
- Moved Twitter feed below toolbox, as I think a couple people suggested.
- Noted that the new widget can hide @ replies, so I'm not afraid to respond to people as @robowiki on Twitter any more. :-P
A couple more new web based games got on my radar recently.
- Nodewar - Sleak, web-based, Javascript. Feels lean and mean. I like that the gameplay is not your typical "arena" style battle. Replays are very nice looking and HTML5 (a few at nodewar.com/ladders). This one doesn't seem very active atm, but I really dig it.
- Code & Conquer - This one looks really polished and education-oriented. Haven't seen the gameplay yet. Getting a fair amount of attention right now.
This new breed of fully web-based programming games really seems to be taking shape. I dig it! I hope we get some good ones and it brings tons of people into programming and programming games... It's got to be 100x easier to get people to try a game when all they need is a web browser.
But I also wonder about the future of desktop app games like Robocode. One thing I love about the Robocode community is that we contribute a lot of code outside of our bots, like RoboResearch, RoboRumble, running web sites and services, etc. It's sort of like console gaming vs computer gaming - computer gaming gives you level editors, mods, the precision of a mouse. We exercise a lot of freedom on the RoboWiki to do whatever we feel like with Robocode.
Of course you could have games that straddle this line. A fully web-based game that also lets you run your own servers for the hardcore players, or a desktop game with some web features (which is kind of where I'm going with BerryBots).
First page |
Previous page |
Next page |
Last page |