![]() |
| |
![]() |
||
|
![]() |
|||||||||||||||||||||||||||||||||
|
4 Smileys - 1 Smiley Poor, 5 Smileys Excellent
Platforms: Mac OS
Forward Learning how to program is a hot topic these days and knowing how is a skill that many want to have. Why? To make the kind of game that they have always wanted to play or to understand more about the world. AgentSheets is designed for the latter and can be used for the former by creating agents that interact with each other with a simple if-then language. Does AgentSheets offer a balance between power and ease-of-use that will enable the average person to create an interesting and functional program? Read on to find out...
Secret Agents in Your Mac NOT on Steve Jobs' Payroll
Instead of choosing a picture file to use, you are given a frame the size of the agent instead. What you do is place this frame over the part of the screen that you want to be your agent and press the mouse button. It's taking a screenshot of part of your screenshot which bypasses saving your picture in a certain format and is quite easy. The main limitation of the gallery is that every agent has to be the same size, and you can only have one gallery per project. This can be overcome by simply cutting up large pictures into separate agents and assembling them like a puzzle. While an inelegant solution, it does work. Another irritation is that if you have a lot of agents, scrolling to find the one you want to use can take longer than I'd like. While you can move the agent's pictures around they didn't stay in their position.
Get Your Agents Working Once you have the agents created, you can decide how they will react to certain situations. All behaviors have three components: triggers, conditions, and actions. You can think of a trigger as the door that leads to the conditions and actions that are connected to that trigger. Conditions are what is tested and if all of them are true then the action is performed. An example that illustrates this is that you want to make a behavior that decides when you get a drink of water. The trigger would be when you're thirsty. The condition could be if you have a clean cup and the action would be to fill the cup with cold water from the tap. There could be many more conditions and many more actions and there are no limits to how many behaviors each agent has. You might be wondering why health_current and shield are typed with an @ in front of them. This is because they are Simulation Properties which are very similar to global variables. You have to use the @ in front of them so that they aren't treated as other triggers. Every agent can use them to add or take away from. In this case, the lobster subtracts 10 from the knight's current health and adds the value of the shield the knight currently is using to come up with a final value for the knight's health. If this game was longer, I could have the knight find a stronger shield and make the @shield value bigger. I could also modify the code to add in the effects of armor or anything else that I wanted to. At first I thought that only being able to use triggers, conditions, and actions would be confining and that there would be things I couldn't do. On the contrary, I found that there are very few limitations, if any, to the conditions and actions that could be performed. You can change the agent itself, have sound and speech, read from web sites, play songs, talk to all other agents, and much more. In fact, the visual way of programming makes it easier to find errors, because you can drag the behavior onto the agent for them to be performed immediately. Furthermore, AgentSheets highlights each part of the behavior that is currently being tested and beeps when it comes to a false statement. You don't have to decipher strange error statements or analyze a certain the code line-by-line as you would if you were writing in C++ or Java. This feature gives you real power to find out what went wrong and where. Knowing the problem gives you the ability to solve it and test it without having to run the program and waiting for the error to happen which might only rarely happen.
Expanding AgentSheets Another great benefit of AgentSheets is that it is expandable by the use of plug-ins. Anyone with coding experience can write new ones and AgentSheets, Inc. has a number of them on their web site. The one I like the most allows you to transport to another worksheet which enables you to leave one environment and appear in another one. What I mean by transportation is best illustrated with an example. Let's say that you wanted to create an adventure game and have each worksheet be a part of the game world. You create one section and when your hero walks off the edge of it, another worksheet would replace the one that you are currently using. This way you can have a world that consists of 10 or 100 worksheets which are all connected together. Unfortunately, Ristretto doesn't support this feature so AgentSheets would have to be further updated to support this ability. Another limitation is that you can't have one worksheet acting as an inventory window or as a map with another worksheet as the main playing window.
Overall I have referred to AgentSheets often as a simulation and that's where its strength really lies. In fact, NASA used AgentSheets on a shuttle mission so you can be certain that it is very powerful and flexible. You can make a game with it as I have done but it will be simple at best. The main purpose of AgentSheets is for creating simulations and at that it is very powerful. For example, you can discover the food chain by creating a jungle and animals and make behaviors as to what your animal eats and when it makes babies and who their enemies are and how long they live. In fact, a grade school did this very thing in their class. You can examine how viruses make healthy cells sick, teach about Rosa Parks by having a bus move around on a street and have movies play at certain times, and even more. All of these examples are on the CD and I have learned a lot about how to create behaviors by looking at them. However, if you're looking for an easy way to make a game that rivals Deus Ex then you'll have to look elsewhere. If you're looking for an easy way to make a word processor or a control panel then learn how to program in C++. However, if you want to explore the world around you and like or need to ask what-if questions then AgentSheets is a great tool and I heartily recommend it for these purposes.
|
||||||||||||||||||||||||||||||||||