Skip to content

EvgenyZhukov/Letterfall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Буквопад: собери слово

Описание

"Буквопад: собери слово" — это браузерная игра, сочетающая элементы классических игр "Тетрис" и "Филворды". Игроку предстоит составлять слова из падающих букв, не допуская заполнения экрана, соревнуясь за место в глобальной таблице лидеров.

Основные особенности:

  • Бесконечный режим игры с прогрессивным увеличением сложности.
  • Возможность составления слов из более чем 70 000 комбинаций.
  • Нелинейная система начисления очков: множители зависят от длины слов, а ценность букв варьируется в зависимости от их редкости.
  • Усилители для помощи в сложных ситуациях, в том числе подсказка для автоматического сотставления слов, которые могут быть неизвестны игроку.

Игра разработана для пользователей всех возрастов и адаптирована для работы на платформе WebGL, обеспечивая доступ через любой современный браузер.

Публикация: Игра прошла модерацию сайта, максимально набрав рейтинг платформы 57 и оценку игроков 4.1, но в данный момент снята с пубкации в связи с низким онлайном игроков.


Геймплей

Посмотрите геймплей игры на YouTube:
Геймплей на YouTube


Техническая часть

Технологии

  • Unity: Движок для разработки игры с использованием 2D-компонентов.
  • C#: Основной язык программирования для разработки логики игры.
  • WebGL: Платформа для публикации игры в веб-браузере.
  • PluginYG: Интеграция с платформой Яндекс Игры для адаптации управления, работы таблицы лидеров, рекламы и других возможностей платформы.

Архитектура проекта

Игра собрана на единственной сцене.

Класс GameField выполняет следующие ключевые функции:

  • Управляет состоянием игрового поля, отслеживая количество объектов и букв на линиях.
  • Контролирует процесс игры, включая проверку переполнения поля и определение конца игры.
  • Определяет уровни опасности на поле в зависимости от количества объектов на линии.
  • При поражении очищает поле и отображает экран с результатами.

Класс LetterBoxSpawner отвечает за спаун объектов (букв) на игровом поле:

  • Спаунит объекты (буквы) на заранее определённых точках с заданной задержкой между появлением букв.
  • Использует Coroutine для последовательного появления объектов с задержкой между точками и между объектами на одной линии.
  • Контролирует процесс спауна, для равномерного распределения букв по полю.

Класс Trie реализует структуру данных префиксного дерева (Trie) для хранения и поиска слов в пространстве имен Dictionary.

Класс WordLine управляет сбором и обработкой букв, образующих слово на игровом поле.

Класс ScoreLine управляет подсчетом очков игрока, основываясь на собранных словах.

  • Каждой букве присваиваются очки, и их сумма умножается на множитель в зависимости от длины слова.
  • После вычисления очков обновляется текущий счет и максимальные очки, если они были побиты.
  • Также реализована плавная анимация изменения счета и интеграция с системами сохранения и лидерборда.

Класс LetterRandomizer отвечает за случайный выбор буквы с учетом заданных вероятностей для каждой буквы (с учетом ее редкости).

Класс SaveLevelScript Отвечает за сохранение и загрузку состояния уровня игры.

Класс LetterBox Отвечает за логику работы с объектами, представляющими буквы на игровом поле:

  • Обрабатывает создание и отображение случайных букв.
  • Управляет выбором буквы пользователем, изменяя её внешний вид при выборе и добавляя её в слово.

Класс DifficultManager Управляет сложностью игры, регулируя количество новых объектов на поле на основе текущего состояния игры.

Класс BonusLogic Механика усилителей и подсказок:

  • Замена части букв на игровом поле: Позволяет обновить определённое количество букв на поле, предоставляя новые варианты для составления слов.
  • Уничтожение букв на верхней половине поля: Удаляет буквы в верхней части игрового поля, предотвращая его переполнение и проигрыш.
  • Автоматический поиск наиболее длинного слова: Находит и выделяет самое длинное слово, доступное на текущем игровом поле, что помогает в сложных ситуациях или для максимизации очков.

Класс AdsManager управляет рекламой, используя события.

Класс ControllerUI управляет пользовательским интерфейсом игры и меню.

И другие классы предназначеные для анимации, звукового сопровождения и т.п.


Используемые ассеты

В проекте были использованы следующие ассеты из Unity Asset Store:

  1. Game Interface Sound Pack 2.0
    Набор звуковых эффектов для интерфейса.

  2. Casual Game Music Loops Vol. 2
    Коллекция музыкальных лупов для фона.

  3. RainbowArt 5000 Flat Buttons Pack
    Набор кнопок с плоским дизайном, использованных для создания интерфейса игры.

About

Word puzzle game developed in Unity for WebGL on Yandex Games.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published