1. теперь 1000 слов - разбиты на 10 этапов по 20 уровней. Прогресс каждого этапа отражается на кнопках в меню.
2. кнопка перехода в фуллскрин в нижнем правом углу. Работает на ПК, для мобилок позже прикручу.
3. Туториал! На мой взгляд - самое важное, т.к. в предыдущей версии игра больше походила на сырой тест знаний. Теперь перед началом каждого уровня игра показывает пары русских и английских слов в правильном порядке. Можно любоваться сколько угодно, а затем нажать на экран и фишки сложатся в случайную схему.
4. Веселый маскот - джинн!
Текущая версия получила гордый номер 1 и название "1000 слов" - и заменила на главной свою предшественницу

Туториальчик
Обучающий режим заключается в том, что перед началом уровня игра показывает все правильные пары, потом перемешивает их. Я считал, что это необходимо добавить, так как без показа ответов это занятие больше напоминало тест, а не обучение, и не работало бы на новом словаре, который я не знаю абсолютно - а я собираюсь добиться именно эффекта обучения на полностью незнакомых словарях.
Программистам и сочувствующим хочу сказать - если вы начинающий создатель мини-игр, то если вам дорога жизнь и рассудок - избегайте Гримпенских трясин и таких анимационных последовательностей, когда фишки вылетают сначала в одном порядке, потом раскладываются в другом порядке. Вообще любые анимационные последовательности - по сути асинхронное плавание. Если нет опыта с асинхронным программирование в текущем языке/фреймворке и это не жизненно важно - откладывайте фичу. Хотя изучить асинхронное программирование - очень полезно и круто. Практически так же круто и непредсказуемо для рассудка, как и параллельное программирование с потоками.
Джинн
Маскот с заставки взят из того же бесплатного набора графики на Craftpix.net, что и алмазики для фишек. Я считаю, что он выполняет важную роль цветного пятна в начальной заставке. Без него меню выглядит таблицей, а тут почти пещера Али-Бабы!Набор выглядит примерно так.

У CraftPix.net довольно однообразный стиль графики, многие наборы повторяются, но я ценю, что он выкладывает ряд ассетов для всех желающих абсолютно бесплатно. Это не шедевры, но и не полное г, которое может получиться, если я начну рисовать своими ручками. Пожалуй, фишки я еще могу скопировать, но вот маскотов и персонажей любых вариантов безоговорочно надо брать у тех, кто умеет рисовать в казуальном стиле.
Сотни слов
Я решил, что разбить тысячу слов на отдельные сотни - это хороший ход. Потому что тысяча давит, хотя это и небольшой словарный запас. А вот отдельные сотни уже не так страшны.
Кроме того, один из игроков в предыдущую версию сказал, что хотел бы иметь доступ к старшим уровням. Я сделал это в таком виде - можно теперь прорабатывать или просто смотреть разные наборы слов, хотя внутри них уровни так же надо будет открывать.
Предыдущая версия
Остается здесь - http://kvisaz.com/games/600words/v0.5/index.html. Вдруг кто-то в нее влюбился. Шутка. Я буду на нее смотреть и видеть прогресс, или отклонение в сторону от задуманного. Концепция общей прокачки, общего индикатора от тысяч слов мне кажется интересной, так что потом я попробую к ней вернуться. А пока разбиение на небольшие этапы по сто слов мне кажутся более хорошим и гибким вариантом.Во весь экран
Функция, которую я считал очень важной - запуск в фуллскрин режиме - в итоге не очень-то получилась. Да, она работает на десктопных браузерах, но у них и так достаточная диагональ и размеры экранов. Проблема в том, что Fullscreen API не очень хорошо - прямо скажем, безобразно! - поддерживается в мобильных браузерах, там, где она нужна больше всего. Apple откровенно положила на это API длинный японский хрен васаби и не поддерживает даже в последних Safari.
Это означает, что придется сделать другой вариант - просто открывать игру в отдельной вкладке, т.е. запуск собственного урла в новом окне. Это банальная функция для браузерного JavaScript, но блин, этих банальных вещей набирается столько, что в сумме они прекрасно забивают все время, как толпа дерзких первоклашек - дылду семиклассника.
Невидимые миру мелочи
При программировании куча времени уходит на мелочи, о которых трудно рассказать миру. Некоторые, впрочем, может понять каждый - к примеру, разработчик Phaser.io - движка, с которым я работаю - назвал словом frequency (частота) параметр. который на самом деле является периодом. Выглядит сознательным вредительством, особенно когда пытаешься увеличить скорость вылета частиц в первый раз и искренне доверяешь названиям переменных и объектов.
Ну, если человек уже много раз использовал название width для ширины, height для высоты, x и y - для соответствующих координат, и вообще выглядит довольно продуманным и серьезным разработчиком - как-то расслабляешься и не ждешь, что увеличение frequency будет на самом деле уменьшать плотность вылета частиц.
Или, к примеру, ты запускаешь игру на десктопном Хроме, Яндекс-Браузере, Файрфоксе - и все вроде норм (за двумя-тремя пикселами я гоняться не буду, если они не портят игру). А запускаешь мобильный Сафари и видишь, что прозрачная картинка стала черным пятном. А в мобильном хроме с прозрачной картинкой все хорошо, но у растровых шрифтов слетели цвета.
Программистам игр на заметку: растровые шрифты крайне желательно готовить заранее не только в нужном размере, но и в нужном цвете. Это заодно улучшит скорость работы.
Другие жрущие время мелочи - верстка экранов. Их, знаете ли, надо вручную выкладывать из картинок и спрайтов, запускать, смотреть дизайн, возвращаться в код, править значения координат и запускать снова. Эта техника ручной верстки, как я заметил, путешествует по разным игровым движкам - мало где есть полноценные визуальные редакторы. Даже Google добавил в Android Studio визуальный редактор верстки только в 2016 году - и этот редактор дико тормозил. В те дни я много вспоминал Delphi и Borland C++ Builder, как они летали на машинах в 90х годах, вздыхал, молился, постился и слушал радио Радонеж, пока визуальный редактор крашил Андроид-Студию и все перезапускалось опять.
Внутренняя организация программ, состоящих более чем из одной простой функции (а это все программы :)) - это тоже отдельная опера и тема для диссертаций и драк в курилках. Мне хорошо сейчас в том смысле, что я пишу сам для себя, поэтому согласование внутренней архитектуры проходит без мордобоя. Хотя знаете, вот я грызу пальцы - это можно считать мордобоем?
Силиконовая долина аз из
В сериале "Силиконовая долина" герой одно время грыз пальцы. Это реалистичное поведение, я сообщаю. Последнее время, когда я примерно понял, как раскладывать компоненты в текущих мини-играх, я уже практически не грызу - только иногда, знаете, нежно покусываю.
Организация кода, так чтобы он хотя бы уверенно читался самим собой спустя некоторое время, а тем более другими людьми (это практически одно и то же требование) - это один из самых туманных вопросов в программировании. Я помню, в 2016, когда я работал в компании Android-разработчиков нам прислали из какого-то Саратова такие исходники, что старший программист в отчаянии кричал, что это невозможно править.
Вкратце для посвященных - нам прислали сплошные God Objects, раздутые классы. И да, там еще была куча асинхронного и параллельного программирования, и все это было смешано в одном классе. И никакого MVC/MVP и других подобных принципов архитектуры. Старший программист однажды сказал:
- В принципе, есть одно хорошее объяснение. Они там, у себя, нейронную сеть вырастили и натаскали ее код писать, который они нам прислали. Вот тогда вся их работа обретает смысл и гениальность.
Я считают, что однажды так и будет - любой человек будет формулировать человеческими словами запрос по игре "эльфы выбегают, в караван стреляют, а за ними зайки верхом на балалайке" - и домашняя развлекательная нейронка будет генерировать майнкрафтоподобный Фоллаут с таким сюжетом. А что там будет в коде - лучше не смотреть ни вам, ни мне, ни любому из ныне живущих людей, ибо силы зла властвуют безраздельно над Гримспенской трясиной и только спасительный обморок убережет вас от чудовищ, как героев Говарда Лавкрафта.
Я написал немного слов по принципу "все равно этот диплом никто не читает". Шутка. Всегда есть люди, которые прочитают и такой диплом.
Планы теперь такие - сделать игру с другим принципом. И еще кое-что.