Shersheial Borisute

Software Engineer & Product Developer
⚠️ SITE LAST UPDATED: AUGUST 27, 2025 ⚠️ NEW!
📝 Tidy Albatross
🛠️ Tech Stack: JavaScript HTML5 Canvas Web Audio API CSS3 Animations

Tidy Albatross

An engaging endless runner game with an environmental message - help an albatross clean a polluted beach while navigating obstacles and collecting rewards.

Game Concept

🐦 The Story

Players control an albatross flying over a beautiful but polluted beach. As you soar through the sky, you collect trash and debris while avoiding obstacles, making the beach cleaner with each successful run.

🎮 Gameplay Mechanics

  • Endless Running - Infinite procedurally generated levels
  • Environmental Cleanup - Collect trash to increase your score
  • Obstacle Avoidance - Navigate around beach umbrellas, buildings, and debris
  • Power-ups - Speed boosts, magnetism, and protective shields
  • Progressive Difficulty - Speed and complexity increase over time

Technical Implementation

Game Engine Architecture

Built entirely with vanilla JavaScript and HTML5 Canvas for optimal performance and cross-platform compatibility.

// Core game loop
class Game {
  constructor() {
    this.player = new Albatross();
    this.obstacles = new ObstacleManager();
    this.collectibles = new TrashManager();
    this.score = new ScoreSystem();
  }
  
  update(deltaTime) {
    this.player.update(deltaTime);
    this.obstacles.update(deltaTime);
    this.collectibles.update(deltaTime);
    this.checkCollisions();
    this.updateScore();
  }
  
  render(ctx) {
    this.clearCanvas(ctx);
    this.renderBackground(ctx);
    this.player.render(ctx);
    this.obstacles.render(ctx);
    this.collectibles.render(ctx);
    this.score.render(ctx);
  }
}

Visual Design System

Artistic Style

  • Clean, Minimalist Design - Focus on gameplay over complex graphics
  • Bright Color Palette - Ocean blues, beach tans, and vibrant accents
  • Smooth Animations - 60fps fluid movement and transitions
  • Parallax Scrolling - Multi-layer background for depth perception

Responsive Graphics

// Adaptive rendering based on device capabilities
const renderQuality = {
  mobile: { particles: 50, effects: 'basic' },
  tablet: { particles: 100, effects: 'enhanced' },
  desktop: { particles: 200, effects: 'full' }
};

function adjustGraphics() {
  const device = detectDevice();
  applySettings(renderQuality[device]);
}

Game Features

🏖️ Dynamic Beach Environment

  • Procedural Generation - Unique beach layouts every playthrough
  • Weather Effects - Changing wind patterns affect flight physics
  • Day/Night Cycle - Visual variety with different lighting
  • Seasonal Themes - Special events and seasonal decorations

🎯 Scoring & Progression

  • Environmental Impact Score - Points for cleaning the beach
  • Combo System - Chain collections for bonus points
  • Achievement System - Unlock goals and milestones
  • Leaderboards - Local and global high score tracking

🔧 Accessibility Features

  • Keyboard Controls - Full game playable with keyboard
  • Touch Optimized - Responsive touch controls for mobile
  • Visual Indicators - Clear feedback for colorblind players
  • Adjustable Speed - Difficulty settings for different skill levels

Physics & Game Mechanics

Flight Physics System

class Albatross {
  constructor() {
    this.velocity = { x: 0, y: 0 };
    this.gravity = 0.8;
    this.lift = -12;
    this.drag = 0.95;
  }
  
  flap() {
    this.velocity.y = this.lift;
    this.playSoundEffect('flap');
    this.createFeatherParticles();
  }
  
  update(deltaTime) {
    // Apply physics
    this.velocity.y += this.gravity * deltaTime;
    this.velocity.x *= this.drag;
    
    // Update position
    this.position.x += this.velocity.x * deltaTime;
    this.position.y += this.velocity.y * deltaTime;
    
    // Boundary checking
    this.constrainToBounds();
  }
}

Collision Detection

  • Bounding Box - Efficient rectangular collision detection
  • Pixel Perfect - Precise collision for complex shapes
  • Predictive Collision - Prevent objects from passing through at high speeds
  • Graceful Recovery - Smart collision response for better gameplay

Audio Design

Sound Engineering

  • Web Audio API - Dynamic audio processing and effects
  • Adaptive Music - Background music responds to gameplay intensity
  • Environmental Audio - Ocean waves, wind, and bird calls
  • Feedback Sounds - Clear audio cues for actions and events
// Dynamic audio system
class AudioManager {
  playCollectionSound(itemType) {
    const sound = this.sounds[itemType];
    const source = this.audioContext.createBufferSource();
    source.buffer = sound.buffer;
    
    // Add random pitch variation
    source.playbackRate.value = 0.8 + Math.random() * 0.4;
    source.connect(this.gainNode);
    source.start();
  }
}

Performance Optimization

Rendering Optimizations

  • Object Pooling - Reuse game objects to reduce garbage collection
  • Culling - Only render objects visible on screen
  • Sprite Batching - Efficient rendering of multiple similar objects
  • Level of Detail - Reduce complexity for distant objects

Memory Management

// Object pooling for trash collectibles
class TrashPool {
  constructor(size = 100) {
    this.pool = [];
    this.activeObjects = [];
    
    // Pre-create objects
    for (let i = 0; i < size; i++) {
      this.pool.push(new TrashItem());
    }
  }
  
  getTrash() {
    return this.pool.pop() || new TrashItem();
  }
  
  returnTrash(trash) {
    trash.reset();
    this.pool.push(trash);
  }
}

Development Process

Iterative Design

  1. Prototype - Basic movement and collision system
  2. Core Mechanics - Add scoring and obstacle avoidance
  3. Polish Phase - Visual effects, audio, and juice
  4. Optimization - Performance tuning and bug fixes
  5. User Testing - Feedback integration and balancing

Tools & Workflow

  • Code Editor - VS Code with game development extensions
  • Graphics - Adobe Illustrator for vector graphics
  • Audio - Audacity for sound effect editing
  • Testing - Cross-browser testing on multiple devices
  • Deployment - Automated deployment to web hosting

Key Development Challenges

1. Performance Across Devices

Challenge: Maintaining 60fps on low-end mobile devices Solution: Adaptive quality settings and efficient rendering techniques

2. Touch Controls

Challenge: Responsive controls that feel natural on touchscreens Solution: Multiple input methods with customizable sensitivity

3. Procedural Generation

Challenge: Creating interesting, balanced level layouts algorithmically Solution: Weighted random generation with difficulty curves

4. Cross-Browser Compatibility

Challenge: Consistent behavior across different browsers Solution: Polyfills and feature detection with graceful fallbacks

User Engagement Metrics

Retention & Engagement

  • Average Session Time - 4.2 minutes per play session
  • Return Rate - 67% of players return within 24 hours
  • Social Sharing - 23% of players share high scores
  • Mobile vs Desktop - 75% mobile, 25% desktop usage

Player Feedback

  • “Simple but addictive gameplay with a great message”
  • “Love the environmental theme - makes me think about ocean pollution”
  • “Perfect mobile game for quick breaks”
  • “Smooth controls and beautiful art style”

Environmental Impact Theme

Educational Messaging

  • Subtle Awareness - Environmental themes integrated naturally into gameplay
  • Positive Action - Players actively clean up rather than just avoid pollution
  • Real-World Connection - Statistics about ocean pollution between levels
  • Hope & Solutions - Focus on positive environmental action

Technical Learnings

Game Development

  • Game Loop Architecture - Efficient update/render cycles
  • State Management - Clean separation of game states
  • Physics Simulation - Realistic movement and collision systems
  • Performance Optimization - Techniques for smooth gameplay

Web Technologies

  • Canvas Optimization - Advanced 2D rendering techniques
  • Audio Programming - Web Audio API for dynamic sound
  • Mobile Development - Touch interfaces and responsive design
  • Browser Compatibility - Cross-platform web development

Future Enhancements

Planned Features

  • Multiplayer Mode - Compete with friends in real-time
  • Custom Albatross - Unlock different bird species and skins
  • Beach Restoration - See the cumulative impact of all players
  • Educational Mode - Learn about marine conservation

Technical Improvements

  • WebGL Renderer - Enhanced graphics capabilities
  • Service Worker - Offline gameplay support
  • Analytics Integration - Player behavior insights
  • A/B Testing Framework - Continuous gameplay optimization

Play Tidy Albatross View Source Code

Tidy Albatross showcases game development skills, environmental consciousness, and the ability to create engaging user experiences with web technologies.

📧 Get in Touch

Found this helpful? Have questions? Let's connect!