Инструкция по "портированию" игр на движке Unity3D

Страницы :   Пред.  1, 2, 3, 4, 5, 6  След.

Ответить
Автор
Сообщение

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 07-Мар-17 18:47 (1 год 7 месяцев назад)

[Цитировать] 

kampeador
а у тебя есть инструмент для сборки назад?
[Профиль]  [ЛС] 

kampeador

Стаж: 10 лет 9 месяцев

Сообщений: 31


kampeador · 09-Мар-17 20:51 (спустя 2 дня 2 часа)

[Цитировать] 

hypermozg писал(а):
72636709kampeador
а у тебя есть инструмент для сборки назад?
Сначала нужно распаковать/достать файлы без повреждений. Похоже, что шейдеры хранятся там где они и были, только в другом виде. Unity Studio давно не обновлялась и просто не правильно читает структуру файла.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 09-Мар-17 23:40 (спустя 2 часа 49 мин.)

[Цитировать] 

kampeador писал(а):
72650290. Похоже, что шейдеры хранятся там где они и были, только в другом виде
Я тут давеча ковырял ресурсы версии 5.5.1, шейдеры как и прежде были текстовыми скриптами. В папочке CI бывают предкомпиленные (можно выпиливать).
Скажи хоть что за игра.
[Профиль]  [ЛС] 

kampeador

Стаж: 10 лет 9 месяцев

Сообщений: 31


kampeador · 10-Мар-17 01:00 (спустя 1 час 19 мин.)

[Цитировать] 

Ghost of Tale
[Профиль]  [ЛС] 

Артём Владимирович

Стаж: 6 лет 7 месяцев

Сообщений: 2


Артём Владимирович · 10-Мар-17 12:32 (спустя 11 часов, ред. 13-Мар-17 16:59)

[Цитировать] 

hypermozg писал(а):
72636709kampeador
а у тебя есть инструмент для сборки назад?
UABE (Unity Asset Bundle Extractor) имеет такие возможности.
[Профиль]  [ЛС] 

jarkamirov

Стаж: 7 лет 1 месяц

Сообщений: 192

jarkamirov · 22-Апр-17 11:56 (спустя 1 месяц 11 дней)

[Цитировать] 

Мужики, сломайте кто-нить Bob Was Hungry, прикольная аркада. Игра запускается, доходит до выбора уровня и всё, дальше кнопки не реагируют (думаю дело в таблетке)
Часть лога:
Код:
Fallback handler could not load library /home/ubuntu/Documents/Bob Was Hungry/bobwashungry_Data/Mono/x86_64/lib/home/ubuntu/Documents/Bob Was Hungry/bobwashungry_Data/Plugins/x86/libSteamworksNative.so
DllNotFoundException
  at (wrapper managed-to-native) NativeMethods:Services_RestartAppIfNecessary (uint)
  at ManagedSteam.Steam.RestartAppIfNecessary (UInt32 ownAppID) [0x00000] in <filename unknown>:0
  at Steamworks.Awake () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
UnityEngine.GameObject:AddComponent()
Steamworks:get_instance()
Steamworks:get_SteamInterface()
MultiplayerManager:Awake()
Ну и плюс ругачка об эффекте:
Код:
The image effect PLAYERCAMERA (DepthOfFieldScatter) has been disabled as it's not supported on the current platform.
(Filename: /home/builduser/buildslave/unity/build/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Версия плеера 4.6.3f1
Защита наверн Ludosity’s
Архив с игрой: ЗЫ: Кстати игрушка с сайта igg-games.com (не сочтите за рекламу),там прост прямые ссылки на мегу и гугл-драйв. На мегу правда ссылки сдохли и аккаунт забанили, а вот с гугла еще живые. Так вот можно старые игрульки с 4-м плеером под винду утащить и портировать, потому как некоторые торренты со старыми играми хер где найдешь или сиды все по сваливали.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 22-Апр-17 13:52 (спустя 1 час 55 мин.)

[Цитировать] 

jarkamirov
Удали 64-битные плеер и моно, положи libSteamworksNative.so и libsteam_api.so в корень игры.
Запускай
Код:
LD_LIBRARY_PATH=. ./bobwashungry.x86 -logfile out.log
У меня заработало. Правда только первый уровень и без музыки.
В логе появилась одна ошибка
Код:
Platform assembly: /home/brigada/Games/Bob Was Hungry/bobwashungry_Data/Managed/Boo.Lang.dll (this message is harmless)
CallbackStructSizeMismatchException: Mismatch of structure size for struct CloudPublishedFileSubscribed. Ours is: 12, should be: 20. Please report this as it is not an usage error.
  at ManagedSteam.Error.ThrowError (ErrorCodes code, System.Object[] args) [0x00000] in <filename unknown>:0
  at ManagedSteam.NativeHelpers.ConvertStruct[CloudPublishedFileSubscribed] (IntPtr dataPointer, Int32 dataSize) [0x00000] in <filename unknown>:0
  at ManagedSteam.CallbackStructures.CloudPublishedFileSubscribed.Create (IntPtr data, Int32 dataSize) [0x00000] in <filename unknown>:0
  at ManagedSteam.Implementations.Cloud.<.ctor>b__13 (IntPtr data, Int32 size) [0x00000] in <filename unknown>:0
  at ManagedSteam.Steam.NativeCallbacks (Int32 id, IntPtr dataPointer, Int32 dataSize) [0x00000] in <filename unknown>:0
(Filename: /home/builduser/buildslave/unity/build/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Подозреваю, что библиотека Ludosity Wrapper нужна более другая (предыдущая версия).
[Профиль]  [ЛС] 

dj--alex

Стаж: 10 лет 1 месяц

Сообщений: 2813

dj--alex · 26-Апр-17 11:21 (спустя 3 дня)

[Цитировать] 

syberia 3 вышла на Unity, и даже запускается под wine, но без 3д рендеринга самой игры.
очень удивило разрешение 1600х900
[Профиль]  [ЛС] 

jarkamirov

Стаж: 7 лет 1 месяц

Сообщений: 192

jarkamirov · 27-Апр-17 22:02 (спустя 1 день 10 часов)

[Цитировать] 

Пробанул портировать Scanner Sombre, игра завелась, даже без таблеток, но единственный косяк - это отсутствие звука и ругачка на libAkSoundEngine.so. Пробовал подсовывать разные версии, но тщетно, видать либо патченная какая или нужна особая версия. Кому интересно, то архив тут:
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 28-Апр-17 00:21 (спустя 2 часа 19 мин.)

[Цитировать] 

jarkamirov писал(а):
73000152отсутствие звука и ругачка на libAkSoundEngine.so. Пробовал подсовывать разные версии, но тщетно
надо было искать версию по исходному dll
[Профиль]  [ЛС] 

jarkamirov

Стаж: 7 лет 1 месяц

Сообщений: 192

jarkamirov · 28-Апр-17 01:09 (спустя 48 мин.)

[Цитировать] 

hypermozg писал(а):
73001107
jarkamirov писал(а):
73000152отсутствие звука и ругачка на libAkSoundEngine.so. Пробовал подсовывать разные версии, но тщетно
надо было искать версию по исходному dll
Ну нету у меня виндовой версии )) Тем более я хз, как собирать под юнити эту либу. Там наверн придется ставить сам юнити и компилить наверн...
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 28-Май-17 12:48 (спустя 1 месяц)

[Цитировать] 

https://github.com/taviso/loadlibrary
Возможно, вот эта штука сможет как-то помочь с играми, у которых есть dll-ки, so-вариантов которых найти не удаётся.
[Профиль]  [ЛС] 

dm.bondarev

Стаж: 8 лет 9 месяцев

Сообщений: 35


dm.bondarev · 30-Май-17 21:54 (спустя 2 дня 9 часов)

[Цитировать] 

имхо для начала надо с помощью ldd зависимости исследовать и удовлетворить как здесь https://refract.uservoice.com/forums/217549-bug-reports/suggestions/6956402-no-sound-in-linux-x86-64 (у них видимо не получилось, но направление верное)
Цитата:
Там наверн придется ставить сам юнити и компилить
юнити для десктопа компилит только свои managed скрипты. native библиотечки использует готовые.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 03-Июн-17 03:10 (спустя 3 дня, ред. 03-Июн-17 03:10)

[Цитировать] 

Попалась тут игрушка с интересной версией движка: 5.6.1xf1Linux
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 03-Июн-17 12:40 (спустя 9 часов)

[Цитировать] 

hypermozg писал(а):
73230995Попалась тут игрушка с интересной версией движка: 5.6.1xf1Linux
Интересно. Там, случайно, вулкан не завезли? Вроде в 5.6 как раз обещали.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 03-Июн-17 12:58 (спустя 17 мин.)

[Цитировать] 

Зека-из-Гроба писал(а):
73232684Там, случайно, вулкан не завезли?
хз, у меня железка довулкановой эпохи.
[Профиль]  [ЛС] 

AmfitaminX

Стаж: 7 лет 6 месяцев

Сообщений: 15

AmfitaminX · 03-Июн-17 18:20 (спустя 5 часов)

[Цитировать] 

скрытый текст
Preloaded type GtkListStore
Preloaded type GtkWindow
Preloaded type GtkVBox
Preloaded type GtkImage
Preloaded type GtkNotebook
Preloaded type GtkHBox
Preloaded type GtkFrame
Preloaded type GtkAlignment
Preloaded type GtkTreeView
Preloaded type GtkLabel
Preloaded type GtkCheckButton
Preloaded type GtkScrolledWindow
Preloaded type GtkComboBox
team_api.so
Player data archive not found at `/home/nr0pb/AF2/AFCGame_Data/data.unity3d`, using local filesystemDesktop is 1600 x 900 @ 60 Hz
Unknown renderer 2
./AFCGame.x86_64() [0x12117f0]
./AFCGame.x86_64() [0x79af76]
./AFCGame.x86_64() [0x79b529]
./AFCGame.x86_64() [0x1227923]
./AFCGame.x86_64() [0x454b0c]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xef) [0x7f24d666782f]
./AFCGame.x86_64() [0x45dcd8]
(Filename: Line: 308)
Unknown renderer 1
./AFCGame.x86_64() [0x12117f0]
./AFCGame.x86_64() [0x79af76]
./AFCGame.x86_64() [0x79b529]
./AFCGame.x86_64() [0x1227923]
./AFCGame.x86_64() [0x454b0c]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xef) [0x7f24d666782f]
./AFCGame.x86_64() [0x45dcd8]
(Filename: Line: 308)
No supported renderers found, exiting
./AFCGame.x86_64() [0x12117f0]
./AFCGame.x86_64() [0x79af76]
./AFCGame.x86_64() [0x79b529]
./AFCGame.x86_64() [0x454b62]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xef) [0x7f24d666782f]
./AFCGame.x86_64() [0x45dcd8]
(Filename: Line: 525)
Есть идеи?
Unity 5.6.1f1
[Профиль]  [ЛС] 

dm.bondarev

Стаж: 8 лет 9 месяцев

Сообщений: 35


dm.bondarev · 07-Июн-17 16:49 (спустя 3 дня)

[Цитировать] 

надо смотреть https://docs.unity3d.com/Manual/LogFiles.html
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 16-Окт-17 15:13 (спустя 4 месяца 8 дней)

[Цитировать] 

К данной теме относится лишь частично, но раз уж вопрос возник в процессе «портирования» юнити-игры, запощу сюда.
Собственно вопрос: какими ещё вызовами помимо open() и open64() программы (запущенные от обычного пользователя) могут читать/писать/создавать файлы?
Теперь подробнее, зачем мне это знать. Пытаюсь портировать одну игрушку — Another Adventure. Хитрых плагинов нет, но есть одна серьёзная проблема. Игра упорно хочет создавать сейв в файле /save/cloudsave.data. Естественно, по умолчанию у неё прав на это нет, но если рутом создать каталог /save и дать на него права 777, то игра работает замечательно. Хотел решить эту проблему, перехватывая открытие этого файла, с помощью переопределения open() и open64() и подсовывания переопределённых функций в LD_PRELOAD, то есть просто подменять /save на например /home/user/.local/share/AnotherAdventure и отдавать такой же дескриптор (вызывая оригинальный open. Но проблема в том, что игра то ли создаёт и читает этот файл не через open(), то ли как-то хитро форкается, что форк не наследует мой LD_PRELOAD, но тем не менее, мой open она для этого файла не вызывает. Для всего вызывает (все файлов в каталоге самой игры, пока грузятся, кучас всего в /dev и т.д.), а для этого файла нет. Вот код моей «либы», которая пока ничего не подменяет, а просто логгирует все вызовы open() и open64(). Так вот, куча имён файлов в выводе присутствует, но ничего, содержащего /save или cloudsave.data нет. Почему-то очень много вызовов open64() на '/'.
Есть какие-нибудь идеи по этому поводу — почему так, и как она не вызывая open() или open64() читает/пишет этот файл, или вызывает, но не мой? Может какие-нибудь идеи по поводу того, как ещё это дело побороть?
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 17-Окт-17 01:37 (спустя 10 часов)

[Цитировать] 

Зека-из-Гроба писал(а):
74028876Но проблема в том, что игра то ли создаёт и читает этот файл не через open()
Код:
man 2 create
Код:
man 2 link
Код:
man 2 fcntl
+ основной ман по open (про всякие openat и тд)
Зека-из-Гроба писал(а):
74028876Вот код моей «либы», которая пока ничего не подменяет, а просто логгирует все вызовы open() и open64(). Так вот, куча имён файлов в выводе присутствует, но ничего, содержащего /save или cloudsave.data нет. Почему-то очень много вызовов open64() на '/'.
Код:
sudo strace -f -ff -o game.log -e trace=file ./SuperPuperGame.x86_64
создаст логи для всех дочерних процессов со _всеми_ файловыми операциями. ("либа" не нужна)
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 17-Окт-17 03:09 (спустя 1 час 31 мин., ред. 17-Окт-17 03:09)

[Цитировать] 

hypermozg писал(а):
74032204
Код:
sudo strace -f -ff -o game.log -e trace=file ./SuperPuperGame.x86_64
создаст логи для всех дочерних процессов со _всеми_ файловыми операциями. ("либа" не нужна)
Спасибо.
Хотя "либа" в любом случае нужна будет, ведь ради неё всё и затевается. Мне что требуется-то — поймать, где оно этот файл открывает и подсунуть другое имя.
А хотя блин… Не только без firejail, но ещё и от рута игру запускать на выполнение?..
Эх… Придётся виртуалкой обзавестись. Думал малой кровью обойтись, но видимо не судьба.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 17-Окт-17 04:06 (спустя 57 мин.)

[Цитировать] 

Зека-из-Гроба писал(а):
74032349Хотя "либа" в любом случае нужна будет, ведь ради неё всё и затевается. Мне что требуется-то — поймать, где оно этот файл открывает и подсунуть другое имя.
проще в коде поменять /save (скорее всего там будет \save) на ./sav
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 17-Окт-17 10:15 (спустя 6 часов)

[Цитировать] 

hypermozg писал(а):
74032439проще в коде поменять /save (скорее всего там будет \save) на ./sav
Поиском, конечно же, пробовал в первую очередь. В файлах игры строка save (с маленькой буквы) находится только в именах функций (типа saveVelocity) и в строках текста, где оно чисто как слово в предложении. Видимо, сжатие.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 17-Окт-17 11:04 (спустя 48 мин.)

[Цитировать] 

Зека-из-Гроба писал(а):
74033172В файлах игры строка save (с маленькой буквы) находится только в именах функций (типа saveVelocity) и в строках текста, где оно чисто как слово в предложении. Видимо, сжатие.
в Assembly-CSharp*.dll, запись будет двубайтовой
скрытый текст
[Профиль]  [ЛС] 

Dzok

Стаж: 10 лет 4 месяца

Сообщений: 355


Dzok · 19-Ноя-17 17:22 (спустя 1 месяц 2 дня)

[Цитировать] 

Немного дурацкий вопрос. У кого-нибудь случайно не завалялся плеер версии 5.6.0b11?
[Профиль]  [ЛС] 

dm.bondarev

Стаж: 8 лет 9 месяцев

Сообщений: 35


dm.bondarev · 20-Ноя-17 17:15 (спустя 23 часа)

[Цитировать] 

Цитата:
плеер версии 5.6.0b11
http://beta.unity3d.com/download/a13db154d9f7/download.html
[Профиль]  [ЛС] 

furepuncher

Стаж: 4 года 8 месяцев

Сообщений: 69


furepuncher · 14-Мар-18 11:53 (спустя 3 месяца 23 дня)

[Цитировать] 

В Guns, Gore and Cannoli 2 релизнулась, никто не пробовал пошаманить над ней? Первая на Unity3D была, это тоже вроде как.
[Профиль]  [ЛС] 

hypermozg

Стаж: 5 лет

Сообщений: 1900


hypermozg · 01-Апр-18 11:24 (спустя 17 дней)

[Цитировать] 

Unity опубликовала исходный код своего игрового движка и редактора
[Профиль]  [ЛС] 

Зека-из-Гроба

VIP (Заслуженный)

Стаж: 7 лет 10 месяцев

Сообщений: 5506

Зека-из-Гроба · 01-Апр-18 15:10 (спустя 3 часа)

[Цитировать] 


Надеюсь, не первоапрельская шутка. К сожалению, правда, там не весь движок, а только его C# часть, C/C++ код всё ещё закрыт.
[Профиль]  [ЛС] 

Хрюнделёк

Помощник модератора

Стаж: 8 лет 3 месяца

Сообщений: 3478

Хрюнделёк · 14-Апр-18 20:26 (спустя 13 дней, ред. 14-Апр-18 20:26)

[Цитировать] 

furepuncher писал(а):
74981653В Guns, Gore and Cannoli 2 релизнулась, никто не пробовал пошаманить над ней? Первая на Unity3D была, это тоже вроде как.
Найди UniversalMediaPlayer.so 64-битный, может чего и получится. С vlc вроде разобрался, но теперь нужна та либа.
Дальше меню игры не был — вечная загрузка и ошибка об отсутствии UniversalMediaPlayer.so. Видеофайлы в игре убирал, не пропускает.
https://assetstore.unity.com/packages/tools/video/ump-win-mac-linux-webgl-49625
В той — https://steamcommunity.com/app/425240/discussions/1/1470840994954316739/ игре он есть вроде как.
http://rutracker.org/forum/viewtopic.php?t=5433117 — "Полный источник: не было 5 дней".
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error