M I C R O B O T S "A Robot Toolbox" The purpose of the program will be to develop and teach programming concepts, ideas and skills via Robots that the user can construct and program. The program will consist of two major phases that are available to the user. The first phase will be a top-down view of a computer-generated landscape that will contain a number of robots, trees, mountains, lakes and a treasure. The purpose of this phase will be to program your robot to overcome the various physical obstacles that are present and to capture the treasure. The "programming" of the robot will be accomplished via "icons" or pictures that are generally self-explanatory to the user. The icons will generally be of the format of a circle containing an arrow and/or a picture. Typical basic programming icons will include the following: /|\ / | \ / \ | /__________ ___________\ | \ / | \ / Advance 1 step Turn left Turn right There would also be conditional icons represented by perhaps the following: ~~~~~~~~ ^ ^ / \ ~~~~ ^ ^ ( ( * ) ) ~~ ^ ^ \ / | | ______\ /_______ /_______ / \ \ If water encountered, If trees encountered, If shot coming, turn right turn left turn left There would also be action icons like: _ /_ \ / // --*-- || ( ) / \ /|\ Fire weapons Activate sensors In the programming phase the user would be presented a menu of icons which could be selected via joystick or curser control keys. In the upper part of the screen a scrolling "flowchart" would be constructed as the user selected the various icons to make up the program. Easy to use editing functions would also be included for later program modification. Once a program was constructed (or at any time during its construction) the user could cause the program to "execute" by switching to the landscape top view and watching the progress of his robot. A side window on the top-down screen would simultaneously scroll through the program steps as the program and robot was running through its sequence. The computer would present the user with a carefully constructed sequence of landscape scenarios that would in essence take the user through ever more difficult scenarios that would require the user to learn more and more elements of programming. For example the first scenario might be a simple landscape containing only the user robot, a fixed lake and the treasure. The user would be required to construct a simple sequential program to obtain the treasure. This program would only contain basic steps and would not introduce the complexities of conditionals or branches. Later scenarios might contain a number of computer-controlled robots, forests, multiple lakes, electrical shields and fortress walls guarding the treasure. A program to overcome this scenario would generally be more complex than in the previous case and would contain a number of "advanced" ideas concerning program flow and control. Phase two of this program would allow the user to alter his robot to in effect change the programs required by the various landscape scenarios. This would be accomplished in a one from column A, one from column B, etc. kind of flow. For example, the user could select various kinds of motive power for his robot; fast treads, slow treads, water-crossing treads, etc.. He might then select various kinds of weaponry; lasers, machine guns, pincers, rocket launchers, etc.. Various sensor types would also be an option; heat-seekers, laser eyes, infrared seekers, etc.. Each optionally selected appendage would of course have different abilities or characteristics that might be more valuable in one given scenario than another. Part of the user's task would be to determine the optimum (or perhaps only) set of characteristics that will allow him to complete a given scenario. So what the program does in essence is to provide the framework to allow the user to construct a wide variety of possible solutions to the scenarios via equipment selection and program construction. The program can be viewed as a construction set (much as LEGO for instance) that will allow a large area of entertaining and educational interactions and discoveries. Further capabilities would allow programs and/or robot creations to be saved via diskette/cassette and the program's construction would allow for additional scenarios to be added later via additional program of data modules. For example, more advanced programming concepts could be added relatively easily in a series format ala' MICROBOTS I, MICROBOTS II, etc.. 2/14/84 Microbots Milestones The project will consist of two major phases - the program editing phase and the program execution phase. These independent phases are quite separate yet they rely heavily on each other in terms of overall playability, and therefore will be designed simultaneously. The following are projected milestones which will allow us to keep track of the overall effort. The order in which the milestones are completed may vary somewhat due to problems which are yet unforeseeable. * Construct a sample screen for robots to move around on with simple obstacles. This will be used for test purposes. * Construct a rough editing mode. This will allow us to program robots in a crude fashion and see how the two phases interrelate. * Refine the editing mode. This is probably the most crucial element of the project. If care is not taken here, the final product may be cumbersome and difficult to use. If done well, it may be delightful. At this point, we should begin testing the editing mode with our target market. We will need to work together quite closely here. * Construct final play screens. These will be designed so that the user will have to construct more and more elaborate programs to complete the scenarios. * Final testing and debugging with target market and polishing. As a final note, it is our opinion that good consumer testing of the product beginning midway thru the development is very important to insure a product that is both very fun and instructive. Copyright 1984 APT ADVANCED PROGRAM TECHNOLOGY 10265 East Estates Drive Cupertino, CA 95014