Welcome to Math Reinforcement Mini Games, an engaging suite of mini-games designed to reinforce key math skills through fun, interactive gameplay. This README provides an overview of the project, development setup, and contribution guidelines. These mini-games aim to enhance mathematical learning by integrating educational concepts with immersive game mechanics. The mini-games cover a wide range of math topics, including arithmetic, geometry, logical reasoning, fractions, and quick calculations.
- Market Math
- Shape Builder
- Delivery Dash
- Math Hoops
- System Components
- Installation Instructions
- Teacher Dashboard Integration
- Important Update
- Contributing
- Contact
πΉοΈ Gameplay Mechanics:
- π― Goal: Sell items, calculating totals, change, and discounts.
- π Scenarios: Act as a shopkeeper with interactive shopping tasks.
π World Setting & NPCs:
- π Location: Busy marketplace with stalls (vegetables, bakery, clothing).
- π₯ NPCs: Shopkeepers and customers requesting purchases.
π₯ Camera Perspective & Movement:
- ποΈ Perspective: Third-person, slightly above the player.
- π― Movement: Follows the player smoothly, slight lag for a dynamic feel.
πΉοΈ Player Controls & Actions:
- πΆββοΈ Movement: Joystick (mobile) / WASD (PC).
- π€ Interact: Tap/click to speak with NPCs.
- π’ UI: Select or type numerical answers.
π Rewards System:
- β Correct answers: Coins, XP (GameLevel).
- β‘ Fast, accurate responses: Bonus Gems.
π οΈ Unreal Engine Development Directives:
- ποΈ Key Systems:
- π¬ Dialogue System: Integrated with random math problem prompts either calculating totals, change, or discounts.
- π¦ Inventory System: Simple buying/selling mechanics.
- π° Currency System: Track Coins/Gems.
- πΌοΈ UI Components: Numeric keypad, answer submission panel.
- π¬Animation: Idle animations, interactive triggers.
πββ¬ GitHub Branch: market
πΉοΈ Gameplay Mechanics:
- π― Goal: Help the Mechanic NPC find the correct car components based on geometric properties like surface area, perimeter, and shape type.
- π οΈ Scenarios: Players choose from various components, analyzing their dimensions and properties to determine the correct fit.
π World Setting & NPCs:
- π Location: Mechanic shop filled with machine parts and tools.
- π₯ NPCs: Mechanic providing geometry-based tasks and feedback on player choices.
π₯ Camera Perspective & Movement:
- ποΈ Perspective: Third-person, slightly above the player.
- π― Movement: Follows the player smoothly, slight lag for a dynamic feel.
πΉοΈ Player Controls & Actions:
- πΆββοΈ Movement: Joystick (mobile) / WASD (PC).
- π Select Components: Click to pick components from the Mechanic's shop inventory.
- π Analyze: Check component details like perimeter and surface area.
- β Confirm Selection: Submit the chosen components to the Mechanic for validation.
π Rewards System:
- π― Correct Selections: Earn coins and XP based on accuracy.
- β‘ Quick, Precise Solutions: Bonus gems for solving tasks quickly without errors.
π οΈ Unreal Engine Development Directives:
- ποΈ Key Systems:
- π Geometry Analyzer: Calculates surface area, perimeter, and other properties.
- π§ Task Validator: Checks if the selected components meet the Mechanic's requirements.
- πΌοΈ UI Components: Component inventory panel, analysis button, and submission confirmation.
- π¬ Animation: Highlight correct components with glowing effects upon selection.
πββ¬ GitHub Branch: builder
πΉοΈ Gameplay Mechanics:
- π― Goal: Deliver packages to correct locations using math-based clues.
- π Scenarios: Decode clues, navigate city, confirm deliveries.
π World Setting & NPCs:
- π Location: Low-poly 3D city with key landmarks.
- π₯ NPCs: Post officer or doctor assigning deliveries.
π₯ Camera Perspective & Movement:
- ποΈ Perspective: Third-person driving view.
- π― Movement: Follows vehicle dynamically, slight tilt during turns.
πΉοΈ Player Controls & Actions:
- π Drive with joystick (mobile) / arrow keys (PC).
- πΊοΈ Select locations on mini-map.
- β Confirm deliveries at destinations.
π Rewards System:
- π¦ Correct deliveries: Coins, XP (GameLevel).
- β‘ Fast, accurate routes: Bonus Gems.
π οΈ Unreal Engine Development Directives:
- ποΈ Key Systems:
- πΊοΈ Mini-Map System: Real-time tracking of player and objectives.
- π Vehicle Controller: Smooth physics-based driving mechanics.
- 𧩠Clue Logic System: Dynamic math problem generation for clues.
- πΌοΈ UI Components: Interactive mini-map, delivery checklist.
- π World Design: Optimized city layout for fun navigation.
πββ¬ GitHub Branch: delivery
Basketball Court - π Quick Calculations (already in development as part of the course demonstration)
πΉοΈ Gameplay Mechanics:
- π― Goal: Score baskets by solving quick math problems correctly.
- π Scenarios: Each successful answer gives the player a chance to shoot. The difficulty of the problem and shot increases as the player progresses.
π World Setting & NPCs:
- π Location: A lively basketball court with cheering NPCs.
- π₯ NPCs: Teammates and a coach giving math challenges. Opponents may appear in higher levels to add pressure.
π₯ Camera Perspective & Movement:
- ποΈ Perspective: Third-person, positioned slightly behind and above the player during shooting. Dynamic follow when moving around the court.
- π― Movement: Follows the player with smooth transitions between solving problems and taking shots.
πΉοΈ Player Controls & Actions:
- π€ Solve math problems via multiple-choice or quick input.
- π Move with joystick (mobile) / WASD (PC).
- π― Aim and shoot with a swipe (mobile) or mouse click/drag (PC).
π Rewards System:
- β Correct answers and successful shots: Coins, XP (GameLevel).
- β‘ Streaks of correct answers: Bonus Gems and power-ups (like speed boost or accuracy aid).
π οΈ Unreal Engine Development Directives:
- ποΈ Key Systems:
- π’ Quick Math Problem Generator: Generates rapid-fire math questions tailored to player grade level.
- π Basketball Shooting Mechanic: Physics-based system for aiming and shooting.
- π₯ Combo System: Rewards streaks with visual effects and bonus points
- πΌοΈ UI Components: Timer bar, score tracker, quick answer buttons.
- π¬Animation: Dribbling, shooting, celebratory animations after successful shots.
πββ¬ GitHub Branch: hoops
ANPC
: Base class for non-playable characters (NPCs) that guide players.UMathoriaGameInstance
,UMathoriaPlayerProfile
,AMathoriaPlayerState
: Core player data and game management.UMathoriaGameInstance
: Manages overall game state, player data, and progression.UMathoriaPlayerProfile
: Stores player-specific data such as player name, XP, achievements, levels, and preferences.AMathoriaPlayerState
: Tracks current player profile and session data.
For a detailed explanation of the class structure, please refer to the diagram above.
-
ANPC
(Base Class): Manages basic NPC behavior, dialogue, and interaction triggers, and is extended into specific NPC types for each mini-game. -
UDialogueComponent
: Handles dialogues and interactions between the player and NPCs. -
NPC Child Classes:
1.
AMarketNPC
(Market Math Mini-Game)- Role: Represents shopkeepers and customers in the marketplace.
- Attributes:
ShopType
: The type of shop (e.g. bakery, clothing store).CustomerRequest
: The math problem or purchase request the customer presents.- Methods:
GeneratePurchaseRequest()
: Generates a math problem (e.g., total cost, change, or discount).ProvideFeedback()
: Gives feedback to the player based on their response (correct/incorrect).
2.
AMechanicNPC
(Shape Builder Mini-Game)- Role: Represents the mechanic who provides geometry-based tasks.
- Attributes:
RequiredProperties
: Defines the geometric properties needed for the task (e.g., surface area, perimeter).PuzzleDifficulty
: The difficulty level of the task.- Methods:
ProvideComponentTask()
: Assigns a task to the player to find specific car components.ValidateSelection()
: Checks if the player's selected components match the required properties.
3.
APostOfficerNPC
(Delivery Dash Mini-Game)- Role: Represents the post officer or doctor who assigns delivery tasks.
- Attributes:
DeliveryLocation
: The destination for the delivery.Clue
: The math-based clue the player must solve to find the delivery location.- Methods:
AssignDeliveryTask()
: Assigns a delivery task with a math-based clue.ConfirmDelivery()
: Validates if the player has delivered to the correct location.
4.
ACoachNPC
(Math Hoops Mini-Game)- Role: Represents the coach or teammate who provides quick math challenges.
- Attributes:
MathProblem
: The quick math problem the player must solve.DifficultyLevel
: The difficulty of the math problem (increases as the player progresses).- Methods:
GenerateMathProblem()
: Generates a quick math problem for the player to solve.ProvideShootingOpportunity()
: Allows the player to shoot a basket if they solve the problem correctly.
AMiniGameMap
: Defines unique environments for each mini-game (Market, Garden, City, etc.).UObjectSpawner
: Dynamically spawns items, puzzles, or NPCs based on game scenarios.ULocationManager
: Manages different in-game locations and transitions between them.
UMathProblemGenerator
: Generates math problems tailored to math skill level.UMathValidator
: Validates player answers and triggers corresponding feedback mechanisms.UAdaptiveDifficultySystem
: Adjusts the difficulty of problems based on player performance.
AMarketMathController
: Handles logic for the Market Math mini-game, including transactions and currency management.AShapeBuilderController
: Manages shape construction mechanics and puzzle validation.ADeliveryDashController
: Controls delivery missions, vehicle navigation, and clue decoding.AMathHoopsController
: Manages quick calculation challenges, shooting mechanics, and combo scoring.
URewardSystem
: Distributes rewards such as coins, XP, and gems based on performance.UComboSystem
: Encourages streaks of correct answers, offering bonus points and power-ups (Math Hoops mini-game).
UAnalyticsManager
: Collects gameplay data for performance analysis.ULearningProgressTracker
: Monitors educational progress, highlighting strengths and areas for improvement.UTeacherDashboardAPI
: Facilitates data synchronization with the Teacher Dashboard for real-time performance tracking.
WBP_HUDManager
: Manages in-game UI elements like scoreboards, timers, and progress bars.WBP_NPC_Dialogue
: Displays interactive dialogues with NPCs.WBP_MiniGame
: Tailored UI layouts for each mini-game, including answer panels, inventory, and mini-maps.
- Real-Time Monitoring of Student Performance: Track student performance in real-time while they are engaging with the mini-games.
- Analytics & Reports: Teachers have access to detailed analytics, showing student progress, areas of strength, and areas for improvement. Reports can be generated based on student performance, helping educators adjust teaching strategies as needed.
- Link to GitHub Repo: GitHub Repository for Teacher Dashboard
We are making a key change to how students/players create and access their game accounts. Going forward, students will not be able to create accounts themselvesβonly teachers or school administrators can do so.
To streamline this process, we are removing the in-game authentication form. Instead, students will log in using a QR code provided by their teacher upon account creation.
In the future, we plan to introduce fingerprint authentication as an option for compatible devices.
-
Clone or download the project files from the repository.
git clone -b market https://github.com/najlae01/math-skills-reinforcement.git
-
Create a Firebase Console Account:
- Go to Firebase Console.
- Create a new project named "Math Reinforcement Game."
-
Add Android and Web Apps:
- In your Firebase project settings, add an Android app and a Web app.
-
Enable Authentication:
- Go to "Authentication" and enable Email and Google sign-in methods.
-
Configure Realtime Database:
- Enable "Realtime Database" and set up the rules as needed.
-
Download Configuration File:
- In "Project Settings" under Android apps, download the
google-services.json
file. - Add your Developer SHA Certificate Fingerprints for Android.
- In "Project Settings" under Android apps, download the
-
Organize Project Files:
- Create a
Services
folder in the project directory and placegoogle-services.json
inside. - Create a
Plugins
folder and add shared Firebase and QrReader plugins there.
- Create a
-
Build the Project:
- Right-click the
.uproject
file. - Choose "Show more options" > "Generate Visual Studio Project files."
- Open the
.sln
file in Visual Studio and build the project.
- Right-click the
-
Run the Game:
- After a successful build, open the
.uproject
file and run the game.
- After a successful build, open the
We welcome contributions to improve these mini-games!
- Fork the repository.
- Create your group branch (
git checkout -b group-one
). - Commit your changes (
git commit -am 'Add group-one'
). - Push to your branch (
git push origin group-one
). - Open a pull request with detailed descriptions of your changes.
For support, contact Najlae.