Direct Games ============ * Direct games are games that take place on the users controler (ie: phone, tablet, comupter) instead of the screen * Direct games do not use YOUi's controler, but instead use the native inputs provided by the players devise * Direct games is a great way to use engines built for standard html games * You can also setup your direct game to work with the main screen were the player uses there device as a custom controller. In this way you can make an even more emersive experince then a standard YOUi game. Starting Script --------------- * To start your game you must include a seprate index.html and index.js that does not inclued you game and looks something like this. index.html .. code-block:: :linenos: Direct Connect

Direct Connect

To your player one controler

Your game will start in seconds

index.js .. code-block:: javascript :linenos: const socket = io(); socket.emit('direct', '/path/to/game/index.html'); setTimeout(function() { window.location.href = '/photo.html?title=game.jpg&sec=card'; // The above code will display a photo you provide on the primary screen while the players play your game on their own devices // The title varable gives the file path to your games photo. // You can also add text on your photo by adding a txt file with the same filename as your photo // The photo can be a .png, .jpg, .jpeg, .gif }, 100); * It is a good idea to add a QR code in the picture to be displayd on the primary screen so other players can play your game too * Only the first player will be automatically directed to you game on their controller * If the redirect fails it is a good idea to have a QR code to allow them to try again. Socket.io ---------- * Socket.io is installed on the YOUi system and can be used for local online multiplayer as well as for giving sertain comainds to your game * If you include the javascript files listed below in "YOUi Integration" You can use the 18 sockets opened up for you for your game by the YOUi system * These sockets are general purpose and can be used at your own discretion or not at all. * There are 6 sockets for each player to talk to the primary screen. These are: loc_screen1, loc_screen2, loc_screen3, loc_screen4, loc_screen5, loc_screen6 * There are 6 sockets to call to all players, but not the screen. These are loc1, loc2, loc3, loc4, loc5, loc6 * There are 6 socket to call each player indiviually. loc_p1 calls player1, loc_p2, calls player 2, loc_p3 calls player 3, loc_p4 calls player 4, loc_p5 calls player 5, loc_p6 calls player 6 * Each player is assined their own socket group when they connect there controller if they have connected there controller properly before fallowing the url to your game * Calling a local socket looks like this: ``socket.emit('loc1', 'Something_happend!');`` * Session or local storage can be used for your game or game saves if you want to save to the users device. * Saving will not work on the main file system however because the it is set to read only and no changes are perminet YOUi Integration ----------------- * There are a few difrent ways to integrate your direct game with the rest of the YOUi system * You can provide a link to allow the player to easily get back to their YOUi controller ``/control.html`` * Using socket.io and the tin function ``socket.emit('tin', [filename, 'card']);`` you can change what the player sees on the main screen while they are playing your game. This can greatly anhance your game and the players experience * ``Filename`` would be changed to the filename on you ame card that you would wish to be displayed on the screen. * In order to use the tin function, you must inclued all the scripts required in a standard game as seen in the "Standard Games" section * These files whould inclued ```` * You also should include this script in your main js file: .. code-block:: javascript :linenos: function em_tinv(msg){} // This code is use to capture magic spells from the players controller and will cause errors if it is not inclueded in your file. // It also can be used to recieve inputs from the bar code scanner built into the YOUi system