kvisaz (kvisaz) wrote,
kvisaz
kvisaz

Category:

Тыща английских слов - теперь с туториалом, фуллскрином, джинном, но без блэкджека

Неспешно докрутил фичи к обучающей игрушке по английскому. Главные изменения
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 и других подобных принципов архитектуры. Старший программист однажды сказал:

- В принципе, есть одно хорошее объяснение. Они там, у себя, нейронную сеть вырастили и натаскали ее код писать, который они нам прислали. Вот тогда вся их работа обретает смысл и гениальность.

Я считают, что однажды так и будет - любой человек будет формулировать человеческими словами запрос по игре "эльфы выбегают, в караван стреляют, а за ними зайки верхом на балалайке" - и домашняя развлекательная нейронка будет генерировать майнкрафтоподобный Фоллаут с таким сюжетом. А что там будет в коде - лучше не смотреть ни вам, ни мне, ни любому из ныне живущих людей, ибо силы зла властвуют безраздельно над Гримспенской трясиной и только спасительный обморок убережет вас от чудовищ, как героев Говарда Лавкрафта.

Я написал немного слов по принципу "все равно этот диплом никто не читает". Шутка. Всегда есть люди, которые прочитают и такой диплом.

Планы теперь такие - сделать игру с другим принципом. И еще кое-что.

Tags: kvisaz games, Игры, программирование
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments