Add comprehensive scoring system documentation with implementation details
This commit is contained in:
		
							
								
								
									
										171
									
								
								knowledge-base/game-design/scoring-system.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								knowledge-base/game-design/scoring-system.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | ||||
| # Scoring System - Neural Nexus | ||||
|  | ||||
| ## Overview | ||||
|  | ||||
| The Neural Nexus scoring system is designed to reward both speed and accuracy while providing clear progression feedback to players. The system balances immediate gratification with long-term engagement. | ||||
|  | ||||
| ## Core Scoring Components | ||||
|  | ||||
| ### 1. Base Level Score | ||||
| **Formula:** `100 points × level number` | ||||
|  | ||||
| **Rationale:** | ||||
| - Provides increasing rewards for higher levels | ||||
| - Simple calculation that players can understand | ||||
| - Scales with difficulty progression | ||||
| - Encourages continued play to reach higher levels | ||||
|  | ||||
| **Examples:** | ||||
| - Level 1 completion: 100 points | ||||
| - Level 5 completion: 500 points   | ||||
| - Level 10 completion: 1,000 points | ||||
| - Level 25 completion: 2,500 points | ||||
|  | ||||
| ### 2. Time Bonus | ||||
| **Formula:** `10 points × seconds remaining` | ||||
|  | ||||
| **Rationale:** | ||||
| - Rewards efficient play without penalizing thoughtful players | ||||
| - Creates tension between speed and accuracy | ||||
| - Provides variable reward based on performance | ||||
| - Encourages replay to improve times | ||||
|  | ||||
| **Implementation:** | ||||
| ```javascript | ||||
| function calculateTimeBonus(timeLeft) { | ||||
|   return timeLeft * 10; | ||||
| } | ||||
|  | ||||
| // Example: Complete level with 15 seconds remaining = 150 bonus points | ||||
| ``` | ||||
|  | ||||
| **Time Allocation by Level:** | ||||
| - Levels 1-3: 60 seconds (generous learning time) | ||||
| - Levels 4-6: 58 seconds (slight pressure) | ||||
| - Levels 7-9: 56 seconds (building urgency) | ||||
| - Levels 10+: Decreasing by 2 seconds every 3 levels (minimum 45 seconds) | ||||
|  | ||||
| ### 3. Accuracy Multiplier (Future Feature) | ||||
| **Planned Formula:** `1.0x - 2.0x based on mistakes` | ||||
|  | ||||
| **Design Concept:** | ||||
| - Perfect completion (no invalid connections): 2.0x multiplier | ||||
| - 1-2 mistakes: 1.5x multiplier | ||||
| - 3-4 mistakes: 1.2x multiplier | ||||
| - 5+ mistakes: 1.0x multiplier (base score) | ||||
|  | ||||
| ## Scoring Psychology | ||||
|  | ||||
| ### Immediate Feedback | ||||
| **Visual Score Updates:** | ||||
| - Points appear immediately upon level completion | ||||
| - Animated number counting creates satisfaction | ||||
| - Color coding indicates performance level | ||||
| - Sound effects reinforce positive achievements | ||||
|  | ||||
| **Score Breakdown Display:** | ||||
| ``` | ||||
| Level Complete! | ||||
| Base Score: 500 points (Level 5) | ||||
| Time Bonus: 180 points (18 seconds) | ||||
| Total: 680 points | ||||
| ``` | ||||
|  | ||||
| ### Progress Indicators | ||||
| **Cumulative Score Tracking:** | ||||
| - Total score displayed prominently during gameplay | ||||
| - Score history maintained in local storage (future) | ||||
| - Personal best tracking for each level (future) | ||||
| - Global leaderboards consideration (far future) | ||||
|  | ||||
| ## Technical Implementation | ||||
|  | ||||
| ### Score Calculation Function | ||||
| ```javascript | ||||
| function calculateLevelScore(level, timeLeft, mistakes = 0) { | ||||
|   const baseScore = 100 * level; | ||||
|   const timeBonus = timeLeft * 10; | ||||
|   const accuracyMultiplier = calculateAccuracyMultiplier(mistakes); | ||||
|    | ||||
|   const totalScore = Math.floor((baseScore + timeBonus) * accuracyMultiplier); | ||||
|    | ||||
|   return { | ||||
|     baseScore, | ||||
|     timeBonus, | ||||
|     accuracyMultiplier, | ||||
|     totalScore | ||||
|   }; | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ### Score Update Animation | ||||
| ```javascript | ||||
| function animateScoreUpdate(newScore, oldScore) { | ||||
|   const scoreDifference = newScore - oldScore; | ||||
|   const duration = 1000; // 1 second | ||||
|   const startTime = Date.now(); | ||||
|    | ||||
|   function updateDisplay() { | ||||
|     const elapsed = Date.now() - startTime; | ||||
|     const progress = Math.min(elapsed / duration, 1); | ||||
|      | ||||
|     // Ease-out animation curve | ||||
|     const easedProgress = 1 - Math.pow(1 - progress, 3); | ||||
|     const currentScore = Math.floor(oldScore + (scoreDifference * easedProgress)); | ||||
|      | ||||
|     document.getElementById('score').textContent = currentScore; | ||||
|      | ||||
|     if (progress < 1) { | ||||
|       requestAnimationFrame(updateDisplay); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   updateDisplay(); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Balancing Considerations | ||||
|  | ||||
| ### Preventing Score Inflation | ||||
| **Design Safeguards:** | ||||
| - Time limits prevent excessive farming | ||||
| - Increasing difficulty maintains challenge | ||||
| - Score scaling ensures later levels are more rewarding | ||||
| - No score for incomplete levels | ||||
|  | ||||
| ### Encouraging Healthy Play Patterns | ||||
| **Positive Behaviors Rewarded:** | ||||
| - Completing levels efficiently (time bonus) | ||||
| - Progressing to harder content (base score scaling) | ||||
| - Maintaining accuracy (future multiplier system) | ||||
|  | ||||
| **Avoiding Negative Patterns:** | ||||
| - No penalty for taking time to think | ||||
| - No score reduction for failed attempts | ||||
| - Restart without penalty encourages experimentation | ||||
|  | ||||
| ## Future Enhancements | ||||
|  | ||||
| ### Achievement Integration | ||||
| **Score-Based Achievements:** | ||||
| - "High Scorer": Reach 10,000 total points | ||||
| - "Speed Demon": Earn 500+ time bonus in single level | ||||
| - "Perfectionist": Complete 10 levels with perfect accuracy | ||||
| - "Marathon Runner": Reach level 50 | ||||
|  | ||||
| ### Daily Challenges | ||||
| **Special Scoring Modes:** | ||||
| - Speed run mode: Maximum time bonus | ||||
| - Accuracy mode: Perfect connections required | ||||
| - Endurance mode: Consecutive level completion | ||||
| - Efficiency mode: Minimum connection path scoring | ||||
|  | ||||
| ### Leaderboards | ||||
| **Competition Features:** | ||||
| - Daily high scores | ||||
| - Weekly challenges | ||||
| - Global rankings | ||||
| - Friend comparisons | ||||
|  | ||||
| Last Updated: June 2025 | ||||
| Next Review: Monthly with user feedback analysis | ||||
		Reference in New Issue
	
	Block a user