Planned features list - atangster/food-waste-game GitHub Wiki

Core features for MVP

  1. Basic Game Mechanics
  • Dish matching logic: fundamental part of game. Ability to match dishes with guest preferences and dietary restrictions
  • Ingredient selection: players should be able to select ingredients for dishes, even if it's just from a simple list or grid to start with

Update

Dish Matching

  • Dietary restrictions: doesSatisfyDietaryRestrictions function to check that dishes comply with guest restrictions.
  • Calorie Matching: calculateCalorieScore provides the foundation for evaluating how well a dish suits a guest's calorie goals.
  • Scoring: submitDish function implements a base scoring system that rewards matching guests with dishes.

Ingredient Selection

  • Draggable Ingredients: IngredientWidget is set up with Draggable, allowing users to interact with ingredients.
  • Preparation Area: PreparationArea with DragTarget functionality to let players assemble their dishes from selected ingredients.

This is solid for an MVP, as it allows for the following core gameplay loop:

  1. Players view guest profiles with dietary restrictions and preferences.
  2. They select ingredients from the available options.
  3. Players drag and drop ingredients into the preparation area to build a dish.
  4. Dishes are submitted, checking against guest needs, and generating a score impact.
  1. Guest Interaction
  • Guest profiles: display a limited number of guest profiles with basic information like dietary needs and preferred dishes
  • Feedback system: provide simple feedback when a dish is served, such as correct or incorrect, with minimal animations or effects

Update

  • Guest Profiles: GuestProfileWidget displays guest dietary restrictions and hints at preferences
  • Feedback mechanism: _showFeedback function in GameState uses Snackbars to communicate "Correct" or "Try again!"
  • Testable Game loop: Players can now:
    1. View guest needs
    2. Assemble dishes from ingredients
    3. Receive basic feedback after submitting a dish

Next steps:

  • Test engagement: do players find the dish creation and feedback loop fun?
  • Gather feedback: get early player input on what kind of scoring/difficulty progression feels most rewarding
  1. UI/UX
  • Main menu: start with very basic menu with options to begin game or quit
  • Game screen: a straight forward interface where the game mechanics take place
  • Navigation controls: include basic controls like pause, resume, and exit to main menu
  1. Graphics and sound
  • Basic graphics: use placeholder graphics or simple free assets. Focus is on functionality, not final art
  • Sound effects: implement a few essential sounds for actions like selecting ingredients or serving dishes to enhance the user experience

Secondary Features for Post-MVP

  1. Enhanced UI/UX
  • Polished UI elements: upgrade from basic placeholders to more refined and thematic graphics
  • Animations: add smooth transitions and animations for a more professional feel
  1. Advanced Game Mechanics
  • Level progression: introduce levels of increasing difficulty with more guests and complex dietary restrictions
  • Score system: develop a more elaborate scoring system that takes into account various factors like time, accuracy, and waste
  1. Additional content
  • More ingredients and recipes: expand variety of ingredients and possible dishes
  • Educational content: integrate facts about food sustainability and endangered species
  1. Social features
  • Leaderboards: introduce online leaderboards for competitive play
  • Social sharing: allow players to share scores or favourite recipes on social media
  1. Technical enhancements
  • Optimisation: improve game performance and optimise for various devices
  • Multiplatform support: make game available on additional platforms