порт Корсаров на Андроид

вторник, 11 февраля 2025 г.

30 vs 60 FPS


Вечный холиварн... Одни говорят, что для комфортной игры вполне хватает 30 FPS, киберспортсменам подавай 120  FPS, иначе катку затащить не смогут, любители синематографа вообще утверждают, что человеческий глаз не может распознать более 24 кадров в секунду. Но давайте сначала разберемся, сколько кадров сможет отрисовать наш экран, только уже ни монитора, а нашего телефона. В этом нам поможет AIDA64. Заходим в Отображение и ищем строчку Частота обновления 

Redmi Note 8

Правда, сейчас телефоном с частотой обновления экрана 120 Ghz ни кого не удивишь. Тем не менее, не смотря на все это дело, Unity выставляет частоту обновления экрана для мобильных телефонов - 30 FPS, нет не потому, что разработчики приверженцы одной из сторон спора, это сделано специально, для экономии заряда батареи. В настройках "Player Settings..." параметрами V sync count  частоту обновления экрана уже не изменить, поменять на другое значение можно только через скрипт:
using UnityEngine;

public class My60FPS : MonoBehaviour

{
    void Start()

    {

Application.targetFrameRate = 60;

    }

 }
Вешается на любой объект в сцене, на пример на камеру. В данном случае, частота обновления экрана вместо 30 станет 60 FPS, но следует помнить, что оптимизацию сцены ни кто не отменял, будет 60, если загрузка графического процессора дает возможность это сделать.

пятница, 7 февраля 2025 г.

Итоги пре-афьфа теста

Всем привет! Решил взять отпуск, а по возвращению из него продолжить заниматься портом, а вышло, совсем на оборот, забросил.

"Почему?" - споите вы. Да собственно ответ можно найти в последнем коде этого сообщения, думаю ни кто не обратил на него особого внимания, все прочитали и пошли дальше. Знаете о чем там говориться? Об одном еще одной платформе под названием WebGl, но уже с приставкой mobail. Которое и отбило все желание дальше заниматься портом.

По итогу pre-alpha теста я могу сказать лишь одно, что WebGL для демонстрации, что получается сделать в процессе разработки ни куда не годиться: 

  • Плохая кроссбраузерность, такие браузеры, как Firefox, Opera, вообще отпадают;
  • Плохая производительность, низкий FPS, об этом поговорим чуть позже;
  • Плохая совместимость, если говорить про шейдеры и не приходить на французский, то я лучше воздержусь от комментариев; 
  • Особенности кодирования, вплоть до мозгового штурма, как переделать код, который 5 минут назад корректно работал, корректно заработал и тут.

пятница, 31 мая 2024 г.

Build престал чесаться


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

Тем не менее:

Проверка доступности сайта в интернете из разных точек - 2ip.ru

Это точно не связано с работой DNS серверов, как считалось ранее. Получиться ли у администрации решить проблему с доступом пока не понятно, но резервных и альтернативных площадок не забитых рекламой, куда можно было переехать, особо то и нет. Будем надеется, что это временный сбой, а не сбой, как говориться, с концами.

среда, 22 мая 2024 г.

Изображение для сенсорной кнопки

использовать картинку для сенсорной кнопки

Для того чтобы можно было использовать картинку для сенсорной кнопки. Нужно выбрать  изображение и в Инспекторе у поля Texture Type выставть значение: Sprite (2D and UI).

среда, 15 мая 2024 г.

Пред Альфа v 0.07

Корсары на Андроид

Занявшись портированием игры "Корсары: Проклятье дальних морей" на Андроид я хотел сделать управление, которое реализовано в таких мультиплатформенных хитах, как Assassin’s Creed IV: Black Flag, Uncharted 4, Rise of the Tomb Raider. И хочу сказать, что у меня это получилось!

Что нового:
  • Отключил сенсорные стики для теста нового управления на ПК;
  • Отключил курсор мыши, чтобы снять ограничение камеры рамками игрового поля (экрана);
void Start() { Cursor.lockState = CursorLockMode.Locked; // Блокировка курсора }
  • Отключил анимацию шага назад.*

Что получилось сделать:
  • Подключить скелетную анимацию к модели Николоса Шарпа;
  • Создать управление с 4 степенями свободы: вперёд/назад, влево/вправо, рыскание и тангаж.
  • Разворот персонажа в направление движения, как выше упомянутых играх;

Клавиши управления:
  • Клавиши "Esc" - включить курсор, чтобы можно было закрыть вкладку (игру);
  • Клавиша "Enter" - зайти и выйти из помещений;
  • Клавиши W,A,S,D и клавиши Стрелок - движение персонажа;
  • Правая кнопка мыши - бег.

Вес: 
  • 10,6 Mb.
* Анимацию шага назад думаю, можно будет включить в боевом режиме при абордаже.

P.S. Прыжок (пятая степь свободы) под вопросом т.к. препятствий, которые нужно припрыгивать в игре нет, от слова совсем.

четверг, 2 мая 2024 г.

Пред Альфа v 0.06a

SeaDogs на Андроид
Хайрок вход в Магазин

Получилось сделать бесшовный мир, хотя я его совершенно не планировал, несмотря на то, что последнее время все топят, чтобы было без подзагрузок. Поэтому решил отключить у выхода магазина затемнение экрана, для сравнения, какой вариант лучше.

вторник, 23 апреля 2024 г.

Пред Альфа v 0.06

Корсары на Андроиде
Вход в Верфь

Что нового:
  • Новые локации Верфь и Магазин;
  • Добавлена информационная табличка для отображения имен NPC и названий локаций (как в оригинале);
  • Отключен скрипт скрытия сенсорного управления при запуске игры в браузере настольного компьютера для теста сенсорной кнопки (таблички). Клавиши управления персонажем с клавиатуры остались прежними.

Что получилось сделать:
  • Отображение имен персонажей и названий помещений в правом верхнем углу при приближении Николаса Шарпа;
  • Добавить анимацию появления и исчезновения информационной таблички (потом думаю можно будет переделать в что-то более оригинальное);
  • Табличка кликабельная, вход в помещения осуществляется по клику;
SeaDogs Android
Помещение магазина Хайрока

  • Затемнение экрана при смене локации (очень быстрая загрузка, чтобы можно было хоть как-то сориентироваться, что уже находиться в другой локации, создал искусственный экран загрузки, для паузы);
  • Написать имена персонажей и названий помещений шрифтом log-russ (из оригинала);
  • Коллизию потолка для тангажа камеры в пределах комнаты.
Исправления:
  • Модель для задании коллизии не позволяла подойти ни к дверям дворца губернатора, ни отойти от городски ворот при приближении к ним в плотную;
  • Настройки шейдера не отображал полностью головной убор английских стражников.
Вес  сборки:
  • 10,9 Мб

четверг, 4 апреля 2024 г.

Установка шрифта с кириллицей

Настройки TextMeshPro для установки шрифта с кириллицей

Просто, обычным перетягиванием, поставить понравившийся шрифт с кириллицей в нельзя. Обязательно во время установки нужно в поле Character Sequence прописать код: 0400-04ff 
Если же нужно использовать кириллицу вместе с латиницей, то нужен код: 0000-04ff , иначе работать не будет.

среда, 6 марта 2024 г.

Пред Альфа v 0.05


Что получилось сделать:

  1. Полностью пересобрать сборку; 
  2. Cтруктурировать и оптимизировав код;
  3. Перевести текстуры с формата (.tga) в формат (.png);
  4. Добавить отдельную модель для задании коллизии города;
  5. Провести оптимизацию сцены указав процессору на статичные объекты для облегчения отрисовки.

В результате:

  • Batches упал с 4700 до 1060;
  • FPS увеличился с 245 до 480;
  • Вес сборки уменьшился с 8,5 Mb до 7,5 Mb.
Что нового:
  • Включил отображение теней (в оригинале такого нет);
  • Добавил четырех стражников. Двое у ворот и ещё двое у входа во дворец губернатора;
  • Задал коллизию для каждого стражника (вспомнил про нее перед самой сборкой, поэтому выделил отдельным пунктом);
  • Для избежания одновременного и визуально одинакового проигрывания анимации у стражи,  разделил ее на две части. Первая часть зациклена, вторая часть проигрывается через определенное время (установленное для каждого стражника).

Проблема c изображениями


Недавно только успел объявить о решении оставить старые сообщения относящиеся к разработке адд-она, как выяснилось, что изображения во всех прошлых сообщениях не работают. Кончено, для меня сразу стало ясно, что оставлять блог в таком состоянии ни как нельзя, без картинок он будет выглядит запущенным и большинство читателей просто на просто уйдет с него.

Вариант восстановления отображения картинок путем размещения их на другом хостинге очень трудозатратен по времени, это ни просто заливка изображений на новый хостинг, а переоформление более 100 сообщений. 

Я уже говорил в комментариях Gremlyn'у, и повторюсь еще раз, что об остановки разработки add-on'a жалеть не стоит, компания Adobe не зайдя на рынок мобильных устройств свернула разработку Flash Player'a не смотря на его потребность у миллиардной аудитории. А о сообщениях не связанных с репозиторием на  GitHub'е  желать не стоит тем более. Поэтому прошлые сообщения решил не восстанавливать.