Portal for PS Vita

Порт Portal 1 на PS Vita

Порт Portal 1 на PS Vita

Статус: В работе
Дата старта проекта: Nov 12, 2023
Дата последнего изменения: Feb 25, 2024

Всё началось с того, что я решил поискать, делал ли кто-то подобный проект.Fishinge Единственное, что я нашёл, это видео на YouTube с минутным геймплеем Portal на PS Vita.

Порт сделал человек с ником DanCooper, видео было загружено на канал Cauê Tolentino 27 апреля 2021 года. Была продемонстрирована первая локация из игры.

Сам альфа-билд был загружен на Google Drive, но сейчас файл с ним недоступен.peepoRain Это затрудняет определение точного метода создания порта. Однако можно утверждать, что все ассеты были взяты из оригинальной версии Portal 2007 года.Hmmm Интерфейс был хорошо скопирован из версии для консолей Portal: Still Alive или версии для Nvidia Shield.

Также стоит отметить, что при игре виден стандартный скайбокс из движка Unity, поэтому можно утверждать, что этот порт был сделан на движке Unity, в то время как оригинальная игра была сделана на движке Source.

После я забыл про это видео. И снова вспомнил, когда узнал про проект android.rinnegatamante.it, который создан для того, чтобы портировать игры с Android на PS Vita. И в списке игр Theoretically Possible для портирования обнаружил Portal (ту самую версию для Nvidia Shield). Но пока никто не брался за её портирование, и есть предположение, что если получится запустить оригинальный Portal на PS Vita, то работать он будет не очень хорошоSadge, и придётся подгонять ассеты, графику и другое для того, чтобы Portal был играбельным на PS Vita.


Ранее я экспериментировал с инструментами разработки PS Vita и портировал свою игру на PS Vita: Tetris на PS Vita. Поэтому я окончательно принял решение попробовать портировать Portal на PS Vita.

Начало разработки

По началу задача казалась мне лёгкойPepegaChat. Взять готовый ассет с механикой порталов и конвертировать .bsp карты в .obj при помощи модифицированного BSP Viewer.
Но я столкнулся с рядом трудностей, которые не позволяли сделать это просто.
Первая трудность заключалась в банальном отсутствии PS Vita support packages для версии Unity выше 2018.2.19f1. Поэтому взять готовый ассет не получитсяPepeWhy.

В принципе Unity 2018.2.19f1 не слишком старая, и поэтому для меня не было сложностью переписать уже готовый алгоритм порталов из того же ассетаpeepoEvil. И первая проблема с которой я столкнулся, это шейдер, который обрезал объект входящий в портал. На PS Vita этот шейдер вызывал артефакты и после выдал ошибку GPU.

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

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

После этого я занялся визуальной частью, а именно:
- извлёк все ассеты из Portal и Portal 2(в основном мне нужны были звуки и музыка)
- добавил модельку портальной пушки и анимировал её
- добавил основные звуки связанные с портальной пушкой

Так как я не спец в настройке particle system я оставил это на потом.MmmHmm


Также я начал реализовывать систему для создания "test chambers".


В результате у меня получилось это:



После этого начался сущий кошмар...

Как я потратил 3 дня своей жизни в пустую

Основные механики были готовы на 90% и я решил начать понемногу переносить карты из Portal в Unity. Так как я не хотел самостоятельно переделывать все карты из игры я решил попробовать конвертировать .bsp карты в .obj. У меня был в этом небольшой опыт, когда я делал смешное видео про Half-Life в Cinema 4D(сейчас я уже вряд ли его найду, это был 2018 год).
Тогда я использовал BSP Viewer и он работал просто превосходно! Для карт из движка Source лучше использовать модифицированный BSP Viewer из Crafty.
Первая проблема с которой я столкнулся была предсказуемой. Программа не видела текстуры из Portal.

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

продолжение скоро будет...