A fast-paced typing game for practicing Dhivehi (Thaana) script, inspired by classic typing games like ZType. Test your Dhivehi typing skills by destroying enemy ships before they reach the bottom!
Dhivehi zType is an educational typing game designed to help users improve their Dhivehi/Thaana typing speed and accuracy. Enemy ships fall from the top of the screen with Dhivehi words - type the words to destroy them before they reach the bottom!
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd dhivehi-type- Install dependencies:
npm install- Start the development server:
npm run devnpm run build- Type Letters: English keyboard (converts to Thaana automatically)
- Backspace: Delete last character
- Escape: Clear current input
- R: Restart game (when game is over)
- JTK (Javascript Thaana Keyboard) by Jawish Hameed - Phonetic Thaana input
- Web Audio API - Sound effects and audio playback
- HTML5 Canvas API - 2D graphics rendering
- MV Waheed Font - Thaana/Dhivehi font for authentic text rendering
- Sound Effects from Freesound.org - Audio feedback for gameplay
- Ship Graphics by ArtDisruptor - Player and enemy ship sprites
dhivehi-type/
├── public/
│ ├── jtk.min.js # JTK library
│ └── vite.svg
├── src/
│ ├── fonts/
│ │ └── A_Waheed/ # Waheed Thaana font
│ ├── game/
│ │ ├── Game.js # Main game loop and logic
│ │ ├── Enemy.js # Enemy ships with words
│ │ ├── Player.js # Player ship
│ │ ├── InputHandler.js # Thaana keyboard input handling
│ │ └── ParticleSystem.js # Visual effects
│ ├── data/
│ │ └── words.js # Dhivehi word lists (73 words)
│ ├── utils/
│ │ └── thaana.js # Thaana text utilities
│ ├── main.js # Entry point
│ └── style.css # Game styling
├── index.html
├── package.json
└── README.md
The game includes 73 carefully selected Dhivehi words across 3 difficulty levels:
- Easy (30 words): 3-5 letters - Common everyday words
- Medium (25 words): 6-8 letters - Intermediate vocabulary
- Hard (18 words): 9+ letters - Complex/compound words
- Wave 1-4: Easy words, slow speed (4 second spawn interval)
- Wave 5-9: Medium words, moderate speed
- Wave 10+: Hard words, fast speed (minimum 2 second spawn interval)
- Points = Word length × 10
- Longer words = more points!
- Start with 3 lives
- Lose a life when an enemy reaches the bottom
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewContributions are welcome! Please feel free to submit a Pull Request. Areas for improvement:
- Current wordlist pretty shit its something I extracted from somee articles so need to fix the list.
- Add different game modes (time attack, survival, etc.)
- Power-ups and special abilities
- Better explosion effects and animations
- Background music
- Achievement system
- Multiplayer mode
This project is licensed under the MIT License - see the LICENSE file for details.
- JTK (Javascript Thaana Keyboard) by Jawish Hameed - Phonetic Thaana input system
- Inspired by ZType by Dominic Szablewski - Original typing game concept
- Sound effects sourced from Freesound.org
shotgun.wav- Correct typing feedbackempty.wav- Incorrect typing feedback- Licensed under Creative Commons
- Ship Artwork by ArtDisruptor
goodship.png- Player ship spritebadship.png- Enemy ship sprite- Custom artwork for game visuals
Made for just killing time during my winter break