# Architecture Diagram of Godot ![](https://i.imgur.com/DI78iaq.png) ## Design This design is one that explains the software behind our game Godot. Examining the documentation released by Godot, they break up their software into four main categories. The core, the servers, the scene, and the drivers. ## Core The core category holds the main classes of the program. Object consists of the main loop of the program, which keeps it running, along with class modules that can be inherited from to form a consistent base for each class. The most important classes here are Variant and Object. Variant can contain all data types that are useful to the engine and can therefore be used as a dynamic type in C++. Variants can be set to Objects as properties. Object forms a general base for a class by providing elements like id, flags and get methods. Reference contains basic elements for classes that involve resources, configurations, parameters etc. ## Scene Scene describes all of the compenents the user. Scenes are made of nodes called SceneTrees. The nodes that make up those scene trees are things like a GUI interfaces like th canvas items, controls, or 3D components. This is where most of the work for out game lies. This is where the godot user implements and executes their code to create the game interface. ## Servers The Server layer implements seemingly simple processes that use a lot of data. Thus the need for a server. The servers store informations such as gaming physics, audio for the characters, graphics for character design. The most important server that stores the most information is the Visual server which stores and processes anything the user sees in the game. ## Drivers Drivers are how the operating systems interact with a hardware component or software component. Generally it is how the read and write components work on different systems. The rasterisation is converting images to a pixel format.