# 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 ============================================================================= ## 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.