LINUX.ORG.RU

Адаптация Something Unlimited

 , ,


0

0

Something Unlimited — это игра со стилистикой одного старого мультсериала.

Немного предыстории. Я давно хотел адаптировать эту игру под нативный запуск на линуксе, но к сожалению она использует движок Unity3d. А там для адаптации под линукс нужно повозиться, если нет в наличии исходного проекта самой игры. К сожалению, у меня это так и не получилось. Однако спустя некоторое время я обнаружил 2 вещи:

1) Разработчики выпустили спинофф этой игры, внезапно с использованием Ren'Py, а не Unity3d.

2) Также разработчики выпустили порт этой игры на Android.

Так как apk фактически представляет собой просто zip-архив, я просто распаковал его с помощью unzip и изучил. К моему удивлению оказалось, что разработчики используют для Android-версии данной игры Ren'Py. Я предположил, что разработчики использовали для порта ту же версию Ren'Py, что и для спиноффа. Далее было сделано следующее

1) Запущен спинофф через portproton(там не было версии для линукса), чтобы определить, какая версия Ren'Py. Для этого был написан и скопирован в директорию game спиноффа скрипт version.rpy со следующим содержимым

screen show_version():
    vbox:
        text "Made with: [renpy.version_only]"
        textbutton "About":
            action ShowMenu("about")
init python:
    config.overlay_screens.append('show_version')
После запуска спиноффа, это позволило определить мне, что нужной версией Ren'Py является версия 8.1.3

2) Были изучены ресурсы Android-порта игры и было обнаружено, что разработчики просто дописали ко всем именам файлов и директорий «x-».

cd SU-Android-92
$ ls
AndroidManifest.xml  assets  classes.dex  lib  META-INF  res  resources.arsc  SU-Android-92.zip
$ cd assets/
$ ls
android-downloading.jpg  android-presplash.jpg  private.mp3  x-android.json  x-game  x-renpy
$ ls x-game
 x-Aero.ttf                          'x-MADE Mirage Bold.otf'     x-script.rpyc
 x-BADABB__.TTF                       x-MadeynSans-Bold.ttf       x-script_version.txt
 x-BebasNeue.otf                      x-MadeynSans-Light.ttf      x-Timeless-Bold.ttf
 x-cache                              x-nothing.png               x-Timeless.ttf
 x-CG                                 x-options.rpyc              x-tl
 x-Charmset.ttf                       x-paladins.ttf              x-Tungsten-Bold.ttf
 x-DORADOHEADLINE.TTF                 x-portraits                'x-UNMASKEDBB 1.OTF'
 x-gui                                x-QuickMoney.ttf            x-UNMASKEDBB_BOLD.OTF
 x-gui.rpyc                           x-ReliqStd-BoldActive.otf   x-UNMASKEDBB_BOLD.TTF
 x-images                             x-ReliqStd-BoldCalm.otf    'x-UNMASKEDBB_ITAL 1.OTF'
 x-LearnShareColaborateBoldFont.otf   x-scenes                    x-UNMASKEDBB_ITAL.OTF
 x-locations                          x-screens.rpyc              x-UNMASKEDBB.OTF
Чтобы это исправить, ко всем именам было применено рекурсивно
for file in *; do mv "${file}" "${file/x-/}"; done
3) Ресурсы Android-порта игры были скопированы с перезаписью в директорию launcher renpy-8.1.3-sdk.

После этого игра заработала нативно.

>>> Просмотр (1920x1080, 1595 Kb)

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

Ответ на: комментарий от nuxster

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

vbcnthfkmnth123 ★★★★★
() автор топика
Ответ на: комментарий от nuxster

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

vbcnthfkmnth123 ★★★★★
() автор топика

Жаль что у меня нет времени разбираться о чём вообще идёт речь и стоит ли оно того.

kirill_rrr ★★★★★
()

Ничего себе какие детективные данные пришлось применять)

Хотя в студенческие годы диссасемблировал некоторые игры от ms-dos, чтобы запустить их. То еще приключение было.

SprainBrains
()

Ух ты, как мощщно спагетти разлилося!

somemong
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.