Geometry Dash Wave-Inspired Game Development Prompt
Objective:
Create a lightweight, single HTML file game inspired by the Wave mode in Geometry Dash. The game should offer a smooth, engaging experience while maintaining simplicity and high performance.

1. Core Gameplay Mechanics
Player Control:
Icon: A square that represents the player, moving automatically along a predetermined zig-zag path.
Movement:
Automatic Forward Motion: The icon should continuously advance forward without player input.
Vertical Direction Control:
Flip Mechanism: On each click or tap, the icon should "flip," changing its vertical direction (e.g., from moving upwards to moving downwards along the zig-zag path, and vice versa).
Responsive Timing: Ensure the flip occurs promptly with user input to allow precise navigation through path turns.
Collision Detection:
Path Boundaries: Define clear edges of the zig-zag path.
Obstacles (Optional Enhancement): Incorporate simple obstacles that the icon must avoid.
Game Over Conditions: Colliding with path edges or obstacles should immediately end the game.
2. Visual Design
Graphics:
Simplified Geometric Shapes: Utilize basic shapes (e.g., squares, lines) for all game elements.
Limited Color Palette: Choose a cohesive set of colors to enhance the minimalist aesthetic.
Retro/Minimalist Aesthetic: Aim for a clean and uncluttered look, avoiding complex textures or detailed animations.
Animation:
Smooth Transitions: Ensure that the icon's flips and movement along the path are fluid.
Performance Optimization: Keep animations simple to maintain high performance across devices.
3. User Interface (UI)
Controls:
Input Handling: Implement straightforward click or tap controls to trigger the icon's flip.
No Additional Controls: Focus solely on the primary control to maintain simplicity.
Score Display:
Progress Tracking: Display the player's score based on distance traveled or the number of successful turns.
Visibility: Ensure the score is easily readable without obstructing the gameplay view.
Game Over Screen:
Clear Indication: Visually signal when the game has ended.
Restart Option: Provide a prominent button or allow an automatic reset after a brief delay.
4. Technical Requirements
Single HTML File:
Integrated Code: All HTML, CSS, and JavaScript should reside within one file.
Inline Styling and Scripting: Use <style> and <script> tags for CSS and JavaScript respectively.
No External Resources: Avoid linking to external libraries, images, or stylesheets to keep the file self-contained and lightweight.
Performance:
Optimized Code: Write efficient JavaScript and CSS to ensure smooth gameplay, especially on lower-end devices.
Responsive Design: Ensure the game scales appropriately across different screen sizes and devices.
5. Optional Enhancements (If Feasible)
Obstacles:
Variety: Introduce different types of simple obstacles that appear along the path.
Randomization: Randomly generate obstacle placements to increase unpredictability.
Dynamic Difficulty:
Speed Variations: Gradually increase the icon's speed as the game progresses to enhance difficulty.
Adaptive Challenges: Introduce more complex path patterns or obstacle configurations over time.
Procedural Level Generation:
Varied Paths: Implement algorithms to create diverse zig-zag paths, ensuring each playthrough feels unique.
Infinite Gameplay: Allow the path to extend indefinitely or set it to generate until a game over condition is met.
Audio Effects:
Sound Effects: Add simple sounds for actions like flipping and triggering a game over.
Background Music (Optional): Incorporate minimalistic background tunes that complement the game's aesthetic without impacting performance.
6. Development Guidelines
Code Structure:
Organized Logic: Structure JavaScript code for readability and maintainability within the single file constraint.
Commenting: Include comments to explain key sections of the code for future reference or modifications.
Testing:
Cross-Browser Compatibility: Ensure the game functions correctly on major browsers (e.g., Chrome, Firefox, Safari).
Device Responsiveness: Test the game on various devices, including desktops, tablets, and smartphones.
Optimization:
Asset Minimization: Keep the HTML file size as small as possible by minimizing code and avoiding unnecessary assets.
Load Times: Ensure quick loading times to enhance user experience, especially for players on slower internet connections.
Goal: Develop a playable, visually appealing, and efficient game encapsulated within a single HTML file. Emphasize simplicity in design and controls while providing engaging gameplay that encourages replayability.