120 lines
3.9 KiB
Markdown
120 lines
3.9 KiB
Markdown
# Topic
|
||
Finding the Best Seat: Cafe - Study Survival Game
|
||
|
||
**Name:** Jieun Lee
|
||
**Student ID:** 20254499
|
||
**My Fork URL:** https://git.prototyping.id/20254499/homework5.git
|
||
|
||
## 1. Game Overview
|
||
This project is a top-view mini video game set in a cafe.
|
||
The player controls a student character who wants to stay focused and complete their study session.
|
||
The goal is to maintain concentration until the study progress reaches 100%, while dealing with moving NPCs, noise, and changing seat conditions.
|
||
|
||
=============================================================================
|
||
|
||
## 2. Game Mechanics
|
||
# 2.1 what does the user have to accomplish?
|
||
The player has to help the character complete their work within a limited time while maintaining a positive focus level.
|
||
|
||
- Each seat has different conditions such as noise level, proximity to moving NPCs, and overall distractions.
|
||
- NPCs move around the cafe and dynamically affect the player’s focus.
|
||
- The player must continuously decide whether to stay, move to another seat, or take actions to recover focus.
|
||
|
||
|
||
# 2.2 How do you win or lose?
|
||
**Winning condition:**
|
||
The study progress reaches 100% (visualized as a progress bar).
|
||
|
||
**Losing condition:**
|
||
The focus level reaches 0, and the character gives up and leaves the cafe.
|
||
|
||
|
||
|
||
# 2.3 What type of interactions are possible?
|
||
- Move to another seat with arrow keys
|
||
- Buy a drink or snack for a temporary focus boost
|
||
- Avoid noisy or crowded zones
|
||
- Respond to environmental changes caused by NPC movement
|
||
|
||
=============================================================================
|
||
|
||
## 3. Visual Style and Game Elements
|
||
A top-view cafe layout with tables, seats, counter, entrance, and moving NPCs.
|
||
|
||
# 3.1 Main elements
|
||
Player
|
||
NPC customers
|
||
Seats
|
||
Focus meter
|
||
Timer
|
||
Drink counter / item zone
|
||
UI text for score, level, and status
|
||
|
||
# 3.2 Visual tone
|
||
Simple 2D shapes and icons
|
||
Readable colors to distinguish quiet seats, noisy areas, and interactable places
|
||
Cute but minimal design for clarity
|
||
|
||
# 3.3 reference images
|
||
<img src="./ref1.png" width="45%">
|
||
<img src="./ref2.png" width="45%">
|
||
<img src="./ref3.jpg" width="45%">
|
||
|
||
=============================================================================
|
||
|
||
## 4. Implementation Plan
|
||
# 4.1 Conditions
|
||
if (gameState === "start") : Shows the start screen
|
||
if (gameState === "play") : Runs the main gameplay
|
||
if (focus <= 0) : Triggers game over when focus reaches 0
|
||
if (workProgress === 100 && focus > 0) : Winning condition
|
||
|
||
# 4.2 Variables (not finalized yet!)
|
||
- 'focus'
|
||
- 'Distraction'
|
||
- 'timer'
|
||
- 'gameState'
|
||
- 'currentSeatIndex'
|
||
- etc..
|
||
|
||
# 4.3 Loops
|
||
I will use loops to:
|
||
- update all NPCs,
|
||
- draw all seats,
|
||
- and check nearby distractions.
|
||
|
||
# 4.4 Arrays and Objects
|
||
I will store:
|
||
- NPCs in an array,
|
||
- seats in an array of objects.
|
||
-> Each seat object will include information such as position, distraction level
|
||
|
||
# 4.5 Classes
|
||
- 'Player' class
|
||
- 'NPC' class
|
||
|
||
=============================================================================
|
||
|
||
## 5. Features Learned in Class
|
||
This project will clearly use several programming elements learned in class:
|
||
- basic p5.js drawing setup (e.g., rect(), ellipse())
|
||
- conditionals
|
||
- variables
|
||
- loops
|
||
- functions
|
||
- arrays
|
||
- objects
|
||
- classes
|
||
|
||
=============================================================================
|
||
|
||
## 6. Main Challenges
|
||
- Implementing the overall system itself will be a challenge as a beginner. Since it requires combining multiple elements such as movement, NPC behavior, and focus management into a cohesive game.
|
||
- Balancing the game difficulty
|
||
NPC movement and focus decrease should feel challenging but not unfair.
|
||
- Making the cafe environment readable
|
||
The player should understand which seats are better or worse without too much confusion.
|
||
- Creating simple but believable NPC movement
|
||
NPCs should make the cafe feel alive while still being manageable in code.
|
||
- Designing a focus system that is easy to understand
|
||
The focus meter should clearly reflect the effect of noise, movement, and drink items. |