updated project keybindings

added rudimentary player script
started work on a design document
Zachary Epps 5 years ago
parent ea78da32c2
commit f992abc9df

@ -0,0 +1,18 @@
* RezyAlike
** Mechanics
The game will involve a person, or multiple people attempting to gather randomly placed pieces of a puzzle to unlock a door. Basic 3rd person shooter mechanics are used, as is basic inventory management, akin to early PS1 games like resident evil and silent hill.
*** Multiplayer
Where the game really takes a turn is when played with multiple people (up to 3). Each person will have a different role to play. One person will control the character's movement, one will control the camera, and an optional third player will control where the enemies spawn.
**** Character Controller
This player will move the actual character around and interact with the world and all that inhabit it. The movement controls would not be based around how the camera is positioned, i.e. the definition of "forward" would not change based off of where the camera was looking. This is the main player that would control the flow of the gameplay and would be the only one that could trigger a game over scenario.
**** Camera Controller
This player will have full control over the camera, including where it's pointed and the zoom level. The only time they will not be able to control the camera is during a cutscene, or dialog.
**** Spawn Controller
This player will have the ability to choose where enemies will spawn. They will have a cooldown so as to not have them overrun the other players with enemies. Maybe this player could also have access to rare, stronger enemies that have a *long* cooldown.

@ -17,6 +17,17 @@ config/icon="res://icon.png"
enabled=PoolStringArray( "goutte.camera.trackball" )
player_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
player_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
player_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
player_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)

@ -1,4 +1,6 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://scripts/Player/PlayerController.gd" type="Script" id=1]
[sub_resource type="CapsuleMesh" id=1]
@ -25,6 +27,7 @@ axis_lock_angular_x = false
axis_lock_angular_y = false
axis_lock_angular_z = false
collision/safe_margin = 0.001
script = ExtResource( 1 )
[node name="MeshInstance" type="MeshInstance" parent="." index="0"]

@ -0,0 +1,23 @@
extends KinematicBody
const UP = Vector3(0, 1, 0)
var Velocity = Vector3()
func _process(delta):
var vel = Vector3()
if Input.is_action_pressed("player_up"):
vel.x = 1
elif Input.is_action_pressed("player_down"):
vel.x = -1
if Input.is_action_pressed("player_right"):
vel.z = 1
elif Input.is_action_pressed("player_left"):
vel.z = -1
Velocity = vel
func _physics_process(delta):
move_and_slide(Velocity, UP)