09 March 2025

Team 6: Progress Review

 The Stanley Parable is one of the most influential games of the 21st century and is one of the best examples of a walking simulator. Walking simulators have simple controls, that’s part of what makes them walking simulators, so this allowed us some creative freedom when it came to designing our controller. In The Stanley Parable, you control a man named Stanley. You are not Stanley; the game makes this clear in multiple endings. Rather, you are controlling him like some kind of puppet. That analogy is what inspired our controller, or rather, controllers.

Housed inside two shells meant to resemble marionette controllers are gyroscopes that measure the direction the player is tilting the controller. One of the two controllers uses the gyroscope to control movement, while the other uses it to control the camera. Both controllers also have a ball tilt sensor. The controller in charge of movement will input a jump when the player quickly lifts up the controller, while the other will register a generic interact input when lifted up quickly. So, while you are figuratively puppeteering Stanley’s actions and decisions in-game, you are literally controlling him like a puppet.

Controller Sketch:


Controller Schematic:

Psuedo code 

Input xRight (right gyroscope x)

Input yRight  (right gyroscope y)

Input xLeft (left gyroscope x)

Input yLeft (left gyroscope y)

Input ballLeft (ball sensor left)

Input ballRight (ball sensor right)

 

 

 

Int mouseX = readAxis(xRight);

Int mouseY = readAxis(yRight);

Int moveX = readAxis(xLeft);

Int moveY = readAxis(yLeft);

 

//This segment is meant to handle mouse movement. It is written in a way to provide variable mouse movement speeds, similar to what you would have with regular mouse

 

(

mouseX is equal to ((Map 0-65535, mouseX,1-32)^2)-1

mouseY is equal to ((Map 0-65535,  mouseY, 1-32)^2)-1

 

Mouse move mouseX mouseY

)

 

//This segment is meant to control character movement

(

 

moveX is equal to Map 0-65535, moveX, 0-7

moveY is equal to Map 0-65535, moveY, 0-7

 

If move y is greater than 2

    Keyboard W

Else If move y is less than 2

    Keyboard S

 

If move x is greater than 2

    Keyboard D

Else If move x is less than 2

    Keyboard A

)

 

//This segment is meant to handle the jump and interact inputs.

(

If digitalRead ballLeft low

    Keyboard space

 

If digitalRead ballRight low

    Keyboard E

)



No comments:

Post a Comment

Note: Only a member of this blog may post a comment.