Вы не вошли.

1

Пятница, 10 Февраль 2017, 22:29

Исправление багов СRYENGINE 5

Всем привет, очень нужна помощь ! на текущий момент висит задача - на заказ написать демо-версию (скомпиленый exe) простейшей демки для шлема HTC Vive (простой левел по которому просто бегают стандартные юниты с стандартным меню), но столкнулся с проблемами, которые (как оказалось) не смог сам решить.

Потому очень прошу помощи у гуру разбирающихся в движке намного лучше меня:

Готов - по договоренности поддержать финансово разработку реально работающего решения, для каждого из нижеприведенных пунктов - отдельно.

Текущие задачи требующие решения (все они относятся CRYENGINE 5.0 (так хочет заказчик) , хотя и в более высоких версиях ситуация не исправляется, а наоборот добавляются новые баги).

1) В CRYENGINE 5.0 после компиляции не работает встроенное меню т.е нажатие на клавишу ESC, приводит к подвисанию (появляется блюр экран меню без текста и все подвисает), копал - проблемма походу гдето в CrySystem.dll - если эту dll не перекомпиливать, а оставить исходную - из скаченной версии, то в редакторе меню по крайней мере - все работает и не подвисает. Но мне то нужно, что бы меню работало и в экзешнике.

2) При подключении вывода изображения на шлем HTC Vive, выводимая картинка - при повороте головы начинает двигаться не плавно, а скачками. Суть проблемы нашел : чем больше в левеле исполняется флоу-графов
привязанных к каждому юниту, тем больше задержка. Но, что факт - если смотреть на тот же левел в редакторе GameMode (в шлеме), проблемы такой нет - все плавно. А вот в экзешнике после компиляции - такой трабл. Хотя может быть, в этом виновато еще и большое довольно большое кол-во юнитов на карте. Но опять таки, - в редакторе все отлично и проблем таких нет (в гейммоде все плавно).

3) Длинна проигрывания анимации, запущенной для юнита с помощью флоуграф нода PlayAnimation (при animlayer = 0 ), - почемуто фиксированная, т.е анимация для юнита больше сто кадров (приблизительно) не проигрывается - тупо обрывается. А при (animlayer = 3) - все ок. Но мне нужно чтобы и при animlayer = 0 было также.

Примечание ! : экзешник для запуска моего левела, я получаю просто скомпилив проект в Visual Studio 2015, выбрав - GameSDK Release. Никаких своих изменений в исходный свободно-распространяемый код крайэнджина я не вношу.

Это сообщение было отредактировано 1 раз(а), последнее редактирование в "Algeron" (10 Февраль 2017, 22:35)


2

Суббота, 11 Февраль 2017, 07:06

Цитата

хотя и в более высоких версиях ситуация не исправляется
- на 5.11 версии не встречал таких проблем, там очень много всего поправлено, а вот в более новых уже да, багов добавили. Ну а теперь по порядку:

Цитата

В CRYENGINE 5.0 после компиляции не работает встроенное меню
- учитывая тот факт что ты компилиш проект в режиме GameSDK Release(в коде он обозначен вроде как _RELEASE) к движку не привязывается библиотека скалеформа при такой компиляции на стандартных настройках, она как раз и нужна для работы главного меню, а потому нужно компилить либо в режиме profile, либо изменять решение чтобы библиотека корректно подцепилась(проблема вроде решена в 5.31 версии, но я не смотрел).

Цитата

выводимая картинка - при повороте головы начинает двигаться не плавно, а скачками
- я не пробовал работать с подобной гарнитурой(да и нету её у меня), но суть проблемы точно не в количестве нодов в фг логике. Даже если они у тебя все по таймеру каждый кадр выполняются(хотя здесь зависит от нодов, есть ноды затрагивающие общий процесс postUdate, но его замедление просто создаст значительные паузы между кадрами которые повлияют на показатель фпс. Так же если управление камерой(положение и/или поворот) осуществляется с помощью фг - такое возможно, но это будет видно и без шлема, а потому практически невероятно). В общем, нужно скомпилить в режиме profile и посмотреть что будет при запуске демки через лаучер. Если юнитов на карте очень много(50 это в принципе уже много, нужно поделить карту на зоны и включать юниты только в момент захода игрока в зону, в остальное время юниты должны быть скрыты через entity->Hide(true)(можно сделать скрипт на Lua и вызывать эту функцию из него, либо создать новый фг нод), если нет то будут тормоза в не зависимости от положения юнита на уровне(скининг и аттачмент процессы, ИИ а так же расчёты физики почти независят от расстояния в этом движке, а потому создают огромную нагрузку на процессор(точнее на одно его ядро, то же что и отвечает за подготовку кадра к рендеру))), то может просто глючить физика, учитывая что компилится демка в Release режиме, то вполне вероятно что там включаются какие нибудь оптимизации в физ. движке вместе с этим режимом, хотя конечно маловероятно. Ещё можно покопать код отвечающий за обновление положения камеры при подключенном шлеме, но это всё крайне странное поведение движка(хотя учитывая что Release режим попросту не доделан в 5.0 версии(да и в следующих тоже) то ничего странного нету).

Цитата

Длинна проигрывания анимации, запущенной для юнита с помощью флоуграф нода PlayAnimation (при animlayer = 0 ), - почемуто фиксированная
- вероятно она прерывается какой нибудь анимацией из манекена персонажа(если он подключен), а потому лучше использовать нод Actor: PlayMannequinFragment, заранее создав в манекене персонажа фрагмент анимации для персонажа, и поставив в ноде максимальный приоритет выполнения фрагмента. Собственно, это проблему полностью решает(сам сталкивался давно). Есть правда одна маленькая проблемка - этот нод полурабочий, он выполнит анимацию 1 раз точно, но потом станет абсолютно бесполезен, остановить и/или отследить время завершения анимации с его помощью нереально без его изменения и правок, повторить запрос на проигрывание фрагмента тоже не выйдет.

3

Суббота, 11 Февраль 2017, 18:34

CRYENGINE 5.0 - устаревшая, полурабочая, сырая и багованная версия движка. Работоспособность в ней вообще не гарантируется. Вообще, делать заказы на таком кривом софте - это русская рулетка. Возьми Unreal или Unity - это стабильные движки, а CRYENGINE 5 - это выстрел себе в ногу.

И вообще, совет - если ты принимаешь заказы за деньги - то ты должен быть реальным профессионалом в этой области с подтверждённым опытом, который может сам это делать, а не напрягать других. То есть и в коде, и в дизайне, и в самом движке ты должен однозначно быть как рыба в воде. Иначе похоже очень сильно на развод клиента или на попытку по-скорому "найти инвестора для демо". Серьёзно. Если ты в этом совершенно не разбираешься (что очевидно) - найди себе другую работу.
Legacy of the Yods
Indie of the Year Awards


4

Суббота, 11 Февраль 2017, 18:37

Npc - спасибо тебе за советы, по крайней мере стало понятнее в какую сторону начать копать :

1) По поводу скейлформа - походу сложнее всего, там он только идет в уже скомпиленой CrySystem.dll, которая годится, только для подмены в profile сборке. В самих исходниках CryEngine 5 скейлформа нет, и где его достать бесплатно да еще и в подходящей версии непонятно... - чтобы скомпилить release сборку. Возникает закономерный вопрос- как же быть с интерфйесом т.е выводом меню, спрайтов и текстом для release сборки ? Писать свой интерфейс с нуля это же жесть - нереальная по времени...

2) По скачкам изображения в шлеме : сегодня я попробовал в потестить эту проблему в profile сборке , итог - та же фигня что и в release (( (в редакторе при этом все ок). Пробовал для 5.0 и 5.11, в ближ время попробую для последней 5.32 - и отпишусь. Походу, сейчас, что точно можно сказать - чем больше юнитов с fg обрабатывается в сцене тем больше скачкообразная задержка при повороте головы в шлеме (при этом фпс - стабильно высокий в сцене) . Если сборка 5.32 не поможет , буду пытаться реализовать нод для actora c entity->Hide(true), надеюсь, что поможет... Но, это просто жесть, однако, выпускать движок под VR с не работающим VR/

3) По наводке с маникеном, спасибо, буду копать в этом направлении... потом отпишусь





Alex626 ->Скажу что Выводы совершенно НЕ правильные :

1) Как я понял, форум этот (посвященный сырому и забагованному СRYENGINE) создан не только для того, чтобы его хаять и говорить о его глючности, (и преимуществах Unity), а и пытаться совместно с комьюнити (взаимно), решать текущие возникшие проблемы по двигу . Тем более, что они не настолько, как мне думается, не решаемые - при сторонней поддержке.

2) Я не принимал никаких заказов за деньги, хотя я вообще то программист - но зароботок мой - в другой сфере, а СRY и игры - это мое хобби уже почти 2 года, (как и многих тут). Меня просто попросили перевести демку, которую я лично написал ранее - под VR HTC - для бесплатной мед.выставки, и я столкнулся с проблемами : очень многие из них я решил сам, но на трех застрял.
Да мой уровень в движке к сож. не равен (пока) уровню профи - но я и не нуб в нем, просто некоторые не очевидные моменты, для меня совсем не понятны (и это нормально ), + вообще сам движек мне очень нравится (в отличие от Unity, UDK). Потому и обратился за помощью - по ним к профи тут.

И потом, я понимаю, что работающие, готовые решения стоят денег, так как на их нахождение и реализацию было потрачено время другим человеком (потому об этом и написал, что сам готов заплатить - если, что сам не осилю - так как по мне это по честному - не вижу в этом ничего такого)

Это сообщение было отредактировано 7 раз(а), последнее редактирование в "Algeron" (11 Февраль 2017, 19:24)


5

Суббота, 11 Февраль 2017, 19:30

По скачкам изображения: попробуй ещё поставить конс. переменную p_fixed_timestep на значение от 0.1 до 1.0, может всё же физика тормозит, так же стоит sys_physics_enable_MT надо поставить на 0. Сколько вообще персонажей на уровне?

Цитата

он только идет в уже скомпиленой CrySystem.dll
- нет, он отдельной библиотекой идёт - CryScaleformHelper.dll. От неё нету исходников и в компиляции в release моде доступ к ней закрывается. Скалеформ достать бесплатно не проблема вообще, проблема заново сделать интеграцию его в движок, но смысла в этом ноль как и практической пользы.

Цитата

выпускать движок под VR с не работающим VR
- если бы там только ВР не работал... На самом деле там не работает/некорректно работает гораздо больше систем, благо исходники есть - можно всё пофиксить самому. Если хватит терпения...

6

Суббота, 11 Февраль 2017, 19:36

Algeron, извини, если обидел. Ты же написал "заказ", к тому же про версию 5.0 - и я подумал, что ты в теме не разбираешься.

Я писал целую статью про CRYENGINE 5 и ещё отдельно про политику и движки Crytek - вот тут. Движок ужасен, и в течение многих лет нам, энтузиастам этого хобби, доставались сплошь сырые альфы или беты, вместо нормального SDK с нормальным фидбеком. Я лично сделал вывод для себя, что я буду работать на чём-то другом, посматривая одним глазом на изменения в CRYENGINE. Так что, создан этот форум "чтобы хаять" или нет - но тебе что больше нужно - чистая правда, или оптимистические обещания и брехня от крайтеков? Я почти 11 лет занимаюсь в той или иной степени игростроем, в качестве хобби, и немалая часть этого хобби была связана именно с проектами на CryEngine 1, CryEngine 2, CryEngine 3, CryEngine 4(!??). При выходе каждой новой версии или обновления этого "движка" мы каждый раз что-то теряли безвозвратно. В случае с CryEngine 5 - это сразу Scaleform, Lua и привычный нам удобный редактор уровней. Как без этого жить - вопрос хороший. Если от нашего движка не осталось и камня на камне, тогда зачем вообще он нам нужен?
Legacy of the Yods
Indie of the Year Awards


7

Суббота, 11 Февраль 2017, 20:27

Цитата

Движок ужасен
- из коробки да, после полугода правок и изменений одной версии - вполне стабильный движок. Теперь даже поддерживает карты размером до 1024х км2(хотя там уже немного видна погрешность вычислений позиции объектов, но это тоже поправимо, и в целом не так критично).

Цитата

Scaleform, Lua и привычный нам удобный редактор уровней
- на самом деле всё это осталось на месте, можно просто обновлять один билд движка вручную добавляя нужные фиксы из новых версий. Вот исходников от редактора по сей день нету, это очень плохо. Но конечно политика у Кратека странная, вместо исправлений старых проблем они пилят новые фичи и новые проблемы. Ламберярд я попробовал, там всё тоже самое, редактор нестабилен, но там конечно есть исходники от редактора которые позволяют быстро всё поправить. Решение для пользовательского интерфейса там печальное... Хотя для прототипа любой игры подойдёт вполне, но исключительно прототипа. Скалеформ гораздо более функционален и прост в использовании и дебаге. Разработка относительно сложных игр что на крае - что на ламбере - боль и страдания. Но со временем, надеюсь, ситуация изменится в лучшую сторону. CRYENGINE, к сожалению, растерял всё своё сообщество за прошедшие годы из за совсем неадекватной политики руководства Крайтека. С другой стороны, а было ли это сообщество? На официальном сайте большие изменения произошли, старые темы и разделы отправлены в архив. Все, без особых исключений...

8

Суббота, 11 Февраль 2017, 21:18

Ага, да Ламбер ещё хуже. Темы конечно старые удалили, а до этого удалили все наши (сообщества) наработки из файловой базы. И пользователи многие ушли, это верно. Но вся админская челядь как была, так и осталась, со времён Free SDK. А это самое мерзкое сборище негодяев и проходимцев. И обиды свои детские они всё ещё помнят. Так что люди вроде hendrikp, richmar1, и меня - будут избегать этого места. Либо свобода творчества, мысли и своё мнение — либо лизоблюдство, подхалимство и молчание в тряпочку. Эьо жестоко вредит сообществу, потому что они избирательно ограничивают его развитие таким образом. Про мой просмотрщик флоуграфов вообще никто не знает из-за такой политики.

Пилить версию движка целых полгода-год не каждый ещё захочет. К тому времени как ты закроешь какие-либо дыры, может выйти новая версия движка с нужными фичами, либо с несовместимостью с твоими фичами, и придётся ради обновлённой графики или необходимых фич делать ещё полгода работы по портированию. И думаю, что без двойной точности (которой нет в CRYENGINE) действительно будут проблемы с координатами. Scaleform в CRYENGINE уже никогда не добавят, будет уклон в C# вместо Lua, редактор уровней сделан в угоду моде, а не удобству.
Legacy of the Yods
Indie of the Year Awards


9

Воскресенье, 12 Февраль 2017, 04:51

Scaleform в CRYENGINE остался на месте, никто его не будет удалять, единственное рабочее решение для интерфейса у крайтека, может будь у них ресурсы он был бы давно удалён, а так если его и удалят то очень и очень нескоро.. Двойная точность не так уж нужна, в движке есть реализация "segmented world" системы, однако как я понял она доступна только тем кто приобретал лицензию и исходники редактора, я пробовал активировать эту фичу в редакторе через стандартную функцию встроенного скрипт. языка редактора create_sw_level, она корректно создаёт уровень заданного размера из сегментов, однако при попытке экспорта в движок редактор генерирует битый .pak файл уровня всегда одного и того же размера, думаю неспроста. Координаты в сегментах соответственно по другому рассчитываются, там ненужна двойная точность. Да и в целом двойная точность ненужна, ошибки вычисления так и так будут, на одинарной точности в пределах примерно -32768 - 32768 они более ли менее терпимые, варианты с переводом координат в целые числа более интересная альтернатива, к тому же в теории может снизить нагрузку на процессор. Но смысла в этом почти нет, так как всё это можно сделать потом, важно сделать нормальную и интересную игру, а потом если она будет пользоваться спросом никаких проблем не будет, за деньги любой программист(или несколько, если надо быстрее) переведёт движок на нужный тебе тип расчётов координат. Если нету финансирования и игры - двойная точность не поможет разработчику.

Цитата

потому что они избирательно ограничивают его развитие таким образом
- такое везде наблюдается в любом официальном сообществе или даже просто обществе. Свобода мысли и своё мнение там не поощряется никогда. Это давно стало нормой, все привыкли и молчат.

Цитата

редактор уровней сделан в угоду моде, а не удобству
- люди с которыми я работаю в корне несогласны с этим утверждением, всем поголовно новый редактор кажется более удобным. Правда мне он удобным не кажется, но я просто слишком сильно привык к стандартному. Насчёт уклона в C#, это всё ещё вилами по воде, документации нормальной по C# у них нету досихпор вроде. Они пока оценивают веяния "моды"(правда что то долго оценивают), средств на нормальную реализацию чего либо у них уже нету. Иногда вводят полурабочие фичи вроде "схематика"(пытались скопировать UE blueprints). Они пытаются продвигать свой движок для инди разработчиков, однако им он на самом деле ненужен, он не поддерживает необходимые большинству из них платформы, имеет достаточно высокие мин. сис. требования. Что очень плохо для аудитории большинства инди разработчиков. Добавить к этому проблемы движка с сетевой частью - так вообще всех желающих делать выживалки в раннем доступе отсеивает автоматически(из тех кто с серией движков незнаком, т.е новых). Ну и добавить устаревшую документацию, нерабочие фичи и всё остальное - инди разработчик незнакомый с движком убежит на юнити, или ещё дальше. А со своим фондом для поддержки инди разработчиков они ещё и репутацию себе испортили. Мне интересно почему досихпор его не свернули, думают наверное - хорошая завлекалка новых инди разработчиков..

Это сообщение было отредактировано 3 раз(а), последнее редактирование в "Npc" (12 Февраль 2017, 05:12)


10

Воскресенье, 12 Февраль 2017, 17:51

Ещё одна проблема - EULA, по которой нельзя делать ничего, кроме "игр". То есть, запрещено создавать учебные проекты, архитектурные проекты, медицинские проекты, симуляторы (по идее даже "симулятор козла" по их версии - всё равно симулятор).

А со своим фондом для поддержки инди разработчиков они ещё и репутацию себе испортили. Мне интересно почему досихпор его не свернули, думают наверное - хорошая завлекалка новых инди разработчиков..

А что с этим фондом? Я как-то не следил за ним особенно. Так, всякий шлак выкладывают туда вроде.

никто его не будет удалять, единственное рабочее решение для интерфейса у крайтека
Разве? А по-моему меню в 5.3 сделано уже на CE#, без скейлформа. Да и ни одной нормальной темы по Scaleform я не видел даже через поиск Google. Раздел Scaleform вообще отсутствует в новой версии форума. Всё это намекает на то, что теперь Scaleform это просто атавизм, такой же, как и Legacy Editor, и это только вопрос времени, к возвращению обратно в каменный век (2011, Free SDK без Scaleform).
Правда мне он удобным не кажется, но я просто слишком сильно привык к стандартному.
И я привык. Интерфейс 3ds max 2005, по-моему, вещь была хорошая.

Да и в целом двойная точность ненужна

Да, конечно, фича не особенно нужна в 99% случаев, но есть люди, которые захотят сделать авиасимуляторы или что-то вроде этого, и им фича будет нужна (как для flyable aircraft от cwright). Вроде как двойная точность есть в Unigine, а в UE4 можно через блюпринт двигать нулевую координату уровня, чтобы глюков этих избежать.
Legacy of the Yods
Indie of the Year Awards


11

Воскресенье, 12 Февраль 2017, 18:33

Цитата

А что с этим фондом?
- а он неофициально "прикрыт" по отзывам тех кто выкладывал там свои проекты и связывался с крайтеком. А крайтек в свою очередь кормили обещаниями что каждые 3 месяца будут проводить отбор перспективных проектов. Итог - все проекты не перспективные похоже. Хотя это далеко не так. В итоге всё заглохло, конкурсы больше не проводятся, состояние фонда не меняется, да и скорее всего фонд ушёл на зарплаты сотрудникам.

Цитата

меню в 5.3 сделано уже на CE#, без скейлформа
- да не, даже если так то доступ к скейлформу есть в исходниках, даже какие то фиксы делали для него в последней версии. Да и вроде как через CE# есть доступ к скейлформу тоже, соответственно запускать меню можно оттуда, но к СЕ 5.32 я пока качал только код, а потому не знаю что они там сделали.
Для симуляторов СЕ - не самый лучший выбор, физика убита и работает некорректно а так же куча других проблем, это помимо EULA. Авиасимулятор тоже может обойтись без двойной точности, нужно просто переделать систему вычисления координат объектов, либо заюзать крайтековский segmented world(что по сути тоже самое). Ещё там проблемы с выделением памяти в дефолтной версии движка были, но вроде я их победил, в большей степени. Так что симуляторы, вероятнее всего, лучше делать на каком нибудь unigine. Специализированный движок для них. Есть ещё несколько забытых неплохих движков для симуляторов с полным открытым и бесплатным исходным кодом, но они технически несколько устаревшие. Да и в любом случае прототип можно сделать на том что есть, важно потом найти финансирование, не будет без него игры или симулятора как ты не крутись, особенно если у игры непростая концепция и она не 2д.