В прошлые выходные начал делать прототипчик.
Ставишь 8 единиц в ряд — они стираются.
В игре 20 уровней, уйдет где-то 30 минут на всё, уровни можно пропускать.
Должно работать управление клавиатурой, мышью и на мобилках пальцем.
Последний вариант проверить у меня нет возможности.
Приветствуются желающие понаделать своих уровней. Мож еще рандомных уровней добавлю.
- 25 июня 2022, 12:04
- 07
На смартфоне играть не получается, т.к. игра отображается только в портретном режиме и не помещается вся. Обычно на странице в itch устанавливается ландшафтный режим для игры, должно помочь.
Так уменьши размер окна браузера и все будет помещаться.
Поменял ориентацию, попробуй теперь.
Изначально окошко 640x840, вот я и выбрал портретную.
Не получается, потому что игра запускается в полноэкранном режиме (интерфейса браузера нет). У меня сейчас получается, что в ландшафтном режиме не помещается и если попытаться вернуться к интерфейсу браузера - игра ставиться на паузу.
Меньше окно не становится, увеличить в браузере можно, уменьшить нет.
Нашёл вариант: включить отображение страницы в версию для ПК.
В общем, либо это так криво работает Love.js, либо не сделана адаптация под разные экраны. Ну тебе тестировать не на чем, так что не мудрено.
Нажимать на области игрового поля для передвижения нормально, а вот кнопки "плохо реагируют", надо похоже очень точно попадать.
Вернул портретную ориентацию, кнопки сделал чуть больше.
Попробуй - сейчас легче стало по кнопкам попадать?
Не очень работает, попасть легко, но не срабатывает как будто. Вот видео со смартфона (жесты есть): запись.
Попробуй нажать и подержать.
А остальные кнопки всегда сразу нажимаются? Только кнопки перемещения глючат?
Из "вспомогательных" глючит кнопка "Список уровней", остальные нормально.
Если зажать на кнопке стрелки, когда она работает сразу, то персонаж перемещается последовательно на несколько клеток. Если она не срабатывает сразу, то при долгом нажатии срабатывает функция выделения и у меня выделяется текст из надписи о движке и теряется фокус на канве, соответственно на игре.
Новое видео
Может тогда удержание тыкаемых кнопок вообще отключить?
Поднял кнопки еще повыше, убрал обновление координат клика при перемещении курсора/нажатия.
Пробуй теперь, не удерживая кнопки, просто нажимая.
Теперь играется нормально, таких проблем с кнопками нет. Но в полноэкранном режиме было бы лучше: видео.
По поводу удержания кнопок, оно работает, так что можно и оставить.
Добавлю: в мобильных браузерах на двойное нажатие на любую часть страницы, при работе в режиме для ПК, автоматически определяется как событие по увеличению масштаба (событие браузера). Поэтому если часто нажимать на кнопку, можно просто увеличить страницу случайно. При работе в обычном режиме или полноэкранном таких проблем нет.
У всех мобилок же разное разрешение дисплея?
Получается надо будет спрашивать размер дисплея и масштабировать под него картинку.
Разрешений очень много. Но нужно ориентироваться на соотношение сторон (3:4, 18:9, 16:9...). В зависимости от того под какое соотношение создана твоя игра, ты меняешь масштаб по ширине или высоте. Задача поместить так, чтобы самая длинная сторона помещалась в экран пользователя, соответственно другая сторона поместиться автоматически. А если у короткой стороны будут полоски, то делаешь фон подходящий (текстура для фона больше, если просто цвет, то тут понятно).
На ПК это легко даже тестировать: меняй размер окна игры (двигай за края в оконном режиме) и смотри, как она будет выглядеть, вписывать в новые размеры/соотношения.
Ещё могу предложить, чтобы адаптация настроена по ширине, а не по высоте. Поэтому низ игры сейчас не помещается, т.к. по ширине влезло и пропорции сохраняются.
А в портретном режиме, наоборот, надо чтобы по ширине всё помещалось. Тут надо учитывать соотношение сторон у игры и соотношение смартфона, чтобы всё корректно всегда помещалось.
Шрифт сразу напоминает стиль игры Baba is you. Я не большой любитель механики сокобан, но поиграл немного с удовольствием. Играл только на смартфоне, т.к. до ноута руки не доходят (я в отпуске).
Ещё плохо реагирует игра на нажатие кнопок (в частности, часто проблема нажать список уровней, может надпись о движке мешает). Ну это всё проблемы мобильного игрового опыта. :)
Прошёл. Нормально так. К кривой сложности есть вопросы, но механики интересные. Можно ещё много уровней построить на них =)
Это да, надо расставлять уровни по ее возрастанию.
Только вот нужно ли. Не надоест ли играть после 20 уровней?
Не, туториалы для новых механик так и должны быть более лёгкими. Незачем всю сложность делать по возрастанию.
Это само собой, но там есть прям очень лёгкие уровни даже на уже представленных механиках.
Какие уровни показались легче предыдущих?
После нескольких прохождений я уже знаю как их проходить и уже не могу трезво оценить сложность.
Ну вот level 2 от 5 и 9 почти ничем не отличается. 6 от 7 тоже почти не отличается по смыслу. 9-ый похож на 5-ый, а от того не такой уж сложный. 11-ый тоже на 9-ый похож. Да, я вижу что там больше линий нужно составить, но реально это сложность не поднимает почти. 12-ый от 11-го тоже не отличается особо. А 13-ый от 7 и 6. 14-ый от 10-го. Ну типа это более сложная версия, но на деле не особо.
При этом если бы эти уровни шли подряд - был бы другой эффект, можно было бы сразу сравнить и понять что да, уровень стал чуть сложнее. Но с разрывами это не сильно заметно.ю
А я наоборот их так перемешал чтобы не было заметно что след. уровень почти такой же, но только чуть сложнее.
Короче, надо тупо пробовать больше разных уровней сделать.
И отсеивать похожие или неинтересные.
На хроме зависает на надписи "running", на фаерфоксе - играется.
В целом занятно, не слишком легко и не слишком сложно. Несмотря на то, что сокобаны весьма надоели, что-то в этом есть.
Неплохо было бы слегка анимировать движение и прочие события.
Слегка путает, что в некоторых уровнях можно проходить через обратную сторону экрана, а в некоторых - нет.
Последняя механика порадовала, что можно уже даже не собирать единицы, а просто разбирать. :)
На таких уровнях рисуется граница на границе игрокого поля.
Заменил 4 уровня, добавил 4 новых.
Сделал анимацию удаления единичек и генератор рандомных уровней в конце игры.
ссылка
Хочу у тебя уточнить про возможности движка Love2D в вебе. Есть ли ограничения, баги его использования по сравнению с ПК-версий именно в части стандартных функций (графика, звук, корутины...)?
Ну и какого API для работы с определением браузера (типа, настроек и т.п.), я так понимаю нет? Заранее, спасибо
Мне ответили на discord-сервере по поводу данного вопроса:
Если у тебя есть что дополнить.
Официально WEB не поддерживается, чего ты хочешь от бесплатного движка, делаемого на энтузиазме?
Неофициально есть 2 стула:
love.js, который транслятор на emscripten (другой js-движок под web).
Игра работает шустро, но этот порт больше не разрабатывается, последнюю его версию (для 0.10) у меня не получилось запустить, использую более старую для версии движка 0.8. Мне хватает.
WebBuilder, текущий разрабатываемый вариант, поддерживает версию 0.11.1.
Эта штука более удобная, но более медленная и прожорливая. Использую только если пред. вариант не работает.
игра будет работать медленнее (спасибо, кэп!)
все звуки и музыку грузить как 'static' (а не 'stream' по умолчанию)
работают только простенькие шейдеры, но лучше их вообще не использовать - у кого-то могут не скомпильнуться и игра не запустится
не использовать ПКМ, F1, TAB
touch-события работают (если хочешь игра на мобилке)
сборку проверять в разных браузерах (можно прямо с жесткого диска, никуда не выкладывая)
love.js
glsl-шейдеры не поддерживаются, только frag
захваты мыши и смена курсора не работают (курсор всегда активен и принадлежит браузеру)
выход из игры игнорируется
частота кадров фиксируется на 60
в самом начале игры лучше делать паузу на 1-2 секунды, поскольку в начале очень большой "dt" (delta-time)
добавить ограничение dt, посколько иногда резко проваливается
чтобы работала клавиатура, нужно кликнуть мышью на синем поле (на встроенной HTML-странице), а не на рисуемом экране игры
после выпуска релиза в index.html нужно вручную в ней прописать название игры
иногда игра почему-то не грузится (помогает Ctrl+F5)
WebBuilder (с ним я работал меньше)
версию в conf.lua поставить "0.11.0" (после сборки getVersion вернет "11.0")
love.image не использовать (не работает)
не работают шрифты из картинок потому что он использует love.image (в веб-консоль выводится ошибка "Ожидается Rasterizer, получено Image")
не работает love.textinput (нужно эмулировать), может глючить смена языка
если игра крашится еще на стадии загрузки - указывай больше объем памяти и стека перед сборкой
В общем, если просто хочешь чтобы можно было играть в браузере - то вот тебе два варианта.
Если более серьезно делаешь игры под WEB - выбери другой, WEB-ориентированный движок.
Я знаю, что не поддерживается. Ты использовал в данном проекте love.js. Он кстати развивается, но уже другим человеком и работает на последней версии движка (11.4) - https://github.com/Davidobot/love.js
Я тебя не за движок спрашивал, а лишь поинтересовался твоим опытом в использовании именно данного стороннего решения. Спасибо
По поводу веб-ориентированных движков, то многие поддерживают данную сборку (по крайней мере, я на такие смотрю: Godot, Defold, Solar2D...). Но есть свои нюансы и проблемы. И мне было интересно, как тут обстоят дела именно с этим.
Для 11.4 версии порта могло многое измениться, так что мой опыт уже мало соответствует реальности.
Читай документацию и пробуй.
Мой ответ выше (цитата с discord-сервера) как раз относится к 11.4. Ответил мне не разработчик порта, а один из разработчиков движка. Так что вывод один - с этим всё сложно ещё. Побаловаться можно, но серьёзно относится в этому не стоит.