◀ Back
◀ Back

Match3

Match3Launch

Around a decade ago, I embarked on a JavaScript experiment - the "Match-3 Game" project. This early project, though admittedly with messy code, holds immense value in my journey. It was my first step into the world of game development, faithfully recreating the classic match-3 puzzle genre. It symbolizes my initial skills and passion, laying the foundation for my future projects and growth.

Overview

A modern implementation of the classic Match-3 puzzle game, originally created in 2013 and now refactored to TypeScript. This project holds historical significance as it was the first game fully completed from start to finish. The original JavaScript code was a tangled mess that somehow worked, yet it contained some fascinating discoveries. One such revelation was realizing that setTimeout can accept a string as its first argument, effectively acting like eval. A decade ago, I knew this—but had since forgotten. Let’s call it 'lost ancient knowledge.

Features

  • 10x10 grid gameplay with colorful gems
  • Smooth animations for matching, falling, and cascading effects
  • Progressive difficulty with increasing levels
  • Score tracking and time-based gameplay
  • Touch and mouse controls for gem swapping
  • Sound effects and background music
  • Responsive design that works on desktop and mobile devices

Recent Improvements

  • Refactored codebase from JavaScript to TypeScript
  • Fixed grid size to 10x10 for consistent gameplay
  • Added animated background effects
  • Enhanced gem animations with smooth falling and matching effects
  • Optimized performance with faster animations and better timing
  • Simplified visual effects for cleaner gameplay
  • Improved cascade matching animations

Code example

Code example

Prototyped and implemented by @sanyabeast