News Forums RAIN General Discussion and Troubleshooting New version of RAIN available

This topic contains 18 replies, has 5 voices, and was last updated by  TonyV125 5 days, 17 hours ago.

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #40669

    prime
    Keymaster

    We just posted a new version of RAIN, available from the Download page. This version is compatible with Unity 5.3 and up, and includes a number of bug fixes and updates.

    http://legacy.rivaltheory.com/rain/download/

    Officially, RAIN is no longer a supported product, but feel free to continue using it, using these forums, etc. Depending on our developer availability, we will continue to provide critical updates to RAIN for while longer.

    For anyone interested in the future of Rival Theory AI, visit our main page at rivaltheory.com and check out Sentio.

    Thanks!

    Prime

    • This topic was modified 1 week ago by  Sigil.
    • This topic was modified 1 week ago by  Sigil.
    #40674

    matt
    Participant

    Thanks for taking the time to develop and release this! I’m happy (and grateful) to see that you and your team are continuing to publish updates. RAIN has proven valuable to several projects for us.

    #40677

    christougher
    Participant

    Hi, first, thanks so much for the continued support! That is awesome and very much appreciated.

    I test updated today and all my behavior trees are now unuseable. If I select a behavior tree in the project window the Inspector states it is “no longer used” while showing a link to BTAsset. I did the update in 5.5.0 as well as 5.6.0B3 and 5.4.3f1 as well as 5.3.7f1 on a different computer. When the new package is imported and the behavior trees are updated it creates completely blank text files with the same names… I see the text doc is the new format for bx trees as when I create a new behavior tree it creates a similar but functioning text doc…

    Here are the errors that showed up…

    RAINSerializer: Couldn’t convert to System.Int32
    UnityEngine.Debug:LogWarning(Object)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(String, Int32&)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
    RAIN.Core.RAINComponent:Deserialize()
    RAIN.Entities.EntityRig:Deserialize()
    RAIN.Core.RAINComponent:UpdateSerialization()
    RAIN.Serialization.FieldWalker:Reset()
    RAIN.Serialization.FieldWalker:.ctor(IRAINSerializable)
    RAINEditor.Core.RAINComponentEditor:OnGizmoGUI(RAINComponent, GizmoType)
    UnityEditor.AssetDatabase:MoveAssetToTrash(String)
    RAINEditor.Utility.RAINVersion:RemoveOldShaders()
    RAINEditor.Utility.RAINVersion:UpdateVersion()
    UnityEditor.EditorApplication:Internal_CallDelayFunctions()

    BTAsset: problem versioning 1.8 >= 1.8
    UnityEngine.Debug:LogWarning(Object)
    RAIN.BehaviorTrees.BTAsset:OnVersion(String)
    RAIN.Core.RAINScriptableObject:Deserialize()
    RAIN.Core.RAINScriptableObject:UpdateSerialization()
    RAIN.Core.RAINScriptableObject:OnEnable()

    BTAsset: problem versioning 1.8 >= 1.8
    UnityEngine.Debug:LogWarning(Object)
    RAIN.BehaviorTrees.BTAsset:OnVersion(String)
    RAIN.Core.RAINScriptableObject:Deserialize()
    RAIN.Core.RAINScriptableObject:UpdateSerialization()
    RAIN.Core.RAINScriptableObject:OnEnable()
    UnityEditor.AssetDatabase:SaveAssets()
    RAINEditor.RAINSettings:get_ProjectSkin()
    RAINEditor.RAINSettings:get_SkinStyles()
    RAINEditor.Utility.RAINEditorHelper:LookLikeRAINSkin()
    RAINEditor.Core.RAINComponentEditor:OnInspectorGUI()
    UnityEditor.DockArea:OnGUI()

    RAINSerializer: Couldn’t convert to System.Int32
    UnityEngine.Debug:LogWarning(Object)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(String, Int32&)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
    RAIN.Core.RAINComponent:Deserialize()
    RAIN.Entities.EntityRig:Deserialize()
    RAIN.Core.RAINComponent:UpdateSerialization()
    RAIN.Core.RAINComponent:Awake()
    RAIN.Entities.EntityRig:Awake()
    UnityEngine.Object:Instantiate(Transform, Vector3, Quaternion)
    DarkTonic.CoreGameKit.PoolBoss:InstantiateForPool(Transform, Int32) (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:233)
    DarkTonic.CoreGameKit.PoolBoss:CreatePoolItemClones(PoolBossItem, Boolean) (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:199)
    DarkTonic.CoreGameKit.PoolBoss:Initialize() (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:131)
    DarkTonic.CoreGameKit.PoolBoss:Awake() (at Assets/Plugins/DarkTonic/CoreGameKit/Scripts/PoolBoss/PoolBoss.cs:117)

    ObjectDocument: Invalid ObjectDocumentType
    at RAIN.Serialization.ObjectDocument.CreateDocument (ObjectDocumentType aType) [0x00000] in <filename unknown>:0
    at RAIN.Minds.BasicMind.GetTreeBindingsFromTrees () [0x00000] in <filename unknown>:0
    at RAIN.Minds.BasicMind.UpdateTreeBindings () [0x00000] in <filename unknown>:0
    at RAINEditor.Minds.BasicMindEditor.DrawInspector (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aComponentEditor, System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aEditor, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.Core.AIEditor.DrawAIElements (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.Core.AIEditor.DrawInspector (System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aComponentEditor, System.String aLabel, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.TypeEditors.RAINTypeEditor.DrawFieldForInspector (RAINEditor.Core.RAINComponentEditor aEditor, RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.Core.AIRigEditor.DrawComponentForInspector (RAIN.Serialization.FieldWalkerList aWalker) [0x00000] in <filename unknown>:0
    at RAINEditor.Core.RAINComponentEditor.OnInspectorGUI () [0x00000] in <filename unknown>:0
    UnityEngine.Debug:LogError(Object)
    RAINEditor.Core.RAINComponentEditor:OnInspectorGUI()

    #40682

    prime
    Keymaster

    Can you send us a couple of your behavior trees so we can test them ourselves? The original assets and metas before the update.

    Send to support@rivaltheory.com

    Thx

    #40684

    TonyV125
    Participant

    Same thing happened to me when I imported RAIN into an existing project. It doesn’t look like the new version of RAIN changed any of my scripts or behavior tree files in the AI folder. but to be sure I copied the original AI folder from a backup to the updated project to try to fix the issue, but same error. I then copied the RAIN folder from the backup to the updated project. RAIN is back to version 2.1.11, but everything is working as it did before.

    For the record, this is a Unity Project that I stopped working on almost a year ago and just recently went back to a few weeks ago. Unity updated it to be compatible with 5.3 once I opened it in that version. It manually adjusted some deprecated code and I get a few warnings about my textures, but everything works in the game (with RAIN 2.1.11).

    Need to quit for now, but will experiment with this more tomorrow. I’ll try starting a new project and see what kind of results I get.

    Thanks!

    #40685

    prime
    Keymaster

    Looks like there is a problem with the serializer being able to update older projects. We’re working on a fix and will post something out as soon as we can.

    Thx

    prime

    #40686

    prime
    Keymaster

    Version 2.1.18 is available from the Rival Theory website to address the project upgrade issues.

    New version should be available on the Asset Store within a couple of days.

    #40689

    TonyV125
    Participant

    That’s great news! Thanks so much for still supporting RAIN and putting the time in to provide these critical updates. Very much appreciated.

    #40690

    TonyV125
    Participant

    Just downloaded the latest version from the RAIN download page on this site. Things are a little better. I now see my waypoints in the editor (which didn’t appear when using the lastest version in the asset store), but the Behavior Tree Editor is still empty and doesn’t show any of my trees in the drop-down menu.

    For this older project, I may stick with the older version of RAIN that works for me 2.1.11 and try 2.1.18 with a new project.

    Thanks for trying. If you’re interested, I get the following warning after compiling…

    RAINSerializer: Couldn’t deserialize type: System.Object
    UnityEngine.Debug:LogWarning(Object)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromString(Type, String, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeObjectFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeFieldFromElement(ObjectElement, String, String[], Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeClassFromElement(ObjectElement, Object)
    RAIN.Serialization.RAINSerializer:DeserializeReferenceFromElement(ObjectElement, Type, Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object, Object&)
    RAIN.Serialization.RAINSerializer:DeserializeRAINObject(Object)
    RAIN.Core.RAINComponent:Deserialize()
    RAIN.Core.AIRig:Deserialize()
    RAIN.Core.RAINComponent:UpdateSerialization()
    RAIN.Serialization.FieldWalker:Reset()
    RAIN.Serialization.FieldWalker:.ctor(IRAINSerializable)
    RAINEditor.Core.RAINComponentEditor:OnGizmoGUI(RAINComponent, GizmoType)
    UnityEditor.DockArea:OnGUI()

    #40691

    christougher
    Participant

    Thanks again for the critical updates!
    Mine converted fine this time, please send them your behavior trees to iron out the kinks.
    My only problem otherwise is that my custom action from here http://legacy.rivaltheory.com/forums/topic/walk-waypoint-network-beginner/page/2/#post-35449 is broken… drat…

    I get this error

    InvalidCastException: Cannot cast from source type to destination type.
    ChooseWaypoint.Execute (RAIN.Core.AI ai) (at Assets/AI/Actions/RainRandomWaypoint.cs:63)
    RAIN.BehaviorTrees.BTActionNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTSequencerNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTRandomNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTSequencerNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTConstraintNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTConstraintNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTSelectorNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTParallelNode.Execute (RAIN.Core.AI ai)
    RAIN.BehaviorTrees.BTNode.Run (RAIN.Core.AI ai)
    RAIN.Minds.BasicMind.Think ()
    RAIN.Core.AI.Think ()
    RAIN.Core.AIRig.AIUpdate ()
    RAIN.Core.AIRig.Update ()

    • This reply was modified 6 days, 23 hours ago by  christougher.
    #40693

    prime
    Keymaster

    What’s on line 63?

    #40694

    prime
    Keymaster

    @TonyV125 - We’ll take another look, and we may follow up to see if we can get your BTs so we can try upgrading them in our debug build. Thx

    #40695

    TonyV125
    Participant

    Thanks @prime. I sent them to the support email address in case it helps. I may end up rewriting them anyhow, so it’s no problem if this is just an issue with my BTs. I can work around it.

    #40696

    christougher
    Participant

    I sent it to the support address. I sent the script slightly modified to the updated api so it’s line 66 on that one.

    Edit-
    Here’s the line
    lastWaypoint = ((VectorPathNode)tNode.GetConnectionOut(tRandomEdge).ToNode).NodeIndex;

    • This reply was modified 6 days, 17 hours ago by  christougher.
    #40698

    Sigil
    Keymaster

    Edit: Apparently I can’t read as you literally posted the line right above me.

    I haven’t been able to see the code yet, but if you kept the lines that cast to VectorPathNode you should change them to WaypointPathNode instead. Like this part:

    //Check all connections to our current waypoint.  Create a list of valid connections, excluding
    //those that go to our lastWaypoint.  Choose randomly from that list
    NavigationGraphNode tNode = waypointSet.Graph.GetNode(currentWaypoint);
    if (tNode.OutEdgeCount > 0)
    {
        List<int> tConnectedNodes = new List<int>();
        for (int k = 0; k < tNode.OutEdgeCount; k++)
        {
            //int tIndex = ((VectorPathNode)tNode.EdgeOut(k).ToNode).NodeIndex;
            int tIndex = ((WaypointPathNode)tNode.EdgeOut(k).ToNode).NodeIndex;
            if ((tIndex != lastWaypoint) && (!tConnectedNodes.Contains(tIndex)))
                tConnectedNodes.Add(tIndex);
        }
        lastWaypoint = currentWaypoint;
        if (tConnectedNodes.Count == 0)
            //currentWaypoint = ((VectorPathNode)tNode.EdgeOut(0).ToNode).NodeIndex;
            currentWaypoint = ((WaypointPathNode)tNode.EdgeOut(0).ToNode).NodeIndex;
        else
            currentWaypoint = tConnectedNodes[UnityEngine.Random.Range(0, tConnectedNodes.Count)];
    }
Viewing 15 posts - 1 through 15 (of 19 total)

You must be logged in to reply to this topic.