Skip to content

Latest commit

 

History

History
113 lines (109 loc) · 7.56 KB

README.md

File metadata and controls

113 lines (109 loc) · 7.56 KB

Team Cook

By: Lim Junxue and Max Ng

Project: DinoMight - A 2D platformer with an interactive storyline which aims to promote effective habits that reduces stress.

poster

Try our game here! --> https://maxjx.github.io/dino-might/

Watch the game trailer! --> https://youtu.be/bUDn65XtAFs

Documentation: https://docs.google.com/document/d/1mt6SgyHExIwvO-I2PbNucnTOGOtYRP6EHN-Ybl8bovU/edit?usp=sharing

Feature walkthrough: https://drive.google.com/file/d/1SkLr3tsnfdUyzKQEqfHlY21flEVr7oSm/view?usp=sharing

More details on the build:

Project Overview

Motivation:

Stress in Singapore is a significant issue considering that 92% of Singaporeans report feelings of stress, with some even indicating unmanageable levels of stress.

A persistent high level of stress will narrow a person’s ability to think, cope and to function effectively. Oftentimes, poor management of stress can be attributed to poor stress management techniques or simply being unaware of good stress relief habits. There is a need to raise awareness on the various ways that can effectively combat stress.

Interested in the mechanics of game design and raising awareness through story-telling, we seek to create an interactive fantasy world where the user controls a dino as the main character. This is a 2D adventure/educational game with an interactive storyline which changes based on the player’s decisions that brings the player through a journey of mental self-discovery.

Core features:

  1. Game account creation:
    - Players can save their data within the game and continue from where they left off by logging back in to their accounts.
    - The user’s accounts will have to be saved to a database.
  2. Menu:
    - Change movement keys and volume.
    - Players can pause the game and access the options menu. The player can then resume the game through the pause menu.
  3. Gameplay:
    - Multiple endings based on the user’s decisions.
    - There will be multiple levels which will be loaded as different ‘scenes’ in unity.
    - The character moves around using the keyboard and at certain points will trigger a popup that displays a continuation of the storyline.
  4. Enemy Artificial Intelligence:
    - Basic enemy mobs will path find to the player using the A* algorithm.
    - Enemies respawn after a set amount of time.
    - Employs the state machine to switch between chasing and attacking, in line with its animations.
  5. Visual novel style character conversations:
    - The NPC(non playable characters) will provide options to the players upon which decisions made will alter the storyline.
    - The NPC remembers the state of the storyline.
    - Choices made while interacting with NPCs gives insight into the players performance in stress related activities.
  6. Boss fights:
    - Employs state machine and factory pattern to switch between attacks for boss fight.
    - Advanced fight patterns and different algorithms such as teleportation around the game map.
    - Difficulty will be moderate to invoke a sense of achievement which is crucial for stress relief while not being too difficult as to cause unease.
  7. Variations on mobs, attacks and platform:
    - Create different kinds of enemy sprite, enemy attacks, enemy behaviours.
    - Create different kinds of platforms such as double jump, moving, 2-way, etc.
    - Variations should help keep the player engaged and to have a better experience.
  8. Character Controls:
    - The character movements and attacks can be controlled by the keyboard, attacks can also be used on the mouse.
    - The character has a different collision box height when crouching to enable the player to sneak past obstacles
    - Different material textures has been added to the character which keep changing during runtime to ensure smooth movement up slopes, when stationary, when jumping and when landing diagonally.
    - The movement through the story can be triggered via both keys and mouse clicks.
  9. Music:
    - The volume of the music and the sound effects can be adjusted separately throughout the game. The adjustment is also linear instead of by decibels.
    - Player volume preference can be stored and loaded when logging back in.
    - The game music added helps with the immersive and relaxing game experience.
  10. Mini Stress relief activities:
    - Short simple stress relief exercises will be implemented within the game play which engages the users.
    - At the same time, the users get to experience stress relief while taking a “break” from the game.
    - Examples include a short 5 min guided meditation session with voice guide and background music, drawing as art therapy and a guide for massaging acupuncture points.
  11. Questing System
    - Able to view current task at hand so that players have an aim to work towards.
    - Also used to determine at which stage of the game the player is at, thus unlocking certain levels and advances NPC conversations.
  12. Parallax background
    - Parallax backgrounds help to add a sense of depth to a 2D game and this helps make the game more immersive in general.
    - The rate of parallax scrolling can be easily changed on the developer’s end.
  13. Summary page for Stress relief tips:
    - Collates all choices made in the game and presents it in a concise and digestible format at the end of the game.
    - Highlights key takeaways for best practises and tips for stress relief and a simple analysis of game performance.
  14. Collectibles and inventory system:
    - Basic enumeration system to keep track of the items, such as keys to a locked door, are recorded intra-scene.
    - Global system to keep track to inter-scene item states.

User stories:

High priority:

  • As a busy user, I want to be able to save my progress so that I can save time.
  • As a user who wants to destress, I want to be able to have smooth and frictionless player controls so that I enjoy the game and can focus on the storyline.
  • As a user who wants to learn from the game, I want learning points to be delivered in a concise and memorable manner so that my time is spent efficiently.
  • As a user, I want to be able to resume a paused game from where i left off.
  • As a user, I want to be able to pause the game.
  • As a user seeking a novel and thrilling method to destress, I want to have variations in fighting mobs.
  • As a busy user, I want the game to load quickly.
  • As a stressed user, I want to relax while playing the game.
Low Priority:
  • As a user, I want to be able to adjust the game volume.
  • As a user, i want to be able to adjust the effects volume.
  • As a user, I want my character to get stronger over time.
  • As a user who wants to destress, I want to play the game with interesting and enjoyable music.
  • As a user who wants to feel fulfilled, the game should not end too fast.

Game: https://maxjx.github.io/dino-might/