Thread history

Fragment of a discussion from Talk:Main Page
Viewing a history listing
Jump to navigation Jump to search
Time User Activity Comment
No results

Hey I think RoboFlight qualifies as pretty new and different. ;)

Voidious (talk)18:15, 2 February 2014

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.

Chase06:31, 3 February 2014

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. :-)

Voidious (talk)14:09, 3 February 2014

It doesn't seem language is the largest barrier of entry into robocode. In order to make a semi-decent robot, many basic systems need to be in place which can be difficult or time consuming to program, especially for newcomers such as myself: wave tracking ( especially enemy's), precise prediction, radar control (especially in melee), movement control (wall avoidance, getting where you want to go),and bullet shadows. Getting these systems into place is necessary to make good bots, however, none of them seem particularly interesting or fun to program, and they can be quite difficult to do well. Perhaps a helper class extending AdvancedRobot could be made to perform some of these functions, so newcomers could spend more time thinking about and programming their strategies. I have seen a school robocode competition video online, and all the robots in it were very basic by roborumble standards, probably because the students had to spend most of their time figuring out basic things as opposed to strategy / AI.

Straw (talk)01:07, 5 February 2014

Well, I'd agree that the algorithms etc needed to succeed in Robocode are more complex than just a language syntax. But I think a beginner or novice programmer has a pretty strong inclination towards certain languages, like the ones they already know (obviously) or that seem popular or easy to learn. In my mind, once you are starting to assess game rules and trying to design a good robot, you have already passed the "barrier to entry". :-) And I think that demographic is also more likely to play programming games than experienced software developers (though our numbers at the RoboWiki are surely skewed).

Voidious (talk)05:01, 5 February 2014

I do know that at several high schools in Seattle, Java is the language taught. Both AP and IB computer science courses use Java.

Straw (talk)03:38, 6 February 2014

Oh, and there are some frameworks that I think are like what you're suggesting. Module is the big one I know of. But my experience with Robocode is most people (myself included) use it as an outlet for urges to build stuff, almost like Minecraft or Lego. So people are more likely to build a robot framework that nobody will ever use than they are to use someone else's framework so they can focus on building a strong bot. :-) But people do use Module and they also take parts from other bots. Maybe we could organize that / make it easier to find somehow.

Voidious (talk)05:07, 5 February 2014

That doesn't do exactly what I am talking about. While it provides some functionality, in the form of modules which perform an action for a specific part (such as anti gravity movement system), it doesn't provide the tools for making your own systems. Say you had a framework which automatically: controlled radar, tracked enemy waves, tracked your own waves (with virtual wave functionality), tracked bullet shadows on enemy waves, and provided a goto point sequence function which would automatically take the robot to the specified points, avoiding walls, in order, in an efficient manner, allowing modification of course. This would take most of the basic "gritty" aspects out of the game, allowing newer programmers to start thinking about where to move, not how to get there at all. I think the strategy is the much more interesting and intuitive part of robocode. Maybe I should start making such a framework...

Straw (talk)03:35, 6 February 2014

Processing input and output data is a huge part of Robocode development. Which is an important part of AI too.

A simpler game which focus more on strategy is Code Ruler (also created by AlphaWorks, like Robocode). Most of the operational stuff is embedded in the main framework. Units move in 8 directions, you produce 2 types of units and everything in the battlefield is given to you in a big array. But the game is not very popular.

In most other popular strategical games with strong AI community, like computer Chess and computer Go, you end up spending most of your time polishing "operational" sub-systems too, like move generation, caching, threading, networking...

And these are virtual robots, with no physical/mechanical parts. In "real" robots, mechanics take most of the effort in building a robot.

MN (talk)01:03, 30 June 2015