WORD SHOT 0.4
Привет! Уже в течении 6-7 месяцев, весну и всё лето, я делаю игру WORD SHOT. Её жанр можно было-бы определить как "клавиатурный тренажёр", ну или игра "по составлению слов". Простая казуалка, максимум на месяц работы, где нужно правильно писать слова на школьной доске. Но, как это часто бывает, всё пошло не по плану...
Да, последнее предложение в предыдущем абзаце было написано, конечно, для пущего драматизму. Всё идет по плану, но есть нюансы. И об этом - в очередном дневнике разработки WORD SHOT (предыдущие здесь и здесь).
3-в-1
Когда тебе интересен сам процесс разработки, время летит незаметно. К тому-же мой внутренний перфекционист часто берёт вверх и уговаривает добавить ещё одну "вот эту, очень нужную" опцию или деталь в игру, что, объективно, влияет и на сроки.
Так произошло и на этот раз. Помимо классического игрового режима Word Typing ("Печатай слова на скорость") я решил добавить в игру ещё два: Word Learning ("Изучай иностранные слова") и Word Guessing ("Разгадывай слова"). А так-же добавил поддержку мультиязычности. В каждый из игровых режимов можно сыграть на Английском, Французском, Итальянском или Русском языке. Из простого "keyboard trainer" игра превратилась в "3-in-1 word game".
Word Learning
В этом игровом режиме игрок сможет прокачать свой словарный запас, выучить новые слова. В игре используются только существительные, с длиной слов от 3 до 13 букв (в зависимости от текущего уровня игры). Любые языковые пары из поддерживаемых на данный момент четырёх языков.
Word Guessing
Идею этого игрового режима мне подсказали в отзывах, на Пикабу. Конечно, это не совсем скрамбл. Я-бы назвал это анти-кроссворд - у игрока есть набор букв, из которых нужно составить загаданное слово.
Про текущий прогресс я вкратце написал. Сейчас немного технических деталей и "подводных камней" разработки.
Вот несколько (субъективных) пунктов, которые заинтересовали меня попробовать этот двиг для игры:
- активно развивается, хорошая поддержка, используется в серьёзном продакшене
- Lua в качестве скриптового языка
- небольшой размер результирующего файла, билд шустрый
- экспорт в win/osx/linux/html5 + мобайл
- возможность использовать сторонние расширения и модули
Минусы тоже есть, и они так-же субъективны. Например: отсутствие многих вещей "из коробки", нет экспорта на консоли, заточен под 2D мобайл (писать трёхмерный FPS на нём будет не очень просто).
Словари
У каждого игрового жанра есть тот основной тип ресурса, на производство которого тратится больше всего времени и усилий. Тайлмапы для 2D платформера, 3D модели для FPS и т.д. Для "игры в слова" - это, очевидно, словари. Каждый словарь - это обычный текстовый файл с парами "слово = перевод" в формате UTF-8. Процесс составления словарей (а их в игре на данный момент 16) скучный и рутинный. Занял довольно много времени.
Юникод
Словари в игре могут быть на очень разных языках. А это юникод. Defold использует Lua 5.1 в качестве скриптового языка. Но если задать вопрос "Поддерживает-ли Lua юникод?", то ответ будет такой: "И да, и нет". Да, потому-что внутри кавычек строковых переменных он отлично будет себя чувствовать. Нет, потому-что стандартная библиотека string его не поддерживает, и работа со строками будет не такой, как вы могли-бы ожидать:
К слову, большинство игр эта "проблема" не затронет. Но не в случае с WORD SHOT. Код игры активно работает с юникод-строками. Всё решается использованием сторонних модулей (библиотек функций):
Диакритики в языках обрабатываются нормально, поэтому слова, например, на французском можно печатать прямо на клавиатуре (конечно-же с французской раскладкой):
0.4 и 6 месяцев
Ну и пару слов в качестве промежуточного итога разработки игры за полгода. Что получилось сделать?
3 типа игры (Печать/Изучение/Разгадывание слов), 2 режима игры (Таймер и Релакс), 16 словарей (1500-1700 слов в каждом), 4 языка (Английский, Французский, Итальянский, Русский), музыка и звуки, метрики игрока (WPM, CPS, скорость печати и др.).
Спасибо всем, кто дочитал до этого момента. В качестве бонуса ) предлагаю немного размять свои мозги и решить слово-загадку 7 уровня из игры WORD SHOT. (Подсказка: "каждый программист знает это").
Следить за разработкой игры можно в соцсетях, поиграть можно на itchio (все ссылки есть в первом посте).