Alphabot: An interview with the founder of Robocode Mat Nelson

xiaoxiao2021-03-06  39

Alphabot: An interview with the founder of Robocode About how Robocode produces and the future development

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 language before IBM was working in the full-time job. 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) and "Rock 'EM, Sock' 'EM Robocode: Round 2" (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. An expert can write a reusable robot in the nearby path, and a novice can only use it to quickly create a nice robot (while learning how to reuse the code).

DW: Do you think that Robocode will become a distributed game hosted by AlphaWorks?

Nelson: Now I mainly care about the simplicity; introducing a certain degree of complexity, but it is not necessary to make the game more interesting. Robocode is more interesting than it is distributed in a distributed environment (now Robocode is just a stand-alone game, can you download other robots)? I am still uncertain. I confirm that there is a space to accommodate a fun distributed Java programming game ... But I think that is a new game, not Robocode.

DW: Why do you choose to write robocode with Java?

Nelson: When I found Java in 1995, I was fascinated. It is a simple, elegant language. Using Java can save half of the time in other languages, and what makes can run on a completely different system. For example, Robocode can run on Mac OS X, and I have never been exposed to Mac.

At present, Java is very fast, although many people still don't realize this. The computer's processing speed is growing at an amazing speed. The speed of JVM is fast than before, Java is already mature, and we can even use hardware to generate graphics. Java is now used in the client, I hope that Robocode can help promote this.

DW: What makes you want to use your own programming skills to create a educational game for programmers instead of creating a floating game for entertainment? Nelson: There is no thing. I really wrote a floating game for fun. We have only discovered its teaching use.

In 25 years of playing games, I have spent countless time to learn how to play games. I read the manual, see the help menu, check the game reference information, and watch skills and prompts on the web. Of course, as any other game, it is also the same thing to Robocode. But there is a big difference: the manual is about Java. The reference is javadoc. The help menu is a Java tutorial. Learning Robocode is learning Java, I didn't realize this at the beginning.

I hope that professors and teachers who have been programmed into the course can find that robocode is a good way to make learning and promoting Java, making people choose Java. Use a few tutorials (all in the game and outside), I believe we can make Robocode a better self-study tool. I will try to use a few simple tasks to complete our game tutorial (just like "to complete these 10 tasks you can understand Java"). Slightly use some guidance, anyone can become a Java programmer.

Look back, it is obvious; it is of course an educational tool. However, Robocode has reached the extent to a new angle. Robocode is a game. But when you learn to play Robocode, oh, wow! You have learned Java. I really write Robocode as a fun game rather than educational tools, and I will continue to develop it with this spirit. But if you learn Java while getting fun, it is too wonderful!

转载请注明原文地址:https://www.9cbs.com/read-78655.html

New Post(0)