0
Missing Information

Does Bolt support PS4?

马斯修斯 3 months ago • updated by Yuyu 6 days ago 10
Hi guys!
        I am appreciated for your attention! We are developping our game using bolt (1.4.0.f) in unity (2017.2.3f).That is a wonderful tool, but we want to know if Bolt support PS4 platform?Because our game will be transferred to PS4 from PC, but we meet some problems for this. So we want to know if bolt support ps4 platform? how we do it?

        We will be appreciated that if you can introduce the solution and some ps4 product using bolt. Thank you !

PS: there are some errors below:

01:20:51 ExecutionEngineException: Attempting to JIT compile method 'System.Collections.Generic.Dictionary`2<UnityEngine.SceneManagement.Scene, Bolt.SceneVariables>:.ctor ()' while running with --aot-only.
01:20:51 
01:20:51   at Ludiq.SceneSingleton`1[Bolt.SceneVariables]..cctor () [0x00000] in <filename unknown>:0
01:20:51 Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Ludiq.SceneSingleton`1
01:20:51   at Bolt.SceneVariables.Awake () [0x00000] in <filename unknown>:0
01:20:51  

--
-----------------------------------------------------------
敏于事,讷于言,精于业
Bolt Version:
Unity Version:
.NET Version:
Under Review

Hi,

Sorry you're experiencing this issue. I'll have to give it a look to figure out why this type would be JIT compiled, normally the Unity code stripping should be able to handle it.

In the mean time, can you try creating a new C# script with this and see if it fixes it:

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Scripting;
using System.Collections.Generic;
using Bolt;

[Preserve]
public static class AotSceneDictionaryFix
{
    [Preserve]
    public static void Fix()
    {
        new Dictionary<Scene, SceneVariables>();
    }
}

Could you explain more clearly? Should I create a new c# script to test it?

new 1.txt


We Create a new C# script the same as you gave, but we meet the errors below:




00:05:37 sceKernelVirtualQuery failed, 0x8002000d
00:05:37 Failed to deserialize scriptable object.
00:05:37 System.Runtime.Serialization.SerializationException: Deserialization into 'Bolt.StateMacro' failed. ---> System.InvalidOperationException: Internal Deserialization Error - Object definition has not been encount
00:05:37 ered for object with id=68; have you reordered or modified the serialized data? If this is an issue with an unmodified Full Serializer implementation and unmodified serialization data, please report an issue wi
00:05:37 th an included test case.
00:05:37 at Ludiq.FullSerializer.Internal.fsCyclicReferenceManager.GetReferenceObject (Int32 id) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.
00:05:37 Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gene
00:05:37 ric.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collectio
00:05:37 ns.Generic.List`1& processors) [0x00000] in :0
00:05:37 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:05:37 at Ludiq.Serialization.DeserializeJson (Ludiq.FullSerializer.fsSerializer serializer, System.String json, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:05:37 at Ludiq.Serialization.DeserializeInto (SerializationData data, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:05:37 at Ludiq.LudiqScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in :0
00:05:37 --- End of inner exception stack trace ---
00:05:37 at Ludiq.Serialization.DeserializeInto (SerializationData data, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:05:37 at Ludiq.LudiqScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in :0
00:05:37 Ludiq.LudiqScriptableObject:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()

Hi,

That is actually an entirely separate error. Did you change the project at all other than adding the script I suggested?

We test a very simple game demo using bolt for PS4 platform, but we still get errors below(AOT build):

00:24:05
00:24:05 Failed to deserialize scriptable object.
00:24:05 System.Runtime.Serialization.SerializationException: Deserialization into 'Bolt.FlowMacro' failed. ---> System.InvalidOperationException: Constructor of Bolt.FlowGraph threw an exception when creating an insta
00:24:05 nce ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ExecutionEngineException: Attempting to JIT compile method 'System.Collections.Object
00:24:05 Model.KeyedCollection`2:.ctor ()' while running with --aot-only.
00:24:05
00:24:05 at Ludiq.GuidCollection`1[Bolt.IUnit]..ctor () [0x00000] in :0
00:24:05 at Ludiq.GraphElementCollection`1[Bolt.IUnit]..ctor (IGraph graph) [0x00000] in :0
00:24:05 at Bolt.FlowGraph..ctor () [0x00000] in :0
00:24:05 at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod*,object,object[],System.Exception&)
00:24:05 at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
00:24:05 --- End of inner exception stack trace ---
00:24:05 at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
00:24:05 at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0
00:24:05 at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in :0
00:24:05 at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsMetaType.CreateInstance () [0x00000] in :0
00:24:05 --- End of inner exception stack trace ---
00:24:05 at Ludiq.FullSerializer.fsMetaType.CreateInstance () [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsReflectedConverter.CreateInstance (Ludiq.FullSerializer.fsData data, System.Type storageType) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections
00:24:05 .Generic.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gen
00:24:05 eric.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collecti
00:24:05 ons.Generic.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections
00:24:05 .Generic.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Gen
00:24:05 eric.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collecti
00:24:05 ons.Generic.List`1& processors) [0x00000] in :0
00:24:05 at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in :0
00:24:05 at Ludiq.Serialization.DeserializeJson (Ludiq.FullSerializer.fsSerializer serializer, System.String json, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:24:05 at Ludiq.Serialization.DeserializeInto (SerializationData data, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:24:05 --- End of inner exception stack trace ---
00:24:05 at Ludiq.Serialization.DeserializeInto (SerializationData data, System.Object& instance, Boolean forceReflected) [0x00000] in :0
00:24:05 at Ludiq.LudiqScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in :0
00:24:05 UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
00:24:05 UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
00:24:05 UnityEngine.Logger:Log(LogType, Object, Object)
00:24:05 UnityEngine.Debug:LogError(Object, Object)
00:24:05 Ludiq.LudiqScriptableObject:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()
00:24:05
00:24:05 (Filename: .\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Hi again,

Sorry you are getting this issue. It seems like a bug in Unity's code stripping algorithm. Can you send me that very simple test project so I can have a look?

Please sent it to: support@ludiq.io so that it stays private!

Hi, 

Same error here while trying to start a simple game with PS4 build.

The game I'm using for testing is the Platformer Tutorial, Unity version is 2018.3.10f1.

Missing Information

Hi Yuyu, 

Can you send the project you're trying to build to support@ludiq.io?

This way we can test for ourselves to reproduce the issue.

Hi Lazlo,

Thanks for the help, I've sent you the project attached in the email, let me know if you any more info.