Git Product home page Git Product logo

heist's People

Contributors

andi6558 avatar jasonlin43212 avatar lilianluong avatar ssesena avatar

Stargazers

 avatar

Watchers

 avatar  avatar

heist's Issues

Crowbar can't disable guards through walls

I think in the future we might want to limit the range of crowbars to not go through walls. For prototype 2 it seems fine, but in future we should probably change it.

Basic Item System

  • Set up Item interface scripts
  • Items can be picked up and dropped (only one at a time per person)
  • Interface methods for using items
  • Items can be either reusable or last N uses
  • Create Crowbar prefab
  • Guards can be temporarily disabled
  • Crowbar can be used to temporarily disable guards

Player Changes

  • Change movement to be acceleration-based
  • Differentiate player colors

[Passive] Code cleanup

Lilian's to-do list

  • Review door implementation
  • Move vision code to static class so it's shared between guards and cameras
  • Make doors and cameras use a shared click-handling interface

Improved Guards

  • indicator expresses suspicion (i.e. it shows how close to "catching the player" the guard is)
  • better vision cone (raycast to generate mesh/collider vertices)

Animation

  • Get sprites from Eli
  • Do animation for players and guard

Split screen

  • Add two cameras for each player
  • Split screen in game view
  • Adjust camera settings to follow player and zoom in

Guard behaviour variety

  • Add options for Right then Left movement
  • Add options for Spinning in Circle movement
  • Guards choose randomly between these three

Change Camera Disabling

  • Camera's disabled by single click (instead of holding)
  • Only 1 or 2 cameras can be disabled at a time

Players Blocked by walls

  • Add wall
  • Add collision to wall and players
  • Prevent player from going into wall (stop velocity or use Unity Physics engine)

Plan Pitch Meeting

Need a meeting plan for our pitch meeting

  • Decide on time
  • Plan meeting

Basic mouse cameras

  • Cameras can be placed
  • Cameras have a line-of-sight vision range
  • Cameras can see players/catch players
  • Cameras can swivel
  • Cameras can be disabled by holding on them with mouse button

Dialogue/cutscene system

  • Create dialogue box UI prefab
  • Cutscenes store sequence of dialogue, continued by clicking
  • Cutscenes pause the game while they happen
  • Cutscenes triggered by single-use event zones

Noise mechanism

  • if an item is not held but the user presses the use item key, the player "shouts"
  • raycast "noise" in all directions
  • if a guard can detect "noise", the guard is alerted and adds this noise to their route

Tutorial Level

  • Have a tutorial scene that can be accessed from Main Menu
  • Teach players how to move
  • Show players how guards / cameras work
  • Show how to deactivate cameras and open doors
  • Show how to pick up and use items

Begin Tilemap

  • Get basic tile map to work with random tile maps from online
  • Try to get collision to work with tile maps
  • Create dummy player to test collisions

Basic doors (mouse prototype)

  • doors can be placed on the map
  • doors block players when closed
  • doors do not block players when open
  • doors can be opened by clicking on them

Winning

  • Payload
  • Getting in and getting out. Trigger of win screen

Character portraits

  • Character 1 portrait
  • Character 2 portrait
  • Character 3 portrait
  • Character 3 cut-in

Menu

  • Main Menu
  • Pause Menu
  • Win Menu

Basic Guards

  • create Guard script
  • guards have a direction and viewing range
  • guards only see things which aren't obscured by walls, etc.
  • guards have and can enter/exit "alert" state based on player within sight
  • after fixed time in alert state, player is caught
  • guards follow a fixed route by default
  • guards follow last-seen players when in alert state

resolve warnings about colliders being hidden

warning CS0108: 'DoorBehavior.collider' hides inherited member 'Component.collider'. Use the new keyword if hiding was intended.
warning CS0108: 'PlayerMovement.collider' hides inherited member 'Component.collider'. Use the new keyword if hiding was intended.

Please resolve these; warnings are never good to leave unattended.
The basic issue is that these two scripts have a variable called "collider" which interferes with an existing variable name. Please rename "collider" to something else, and that should resolve this.

Not doing it myself because I don't know which branch is appropriate to modify.

Levels

  • Simple Level
  • Bigger Level

Have nooks and crannies. A room that you go into and out with a guard blocking the entrance.
Opening doors in the bigger levels (design places where the doors are placed)
Have places for camera too.
Players are 0.5x size of hallways.

Guard & Camera Variety

  • Add 2 new guard prefabs (diff colors)
  • Add 2 new camera prefabs (diff colors)
  • Add spotlight (guard modification)

Setup general code structure

  • create script directory/sub-directories
  • create GameState and GameController scripts
  • create useful utility enums/config variables

dialogue html rendering bug

tags are interrupted by invisibility when the text is revealed slowly

also get rid of the next space index cuz it's not needed just invisible everything

Tileset

  • Find tileset(s) to use for walls, floors, doors, etc
  • Try out different combinations and decorations

Easier mouse camera clicking

Make the mouse cameras easier to disable.

  • Expand collider to an invisible area
  • Highlight the cameras when hovering over the colliders so that it's obvious

Viewcone UI improvement

  • The guard viewcones start green, and turns red as their alert meter fill up to give player feedback on their action. Make cameras start with yellow cone to indicate danger, also to distinguish cameras and guards so that player don't think guards can be disabled.

Item UI

When an item is picked up, it should show up as an icon on the player's screen so they know what they're holding. Probably something like a sprite and/or the name of the item.

  • Add any UI elements to the Player HUD prefab.

Notes: I've made a Player HUD prefab (under Prefabs/HUD) which is duplicated twice; one for each player. This way both players can have a symmetrical UI you only need to edit through the prefab. You'll want to add stuff like images and texts to this prefab.

  • Make PlayerHUDScript update the UI elements to display the current held item

Notes: Look at Scripts/HUD/PlayerHUDScript.cs. You should put most of the relevant code in UpdateItemUI(), where I've already given examples of how to get any relevant information I think you'll need (feel free to ask if you need anything else). IDK how best to handle UI tbh, but the way I normally do it is to add public variables for Image, Text, etc. to PlayerHUDScript, and then use the editor to add children UI elements in your prefab into the script fields.

  • Add sprites for some items, especially the crowbar

Uhhh right now the crowbar is just like all the "sprites" I make which is a colorful square. You can change the Sprite Object child of the item prefabs (please change the prefabs, not the example) and make it actually look good idk, or replace the Sprite Object entirely (just make sure it has a sprite and a collider set to Trigger, and is linked to the item script of its parent).

Display sprites: So if you want to show an image of the item being held for the UI, you'll need a display sprite of some sort. The item prefabs are set up with a place in the ItemDescriptor script where you can link a sprite and then reference it (example in PlayerHUDScript). This is separate for now in case you want a different sprite from the one actually shown on the map. An alternative would be to just use the same sprite image, in which case you should just take it from the sprite object programmatically.

Level-dependent player spawning

  • Add spawn point markers to the Level prefab
  • Hook up levels with the GameController/GameState
  • Move players to the correct spawn points at the start of the scene

2 Movable Players

  • Create basic ground
  • Create Player object
  • Add 2 Players to scene
  • Add controls to players

Complete first prototype

Combine completed work of players, guards, and tilemap into a single scene to prototype.

  • Create scene and set up objects
  • Create levels using tilemaps (#14, #15)
  • Add and route guards
  • Players spawn at different places depending on level

Button-controlled doors

doors that are toggled by players both standing on separate buttons

This will be implemented as a "ButtonDoor" prefab which needs to be linked to two "Button" prefabs. (Link the same prefab to both fields if you want it to be controlled by just one button.)

There are options for making it a permanent toggle (i.e. you can't press the buttons again to re-toggle the door) or a "uses immediate button state " (i.e. instead of toggling with each press, state of door depends on if buttons are currently pressed or not).

First Prototype Changes

  • Make cameras easier to click on
  • Make it so that you can click on the part of the camera that is inside a wall
  • Cameras look weird? The little dot is off-centered
  • You can run past camera if you are close enough (Maybe add a collider? But that doesn't really make sense. Should we just keep it like this?)
  • Guards walk through walls when trying to chase the player (Turning issue)
  • Guards walk through walls when going back after chasing the player.
  • Player is a bit hard to control. It feels like the player is moving a bit too fast and often, I run into the camera range and then just lose.
  • Unity Errors (it constantly repeats in the console)

Keycard doors

  • keycard item with unlimited uses
  • KeycardDoor prefab
  • keycards can open a list of doors
  • when keycard is used near a matching door, the door is toggled

Sound

Find sounds for:

  • Getting seen
  • Guard walking
  • Camera becoming undisabled / enabled
  • Noises for text / dialogue (texting for hacker)
  • Walking
  • Opening and closing doors (modern / electric dooe)
  • Whacking with crowbar
  • Picking / dropping items
  • Music
  • Pressing buttons

Home Screen

  • Choose tutorial level
  • Choose actual level

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.