In simulation video games, a technological tree, tech tree, research tree, or technological tree is a graphical representation of the possible orders of upgrades a player may take during gameplay. Because these trees are often acyclic and technically oriented, they are more accurately thought of as a technological graph. They represent a tree, which has nodes representing different aspects of the technology tree. These nodes represent the technology that will be used in the future to make improvements on the current technology.
One major difference between a technological tree and a technological graph is the level of detail that is used in each of them. A technological graph uses a very intricate grid to represent all of the nodes, whereas a technological tree shows only the highest priority nodes. Another difference is that when a technological graph shows an increase in a number of nodes, it shows a decrease in the number of nodes that are currently being used in a process.
The technology tree has many branches. The main ones are: hardware, software, programs, networking, databases, and applications. Each of these branches of the tree have several sub-branches that exist as separate entities that are not directly related. For example, some programs and hardware require access to networks, others require databases, and others may require any of many other types of applications. If a branch of the tree does not have a corresponding application, it may be referred to as an interface branch.
The main purpose of a technological tree is to represent the state of the technology today, as well as the future state of that technology. This allows for a game designer to plan their future technology tree to be compatible with the current state of the game. For instance, if a programmer changes a program, he needs to change the interface of that program so it is compatible with his new program. By creating a game plan that has information about the current state of the game, and then using a technology tree to map all of the necessary changes, the programmer can map the entire future tree without having to make large changes to the current system.
It is important to realize that the current state of the tree is always being updated as new information is discovered. The interface, for example, may have been modified, but information about the other branches of the tree may be inaccurate.
One final distinction between a technological graph and a tree is that a technological graph may be categorized by the direction in which the nodes are arranged. If there are a few nodes that can be found in any one direction, then the direction of that node is called a path. If, however, that direction contains several nodes that are very far from each other, then the node is said to branch into a series. The direction of a branch is the first direction from the root that a node follows after it leaves the root and starts traveling back to itself, and it is a very simple way to organize branches. In a tree, the first direction the branch takes may be difficult to see, but it is easy to see the other directions in a tree because the nodes that are farther away can be viewed easily.