Robocode China Union (www.robochina.org) Alphabot: An interview with the founder of Robocode Mat Nelson
English original
content:
Reference information about the author
There is also a Java area:
Teaching tools and product code and components all articles practical skills
About how Robocode produces and the future development of Dana Triplett (Dana@orage-atelier.com) Freedom July 2002
If you have been paying attention to developerWorks and AlphaWorks, you will see a huge energy called Robocode: Robocode is a more addictive game, just available for Java programming. Mat Nelson has paid a valuable time to develop Robocode in the past 18 months. At first was for your own entertainment, I later became a serious job and put his beloved item on IBM alphaworks. It has now reached his harvest. Robocode's success uses "explosive" to describe the point is not too much - and this is just a beginning.
Mat Nelson As early as 1995, Mat Nelson began to use Java languages before IBM was worked. With the maturity of this language, this fanatical player saw the opportunity to create this "he has always want to play" game. In 2000, Robocode was just a personal efforts. In July 2001, IBM was brought into IBM in July 2001, it became a professional work. On this game (download more than 121,000) and its founder's reputation, we invited the Dana Triplett of DeveloperWorks to interview MAT, asked him to talk about him to create Robocode Inspiration, as well as his view to the future development of Robocode.
The Robocode Rumble link downloads Robocode from AlphaWork. Read "Rock 'EM, SOCK' EM ROBOCODE" (United States EM, January 2002) and "Rock 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, SOCK' EM ROBODE: ROCK 'EM, DEVELOPERWORKS, May 2002) Enter the Robocode Rumble debate. WeiverWorks: What is the central idea behind Robocode? Nelson: Robocode is an interesting competition programming, and "interesting" is definitely a keyword. With a few simple code, you can watch your robot gallop on the screen, milling everything. When doing this, you will learn a true language that solves the current real problem. DW: Which games have been your favorite, what do you like most? Nelson: Wormodore 64 (not confused with the same name "The same name" is the first game I saw, it makes me "teaching" how to act in the game, then look at them. I also like strategies and role play games very much. What games do you addicted to me in the past few years? Civilization, Master of Orion, Sim City, Command and Conquence Series, Warcraft / Starcraft Series, UltiMA Series, and Diablo Series. Of course, I have also played hundreds of other games, but my favorite is definitely those who let me build the same thing, then let go in the game environment, see how it develops. DW: Which of these games is the source of inspiration when you start to create Robocode? Nelson: Worms, is definitely, other C64 game mail order monsters. Some of those of those classic games. There was no graphic that yet, so everything must be playable. That is exactly what I am trying to adopt in robocode: It is easy to start, play interesting, and is addictive. However, Robocode's primary inspiration comes from a game called Robot Battle (this game itself instead) of the BRAD Schick (this game itself is derived from the Apple 2 of Robot Wars). I found Robot Battle in 1995 and spend countless time to create my own robot "The Cleaner". It is really interesting. I looked at the robots created by others to eliminate it, and then designed my own strategy. At that time, the main challenge was a class known as SEESAW BOT, they will move back and forth, it is difficult to hit. Cleaner has encountered a lot of trouble when trying to hit them. My solution? I used a three-pointer knowledge to estimate the perspective of SEESAW and then fired to that angle. I have done it to write, and then looked happy at CleaNer 3 climbed the game list. DW: Who is the audience in your mind when you start developing Robocode? Nelson: At the beginning, just me. Robocode is the game I have always want to play, so I wrote it. I hope that even if you don't know anything, you can play Robocode, and when you know more, it can grow with you. Learn is simple, but it is difficult to master, just like chess. I designed the API as simpler and provide several sample robots to explain how to use it.
I hope anyone, from the architect to the middle school students to the zoo administrator, they can let a simple robot run and say "Hey, I wrote a Java program!". On the other hand, advanced users quickly realize that they can use the Java programming language to use it to build behavior for their own robots as desired. DW: Do people play Robocode in real life? Nelson: The biggest surprise is the success itself. I have a great grasp people will be interested in playing it, because I ... but I didn't think there were so many people! Now the number of downloads exceeds 100,000, so I am shocked. I have always been very surprised (happy) to see people using Robocode in different ways, and the community has always surprised me. DW: What is the example of which is an example of which is found in the Robocode player? Nelson: There are many kinds, including predictive targets (not directly fired directly to the robot, but open fire to the ritual reachable), track and record the enemy's behavior, multi-threaded control robot, instant (Just-in-Time) Algorithm, avoid bullets, deadlock, optimized radar tracking ... there are many many. The best robots are simply surprised. I have recently introduced a new new strategy, which is group, so I am very expected to see what I will appear. DW: What function do you want to add to RobOcode? Nelson: The first thing I want to do is to build the API as a simpler, more object-oriented, more scalable, and more open API. For example, I prefer to see Radar.SetTurn () instead of setTurnradarright (). Once Radar has an object, we can have different types of Radar: setRadar (New Radar (Range, Speed)). As part of the API redes, I am ready to solve two highlighted big problems: the degree of the arc and the Unit Circle Math. The robot will have a separate call that determines whether they want to use the degree, or use the radians, and the other call is swap between unit circle mathematics or compass math. Unit Circular Math For all triangle methods in Java, its 0 degree points to right, counterclockwise is positive. The 0 degree pointing of compass mathematics, clockwise is positive. Different programmers like different things, I hope to support all of them simultaneously with the API. Another big problem is physics problem. At present, the physics principle of Robocode is extremely simple. In order to increase the real feeling, I am preparing to introduce force vectors. For example, acceleration will be partially disposed of a portion of air resistance and rolling friction without being limited by the "maximum rate". According to the friction and semi-elastic collision principle, the robot hits the side of another robot to go one side. I used to make the game much more than before. It is very interesting to hit a robot and make it a sharp sound to the side. In addition, the acceleration will be changed before and after; the speed can be faster when the robot moves forward. At present, the hitting (ramming) has not been fully utilized, so I want to introduce different parts of the robot - still configurable. The side of the robot will cause more harm. I also want to introduce walls and obstacles in the arena, as well as different shapes of arena, which will have many new strategies. Because these changes are introduced into some complex programming, I plan to make it easier to expand the robot.