Wiki source code of Traversal

Version 5.1 by Alexandros Mloukie on 2026/01/12 19:51

Show last authors
1 = 0 - Introduction =
2
3 Traversal defines the means through which the player explores the game world, and includes the mechanics and tools that allow the player to move from one point to another.
4
5 == 0.1 - Disclaimer ==
6
7 The terminology used in this document (e.g. "Rock Climbing") functions as a conceptual descriptor of how the player's movement is affected by specific mechanics rather than literal items or objects.
8
9 == 0.2 - Design Philosophy ==
10
11 Due to the high verticality of the game's level design, multiple vertical traversal mechanics are required to ensure fluid and engaging player movement. The goal is to combine these systems seamlessly, allowing the player to chain various traversal actions dynamically without breaking gameplay flow.
12
13 == 0.3 - Terminology ==
14
15 (% class="table-bordered" %)
16 (% class="active" %)|=(% style="width: 169px;" %)Term|=(% style="width: 994px;" %)Meaning
17 |(% style="width:169px" %)PC|(% style="width:994px" %)Player Character
18
19 ----
20
21 = 1 - Traversal Mechanics =
22
23 == 1.1 - Basic Traversal ==
24
25 (% class="table-bordered" %)
26 (% class="active" %)|=(% style="width: 167px;" %)Mechanic|=(% style="width: 995px;" %)Overview
27 |(% style="width:167px" %)Walking|(% style="width:995px" %)Standard for 3D games. Does not consume Stamina
28 |(% style="width:167px" %)Sprinting|(% style="width:995px" %)(((
29 Standard for 3D games
30
31 Features editable delays for acceleration/deceleration
32
33 Consumes Stamina over time
34 )))
35 |(% style="width:167px" %)Jumping|(% style="width:995px" %)(((
36 True directional jumping
37
38 Consumes Stamina
39
40 PC remains steerable while airborne
41 )))
42 |(% style="width:167px" %)Crouching|(% style="width:995px" %)(((
43 Standard crouch movement
44
45 Reduces visibility and hitbox size
46
47 Consumes stamina
48 )))
49
50 == 1.2 Vertical Traversal ==
51
52 (% class="table-bordered" %)
53 (% class="active" %)|=(% style="width: 168px;" %)Mechanic|=(% style="width: 995px;" %)Overview
54 |(% style="width:168px" %)Grappling Hook|(% style="width:995px" %)(((
55 Allows the player to attach to specific objects and climb up or down
56
57 The player can also swing to reach new surfaces
58
59 Consumes Stamina while the interaction is active
60 )))
61 |(% style="width:168px" %)Rock Climbing|(% style="width:995px" %)(((
62 Enabled when interacting with designated surfaces
63
64 Upon activation the camera moves to 3rd person
65
66 The player can move along the vertical plane defined by the surface's orientation
67
68 If the player is touching the ground, no stamina is consumed
69
70 While not touching the ground, stamina is continuously consumed
71
72 If the player is actively moving, stamina is consumed faster
73
74 If stamina reaches 0, player enters a [[Freefall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] state
75 )))
76 |(% style="width:168px" %)Rope|(% style="width:995px" %)(((
77 Restricts the PC's movement to the vertical axis
78
79 Stamina is consumed while the player is suspended or moving (LINK HERE!!!!!!!!!!!!!!!!!!)
80
81 If stamina reaches 0, player enters a [[Freefall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] state
82 )))
83 |(% style="width:168px" %)Water|(% style="width:995px" %)Mitigates fall damage completely upon entry
84 |(% style="width:168px" %)Geyser|(% style="width:995px" %)(((
85 Launches the PC towards a vector defined per actor instance
86
87 Alternatively, it can add a launch vector to the PC's existing momentum
88
89 Both launching and landing consume stamina
90
91 If the PC is launched without the needed stamina, they enter the [[Freefall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] state
92
93 If the PC lands without the needed stamina, they get the [[Crippled>>doc:Game Design.TestDocPort.WebHome||anchor="StatusList"]] status
94 )))
95 |(% style="width:168px" %)Trampoline|(% style="width:995px" %)(((
96 Converts downwards momentum into upwards momentum
97
98 Allows the player to build and maintain speed
99
100 Each bounce consumes stamina
101 )))
102
103 {{warning}}
104 [[image:icon:information]] Every mechanic that launches the PC by default puts them in the [[Controlled Fall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] state. For more info read the [[Player State Machine>>doc:Game Design.TestDocPort.WebHome]] document
105 {{/warning}}
106
107 == 1.3 - Horizontal Traversal ==
108
109 (% class="table-bordered" %)
110 (% class="active" %)|=(% style="width: 166px;" %)Mechanic|=(% style="width: 997px;" %)Overview
111 |(% style="width:166px" %)Rail Skating|(% style="width:997px" %)(((
112 The PC automatically snaps onto a predefined spline and follows it
113
114 The player can jump off at any moment at the cost of stamina
115
116 Splines can branch into multiple paths from which the player can choose using their standard movement input
117
118 While skating, stamina neither regenerates nor depletes
119 )))
120 |(% style="width:166px" %)Grappling Hook|(% style="width:997px" %)(((
121 Can be used to propel the player in a horizontal direction
122
123 Allows traversal over gaps and hazards
124 )))
125
126 ----
127
128 = 2 - Technical Documentation =
129
130 == 2.1 - Walking Data ==
131
132 (% class="table-bordered" %)
133 (% class="active" %)|=(% style="width: 250px;" %)Parameter|=(% style="width: 243px;" %)Type|=Description
134 |(% style="width:250px" %)Walk Speed|(% style="width:243px" %){{success}}Float{{/success}}|The PC's base walking speed
135 |(% style="width:250px" %)Acceleration|(% style="width:243px" %){{success}}Float{{/success}}|Time required to reach max walking speed
136 |(% style="width:250px" %)Deceleration|(% style="width:243px" %){{success}}Float{{/success}}|Time required to come to a full stop
137 |(% style="width:250px" %)Footstep Sound Cue|(% style="width:243px" %){{info}}Asset Reference{{/info}}|Defines the sound asset played when walking on a surface type
138 |(% style="width:250px" %)Stamina Cost per Second|(% style="width:243px" %){{success}}Float{{/success}}|Defines the stamina loss in special situation
139
140 == 2.2 - Sprinting Data ==
141
142 (% class="table-bordered" %)
143 (% class="active" %)|=(% style="width: 249px;" %)Parameter|=(% style="width: 213px;" %)Type|=(% style="width: 701px;" %)Description
144 |(% style="width:249px" %)Sprint Speed Multiplier|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Walk Speed multiplier applied while Sprinting
145 |(% style="width:249px" %)Acceleration Delay|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Time before reaching max sprint speed
146 |(% style="width:249px" %)Deceleration Delay|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Time before returning to normal speed when sprinting stops
147 |(% style="width:249px" %)Stamina Cost per Second|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Stamina drain while sprinting
148 |(% style="width:249px" %)Minimum Stamina to Start Sprint|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Minimum stamina amount required to initiate a sprint
149 |(% style="width:249px" %)Camera FOV Change|(% style="width:213px" %){{success}}Float{{/success}}|(% style="width:701px" %)Defines the FOV change while sprinting (visual feedback)
150
151 == 2.3 Jumping Data ==
152
153 (% class="table-bordered" %)
154 (% class="active" %)|=(% style="width: 248px;" %)Parameter|=(% style="width: 215px;" %)Type|=(% style="width: 700px;" %)Description
155 |(% style="width:248px" %)Jump Height|(% style="width:215px" %){{success}}Float{{/success}}|(% style="width:700px" %)Determines the height of the PC's jump
156 |(% style="width:248px" %)Air Control Multiplies|(% style="width:215px" %){{success}}Float{{/success}}|(% style="width:700px" %)Defines how much directional control the player has mid-air
157 |(% style="width:248px" %)Stamina Cost|(% style="width:215px" %){{success}}Float{{/success}}|(% style="width:700px" %)Determines the stamina cost to perform a jump
158 |(% style="width:248px" %)Coyote Time|(% style="width:215px" %){{success}}Float{{/success}}|(% style="width:700px" %)Time window after walking off a ledge that the player can still jump
159 |(% style="width:248px" %)Landing Recovery Time|(% style="width:215px" %){{success}}Float{{/success}}|(% style="width:700px" %)Recovery time after landing before movement fully resumes
160
161 == 2.4 Crouching Data ==
162
163 (% class="table-bordered" %)
164 (% class="active" %)|=(% style="width: 247px;" %)Parameter|=(% style="width: 217px;" %)Type|=Description
165 |(% style="width:247px" %)Crouch Speed|(% style="width:217px" %){{success}}Float{{/success}}|Movement speed while crouched
166 |(% style="width:247px" %)Transition Speed|(% style="width:217px" %){{success}}Float{{/success}}|Time to transition between standing and crouching
167 |(% style="width:247px" %)Collider Height|(% style="width:217px" %){{success}}Float{{/success}}|Capsule height while crouched
168 |(% style="width:247px" %)Stamina Cost per Second|(% style="width:217px" %){{success}}Float{{/success}}|Stamina drain while crouched
169 |(% style="width:247px" %)Visibility Modifier|(% style="width:217px" %){{success}}Float{{/success}}|Reduction to the detectibility of the player by enemy AI
170 |(% style="width:247px" %)Noise Reduction Multiplies|(% style="width:217px" %){{success}}Float{{/success}}|Scalar applied to the sound produced while moving
171
172 == 2.5 Grappling Hook ==
173
174 (% class="table-bordered" %)
175 (% class="active" %)|=(% style="width: 245px;" %)Parameter|=(% style="width: 216px;" %)Type|=(% style="width: 702px;" %)Description
176 |(% style="width:245px" %)Hook Target|(% style="width:216px" %){{info}}Actor Reference{{/info}}|(% style="width:702px" %)Defines the object that the grapple line is attached to
177 |(% style="width:245px" %)Hook Range|(% style="width:216px" %){{success}}Float{{/success}}|(% style="width:702px" %)Maximum distance the Grappling Hook can attach to
178 |(% style="width:245px" %)Climb Speed|(% style="width:216px" %){{success}}Float{{/success}}|(% style="width:702px" %)Speed at which the player ascends or descends along the rope
179 |(% style="width:245px" %)Swing Speed Multiplier|(% style="width:216px" %){{success}}Float{{/success}}|(% style="width:702px" %)Controls how much forward momentum the player gains while swinging
180 |(% style="width:245px" %)Stamina Cost per Second|(% style="width:216px" %){{success}}Float{{/success}}|(% style="width:702px" %)Defines how fast stamina drains
181
182 == 2.6 Rock Climbing ==
183
184 (% class="table-bordered" %)
185 (% class="active" %)|=(% style="width: 244px;" %)Parameter|=(% style="width: 217px;" %)Type|=(% style="width: 702px;" %)Description
186 |(% style="width:244px" %)Surface Bounds|(% style="width:217px" %){{info}}Actor Reference{{/info}}|(% style="width:702px" %)Defines the climbable area's bounds
187 |(% style="width:244px" %)Climb Speed|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:702px" %)Defines the movement speed of the player along the surface
188 |(% style="width:244px" %)Camera Offset|(% style="width:217px" %){{warning}}Vector3{{/warning}}|(% style="width:702px" %)Camera offset relative to the player while climbing
189 |(% style="width:244px" %)Stamina Cost|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:702px" %)Stamina drain while attached to the surface
190 |(% style="width:244px" %)Stamina Cost per Movement|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:702px" %)Stamina drain while moving along the surface
191 |(% style="width:244px" %)Fall Threshold Stamina|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:702px" %)Minimum stamina required to prevent entering the Freefall state
192
193 == 2.7 Rope ==
194
195 (% class="table-bordered" %)
196 (% class="active" %)|=(% style="width: 243px;" %)Parameter|=(% style="width: 217px;" %)Type|=(% style="width: 703px;" %)Description
197 |(% style="width:243px" %)Rope Length|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:703px" %)Defines the length of the climbable segment of rope
198 |(% style="width:243px" %)Attach Point|(% style="width:217px" %){{warning}}Vector3{{/warning}}|(% style="width:703px" %)World-space location of the rope anchor point
199 |(% style="width:243px" %)Swing Speed|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:703px" %)Optional parameter for when the rope allows for limited swinging
200 |(% style="width:243px" %)Stamina Cost per Second|(% style="width:217px" %){{success}}Float{{/success}}|(% style="width:703px" %)Stamina drain while handing or moving along the rope
201
202 == 2.8 Geyser ==
203
204 (% class="table-bordered" %)
205 (% class="active" %)|=(% style="width: 242px;" %)Parameter|=(% style="width: 219px;" %)Type|=(% style="width: 702px;" %)Description
206 |(% style="width:242px" %)Launch Vector|(% style="width:219px" %){{warning}}Vector3{{/warning}}|(% style="width:702px" %)Defines the launch direction
207 |(% style="width:242px" %)Launch Force|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:702px" %)The magnitude of the launch vector
208 |(% style="width:242px" %)AddToMomentum?|(% style="width:219px" %){{error}}Boolean{{/error}}|(% style="width:702px" %)If true, adds to the player's existing velocity instead of setting it
209 |(% style="width:242px" %)Min Stamina Required|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:702px" %)Minimum stamina required to enter [[Controlled Fall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] instead of [[Freefall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] on launch
210 |(% style="width:242px" %)Cooldown Time|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:702px" %)Time before the Geyser can be activated again
211
212 == 2.9 Trampoline ==
213
214 (% class="table-bordered" %)
215 (% class="active" %)|=(% style="width: 241px;" %)Parameter|=(% style="width: 219px;" %)Type|=(% style="width: 703px;" %)Description
216 |(% style="width:241px" %)Bounce Multiplier|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:703px" %)Controls how much vertical velocity is retained or increased after impact
217 |(% style="width:241px" %)Max Chain Bounces|(% style="width:219px" %){{success}}Integer{{/success}}|(% style="width:703px" %)Defines how many consecutive bounces can be performed before losing momentum
218 |(% style="width:241px" %)Stamina Cost per Bounce|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:703px" %)Stamina drained on each bounce
219 |(% style="width:241px" %)Min Stamina Required|(% style="width:219px" %){{success}}Float{{/success}}|(% style="width:703px" %)Minimim stamina required to enter [[Controlled Fall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]] instead of [[Freefall>>doc:Game Design.TestDocPort.WebHome||anchor="PlayerStates"]]
220
221 == 2.10 Rail Spline ==
222
223 (% class="table-bordered" %)
224 (% class="active" %)|=(% style="width: 239px;" %)Parameter|=(% style="width: 221px;" %)Type|=(% style="width: 703px;" %)Description
225 |(% style="width:239px" %)Spline Path|(% style="width:221px" %){{info}}Asset Reference{{/info}}|(% style="width:703px" %)Defines the spline asset used
226 |(% style="width:239px" %)Base Speed|(% style="width:221px" %){{success}}Float{{/success}}|(% style="width:703px" %)Default speed along spline
227 |(% style="width:239px" %)Branch Nodes|(% style="width:221px" %){{info}}Asset Reference{{/info}} [ Array ]|(% style="width:703px" %)The array of branch paths the player can switch to
228 |(% style="width:239px" %)Allow Mid-Air Attach?|(% style="width:221px" %){{error}}Boolean{{/error}}|(% style="width:703px" %)Defines if the PC can attach mid-jump