Russian version: README_RU.md
"Letter Drop: Build the Word" is a browser-based puzzle game that combines elements of classic Tetris and Fillword games. The player must create words from falling letters while preventing the screen from filling up and competing for a place on the global leaderboard.
Key Features:
- Endless gameplay mode with progressively increasing difficulty.
- Ability to create words from more than 70,000 possible combinations.
- Non-linear scoring system: multipliers depend on word length, while letter values vary depending on their rarity.
- Power-ups to help in difficult situations, including an automatic hint system that finds possible words that may be unknown to the player.
The game was designed for players of all ages and optimized for WebGL, providing access through any modern web browser.
Publication:
The game successfully passed platform moderation, reaching a maximum platform rating of 57 and a player rating of 4.1. It is currently unavailable on the platform due to low player activity.
- Unity: Game engine used for development with 2D components.
- C#: Main programming language used for game logic implementation.
- WebGL: Platform used for browser-based game deployment.
- PluginYG: Integration with the Yandex Games platform, providing support for controls adaptation, leaderboards, advertisements, and other platform features.
The game is built using a single-scene architecture.
The GameField class performs the following key functions:
- Manages the state of the game field, tracking the number of objects and letters on each line.
- Controls the gameplay flow, including field overflow detection and game-over conditions.
- Determines danger levels based on the number of objects occupying each line.
- Clears the field and displays the results screen after defeat.
The LetterBoxSpawner class is responsible for spawning letter objects on the game field:
- Spawns letter objects at predefined positions with configurable delays between appearances.
- Uses Coroutines to control sequential object spawning with delays between spawn points and objects on the same line.
- Controls the spawning process to ensure balanced letter distribution across the field.
The Trie class implements a prefix tree (Trie) data structure for efficient word storage and search using the Dictionary namespace.
The WordLine class manages the collection and processing of letters that form words on the game field.
The ScoreLine class handles player score calculation based on collected words:
- Each letter has an assigned value, and the total score is multiplied by a multiplier depending on word length.
- After calculation, the current score and high score are updated if a new record is achieved.
- Includes smooth score change animations and integration with save and leaderboard systems.
The LetterRandomizer class is responsible for random letter selection using predefined probability values based on letter rarity.
The SaveLevelScript class handles saving and loading the current game state.
The LetterBox class manages the logic of individual letter objects on the game field:
- Handles creation and displaying of random letters.
- Processes player letter selection, changing visual appearance and adding selected letters to the current word.
The DifficultyManager class controls game difficulty by adjusting the number of new objects appearing on the field based on the current game state.
The BonusLogic class implements power-ups and hint mechanics:
- Letter replacement: Allows replacing a selected number of letters on the field, providing new word-building opportunities.
- Destroying letters in the upper half of the field: Removes dangerous letters to prevent overflow and game over.
- Automatic longest word search: Finds and highlights the longest available word on the current field, helping players in difficult situations or maximizing their score.
The AdsManager class manages advertisements using an event-based system.
The ControllerUI class controls the user interface and game menus.
Additional classes are responsible for animations, audio systems, and other supporting functionality.
The project uses the following assets from the Unity Asset Store:
-
Game Interface Sound Pack 2.0
A collection of interface sound effects. -
Casual Game Music Loops Vol. 2
A collection of background music loops. -
RainbowArt 5000 Flat Buttons Pack
A collection of flat-style buttons used for creating the game interface.