|
|
(17 intermediate revisions by 9 users not shown) |
Line 1: |
Line 1: |
− | A complete tutorial for Version 2.36
| + | *[[Basic Bot Tutorial | Basic Bot]] |
| + | *[[Elite%27s_Bot_Tutorial|Advanced Shot Bot Tutorial]] |
| + | *[[Tie_Feeder_Tutorial | Introduction to Tie Feeding]] |
| + | *[[MB Construction | Multibot Tutorial]] (very advanced, be sure you have a firm grasp on the DNA language and the simulation environment) |
| + | *[[PY tutorial | Purple Youko's tutorial (old, but still very good)]] |
| + | *[[Conditionless Bots]] |
| + | *[[Inline Conditions Tutorial]] |
| + | *[[Tie Tutorial]] |
| + | *[[BotTxt]] Bot text. Add any bot you would like to explore/talk about. |
| | | |
− | (please bear with me as I convert this help file from its older format to the newer version as many of the older controls will not work in quite the same way.)
| + | *[[Harvasting bot collective canibals]] This bot is explained, a small manual inside a bot. |
| | | |
− | A basic overview What is a DarwinBot? A DarwinBot is a computer simulation of a -dimensional universe and feeds by extracting energy from other DarwinBots. DarwinBots of various design form the entire food chain. . Sometimes the mutation will enable the young DarwinBot to perform a certain task in a more efficient way, in which case he is more likely to pass on his genes than was his predecessor. Sometimes the mutation will make him less efficient. Sometimes the mutation will even make him completely sterile. For the purpose of this tutorial I will largely ignore mutations and focus on programming strategies instead.
| + | For a Russian beginner Darwin-Bot tutorial follow [http://forum.darwinbots.com/index.php/topic,3714.0.html this link] |
| | | |
− | What commands can a DarwinBot use in his DNA? In Appendix 1 you can find a list of all the
| + | For the ''''single store'''' tutorial follow [http://forum.darwinbots.com/index.php/topic,6330.0.html this link] |
− | | |
− | What is a Command? A command is a memory location into which a value is stored in order to make the robot perform a certain operation. They are addressed via labels.
| |
− | | |
− | What is a label? A label is a name preceded by a period. Each command and function can be addressed either by a label or by using their numerical address. Examples of labels are .refeye or .up.
| |
− | | |
− |
| |
− | | |
− | . This is somewhat similar to assembly language but is much easier to understand. The DarwinBot DNA uses a version of the more common IF/
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− |
| |
− | | |
− | (=) The 2 values are equal. != The 2 values are not equal. > The first value is greater than the second value. < The first value is less than the second value. (%=) The two values are almost equal (within 10%)
| |
− | | |
− | How do I create a robot?
| |
− | | |
− | In order to make a good robot, you need to give him three things.
| |
− | | |
− | The ability to find food.
| |
− | 2. The ability to eat the food. 3. The ability to reproduce.
| |
− | Here is an example of a very simple combat robot. Rather than copy/
| |
− | | |
− | [[Simple Bot]]
| |
− | | |
− |
| |
− | | |
− | What are ties? That is a good question. Ties are a feature of DarwinBots that was added in order to enable multiple individual DarwinBots to join up and form a multi cellular organism. A tie represents a defined relationship between two robots and is seen in DarwinBots as a thick line joining the two robots together. The tie keeps the robots in a fixed but flexible orientation to each other but only after a certain number of game cycles have passed. For the first 20 cycles the ties allow for free rotation of both robots.
| |
− | | |
− |
| |
− | | |
− | For the time being we are not interested in hardened ties. If we wish to feed from the tie then we need to act fast, not wait 20 cycles before doing anything. The only thing we need to do is to utilize the energy transfer function to drain energy from the robot on the other end of the tie.
| |
− | | |
− | How do we make a tie? Actually creating a tie is quite easy. All you need to do is to store a non zero value in .tie (memory location 330). In practice though, this
| |
− | [[Tie Feeder Tutorial]]
| |
− | | |
− | In the next part of this tutorial we will begin to delve into the complexities of creating stable Multi-Bots. If you think that the lessons you have learned this far have been complex then you are sadly mistaken. In order to make a Multi-Bot work properly we will need to learn a whole new set of rules.
| |
− | | |
− | Happy coding
| |
− | | |
− | Purple Youko
| |