We finally got to the point where all these prototypes will be used together, along with some other ARAF nodes in order to create our AR quiz game. You are already familiar with the OrderedGroup element, which is the parent node of the entire scene graph. Then, we are setting the backColor of the game background to white and the navigation type to NONE. The next two nodes are two audio instances, one for playing the correct answer sound and the other one for playing the wrong answer sound. Then a MediaSensor node is used to get the media duration of the video file referenced by the object descriptor ID 26. This video file is the splash screen of the game and it is the first choice of the Switch MENU. Five seconds after the video is finished, the game logic goes to the second choice, the INTRO page. Here, we have an image as a background and two buttons, "How to play" and "Start". The onClick output event of the first button is routed to the showHelp input event of the main Script node. While the onClick of the second button is routed to showQuiz. As you can see here, these two functions are only changing the choice of the main menu and the CurrentTab of the tab instance. The last choice of the Switch MENU is the game view. This starts with another OrderedGroup that has a TimeSenor, a Shape which defines a background, and finally, a TAB_PROTO instance. Please note, the fields of the PROTO interface which are being used. First, we define the height of the TAB_BUTTONS, then the size of the layer where the buttons are displayed and then the size of the layer where the TABs are going to be rendered. Finally, we are using the TAB_BUTTONS' fields to add the four buttons of the game interface: "Quiz", "Map", "Camera" and "Help". Each button has a tabLayer associated in the tabLayers field. You may notice that the tabLayers field has five children. The last one is the SCORE VIEW and that is not linked to any TAB_BUTTON. The player gets there only after answering the questions. Each TAB_BUTTON has a size, a position, a back image which is visible when the button is not clicked and a back image selected that replaces the back image whenever the user clicks the button. Then, in the TAB_LAYER's field, you can notice that every group node contains a TAB_LAYER instance. Let's take them one-by-one and see what they define. The first one is the QUIZ VIEW. This view has a size and a background image which is translated 20 pixels up. Then, the children of this tabLayer is a switch that contains the QUESTION_PAGE instance and the HINT_PAGE instance. The activeQuestion by default is the first one and the quiz time is 300 seconds. As you may notice, the children field is empty. This is because the questions are added programmatically inside the Script node as you will see later. The same rule applies to the HINT_PAGE instance. Then, we have the second screen which is the MAP VIEW where a map instance is created, and on top of it, the icons for the GPS_SIGNAL, the INTERNET_CONNECTION, and the ARROW_NAVIGATOR. The MapPlayer is defined here inside the Switch. The whichChoice of the Switch node is -1, meaning that the MapPlayer instance is only defined here, but not displayed. This element is going to be added programmatically to a map overlay inside the Script node as you will see in a minute. The same will happen to the MapMarkers of the game, the hints. They are going to be added to a map overlay in the same manner and then, both overlays will be added to the overlay's field of the map instance. The next screen is the CAMERA VIEW. Here, we only have an AR_VIEW_INSTANCE with no AR objects attached by default. Again, the same logic applies here. The AR objects are created and added dynamically to the AR_VIEW_INSTANCE. Then, we have the HELP VIEW which has a size, a background image and several text instances, each of them containing one sentence. And finally, the last screen of the game is the SCORE VIEW. Here, we have a background image, some text and of course the text input instance where the player is supposed to write his initials before sharing his score.