Introduction to Logic: Difference between revisions

From EVERYWHERE wiki
Jump to navigation Jump to search
No edit summary
m Protected "Introduction to Logic" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page will go through various step by step guides to introduce you to Logic in ARCADIA.
__NOTOC__
Logic Linking: Items can be linked together using Logic. This allows for creation of gameplay interactions. Check out [[Logic Best Practices|Logic Best Practices]] by Build A Rocket Boy.


{{CustomHeader|Title=Logic Linking}}
Below are some examples of basic logic linking to familiarise yourself with how the system works. Start with basic functionality, and build more complexity as you get comfortable with ARCADIA.
Items can be linked together using Logic. This allows for creation of gameplay interactions.  


__TOC__
{{CustomHeader|Title=[[Sliding Doors]]}}
This page shows you how to setup logic for doors to open and close based on player location whenever they enter / leave a designated area.


{{CustomHeader|Title=Player Respawn}}
{{CustomHeader|Title=[[Interactive Light]]}}
Respawning is returning players back into an active game after they have died in-game. This page explains how to detect when a player has been eliminated and respawning them in specific locations, called Spawn Points.
This page shows you how to create Logic for turning a light on / off with a Pressure Plate. You can apply the same principals with different types of triggers.
<div style="border: 1px solid #473ba7; border-radius: 8px; background-color: #050522; padding: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); margin: 10px 0; float: right; width: 400px;  margin-right: 150px;">
Required Nodes & Objects:
    <p>1x On Actor Eliminated Node</p>
    <p>1x Per Player Timer Node</p>
    <p>1x Spawn Player Node</p>
    <p>1x Player Spawn Point</p>
    <p>1x String Node</p>
</div>
* Place On Actor Eliminated Node
* Place Per Player Timer Node
* Place Spawn Player Node
* Place Player Spawn Point
* Link On Actor Eliminated Node to Per Player Timer Node
** <code>On Actor Eliminated → Start</code>
** <code>Killed by PlayerID → PlayerID Reference</code>
* Link Per Player Timer Node to Spawn Player Node
** <code>On Finished → Spawn Player</code>
** <code>PlayerID Reference → PlayerID Reference</code>
* Select the Per Player Timer Node and untick Loop
** We want the timer to only run once
* Player Spawn Point IDs
** Add an ID to the Player Spawn Point Node, for example: Spawn Point A
** If you want this Spawn point to be the initial Spawn point, tick the box: Initial Spawn Point in the attributes panel
* Place a String Node
** Change the Default String field to match the Player Spawn Point ID you just added. In our example: Spawn Point A
** Set Automatically Send Value to On Game Start
* Link String to Spawn Player Node
** <code>Outputted String → Spawn Point ID</code>


Make a Stamp of the setup so it can be used in building ARCs. 
{{CustomHeader|Title=[[Moving Platforms]]}}
 
{{CustomHeader|Title=Moving Gates & Platforms}}
Moving platforms can add a lot of layers to your ARC. You can apply them to gates, or to open new paths for players to progress throughout your ARC. This page explains how to trigger specific object movement when a player enters a Trigger volume.
Moving platforms can add a lot of layers to your ARC. You can apply them to gates, or to open new paths for players to progress throughout your ARC. This page explains how to trigger specific object movement when a player enters a Trigger volume.
<div style="border: 1px solid #473ba7; border-radius: 8px; background-color: #050522; padding: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); margin: 10px 0; float: right; width: 400px;  margin-right: 150px;">
Required Nodes & Objects:
    <p>1x Box Trigger Volume</p>
    <p>2x Move Node</p>
    <p>2x Rotate Node</p>
    <p>1x Factory Door (s)</p>
</div>
* Place Box Trigger Volume
* Place Move Node
* Place Rotate Node
* Place Factory Door(s)
* Link Box Trigger Volume to Move Node
** <code>On Enter → Start</code>
* Link Move Node to Factory Door(s)
** <code>Act On → Factory Door(s)</code>
* Now we need to link our Rotate Node
* Link Box Trigger Volume to Rotate Node
** <code>On Enter → Start</code>
* Link Rotate Node to Factory Door(s)
** <code>Act On → Factory Door(s)</code>
* Click the Move Node to open the Attributes Panel
** In our example, we want to move the door upwards, that will be our Z axis
** Next to Translation, there are three sliders for each axis in this order: X, Y, Z
** On the Z axis change the value to 5
* Click the Rotate Node to open the Attributes Panel
** In our example, we want to rotate the door on its Y axis
** Next to Translation, there are three sliders for each axis in this order: X, Y, Z
** On the Y axis change the value to 90
* If you are unsure which axis is which, click on the object you want to apply movement to, and check the gizmo colors:
** Red = X axis
** Green = Y axis
** Blue = Z axis
* Now, we want to add the reverse action when we exit the Box Trigger Volume
* Duplicate the Rotate Node and the Move Node
* Link Box Trigger Volume to second Rotate Node
** <code>On Exit → Start</code>
* Link Box Trigger Volume to second Move Node
** <code>On Exit → Start</code>
* Link second Rotate Node to Factory Door(s)
** <code>Act On → Factory Door(s)</code>
* Link second Move Node to Factory Door(s)
** <code>Act On → Factory Door(s)</code>
* Click the second Rotate Node to open its Attributes Panel
** We want to reverse the rotation from the first node
** Change Y axis to -90
* Click the second Move Node to open its Attribute Panel
** We want to reverse the movement from the first node
** Change Z axis to -5
* You can play around with the movement and rotate node attributes until you reach the desired movement you are looking for
* You can apply the same logic to other platforms, paths, and puzzles in your ARC
Make a Stamp of the setup so it can be used in building ARCs. 
{{CustomHeader|Title=Interactive Light}}
This section shows you how to create Logic for turning a light on with a Pressure Plate.
<div style="background-color: #050522; float: right; width: 800px;  margin-right: 0px;">
<div class="video-container">
        <!-- Replace the placeholder video URL with your actual YouTube video URL -->
        <youtube width="640" height="360">pn9PBRewlok</youtube>
<div style="border: 1px solid #473ba7; border-radius: 8px; background-color: #050522; padding: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); margin: 10px 0; float: right; width: 630px;  margin-right: 35px;">
Required Nodes & Objects:
    <p>1x Pressure Plate</p>
    <p>2x On/Off Node</p>
    <p>1x Point Light</p>
    </div> 
</div></div>
* Place a Pressure Plate
** This item is in the Logic section of the Asset Library, under Triggers
* Place On/Off Node
** This Node is in the Logic section of the Asset Library, under Logic Nodes
* Click on the placed On/Off Node to open its Attributes Menu
** Make sure the Behavior is set to “On”
* Place Point Light
** This item is in the Effects section of the Asset Library, under Lights
* Click on placed Point Light to open its Attributes Menu
** Make sure the “On” tick box is not ticked as we want to turn on the light when we step on the plate
* Link Pressure Plate to On/Off Node
** <code>On Step on → Activate</code>
* Link On/Off Node to Point Light
** <code>On Activate → Turn On/Off</code>
* Now, we need to make it turn off when we step off the Pressure Plate
* Place a second On/Off Node to your ARC
* Click on the second placed On/Off Node to open its Attributes Menu
** Make sure the Behavior is set to “Off”
* Link Pressure Plate to second On/Off Node
** <code>On Step Off → Activate</code>
* Link second On/Off Node to Point Light
** <code>On Activate → Turn On/Off</code>
You have successfully created Logic to turn on a light! Remember to make a Stamp of the Logic to use again in other ARCs.

Latest revision as of 16:45, 17 June 2024

Logic Linking: Items can be linked together using Logic. This allows for creation of gameplay interactions. Check out Logic Best Practices by Build A Rocket Boy.

Below are some examples of basic logic linking to familiarise yourself with how the system works. Start with basic functionality, and build more complexity as you get comfortable with ARCADIA.

Sliding Doors

This page shows you how to setup logic for doors to open and close based on player location whenever they enter / leave a designated area.

Interactive Light

This page shows you how to create Logic for turning a light on / off with a Pressure Plate. You can apply the same principals with different types of triggers.

Moving Platforms

Moving platforms can add a lot of layers to your ARC. You can apply them to gates, or to open new paths for players to progress throughout your ARC. This page explains how to trigger specific object movement when a player enters a Trigger volume.