Announcement

Collapse
No announcement yet.

Binary Compressed Save System, Save Entire Dynamically Generated Worlds! ♥ Rama

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [RELEASED] Binary Compressed Save System, Save Entire Dynamically Generated Worlds! ♥ Rama

    Click image for larger version

Name:	RamaSaveTitleFinal.jpg
Views:	2
Size:	620.8 KB
ID:	1187980

    Dear Community,

    My binary compressed save system has been released!

    Use Cases For This Plugin

    - Saving all the data and actors for a strategy or action game, so the entire world state can be instantly reloaded from a tiny file on your hard disk.

    - Saving all the data for a player’s personal profile, recording their progress through a game.

    - Saving an entire world full of actors quickly and easily, being able to specify exactly which actor variables get saved.

    - Saving data that is customized per instance of a character or creature in the world, such as health, current armor value, ammo count, etc.

    - Saving data that is global to the entire game, as well as the entire state of the game world that all players share.

    - Saving the entire state of a game world on a server, to be reloaded in case of unexpected server shutdown or server maintainence event.

    Marketplace Link
    https://www.unrealengine.com/marketp...ma-save-system

    ~~~

    Video


    Intro And Multiplayer Game Save/Load


    AI Save and Load


    Dynamically Generated Physics Simulating Objects Save and Load


    Many More videos
    http://ue4code.com/save-system-plugi...-4-save-system

    ~~~

    FAQ

    1. Multiplayer? Really?!

    Yes!

    2. Any data I want?

    Yes!

    3. AI?

    Woohoo!

    4. How?

    Videos! ~ http://ue4code.com/save-system-plugi...-4-save-system

    (who wants to read these days anyway when you can watch a video?!)

    Enjooooy!



    Rama
    Attached Files
    Last edited by Rama; 07-15-2016, 12:01 AM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  • #2
    Hello everyone,

    I made a quick video in my project showing the integration of the Rama Save Plugin, check it out:



    Thanks!

    Adam
    Last edited by AdamMacDon; 07-17-2016, 03:28 AM.

    Comment


    • #3
      Huge Update ~ UE4 Level Streaming Now Supported

      Dear Community,

      My binary serialization save system with ZLIB compression now also natively supports the UE4 Level Streaming system using C++!

      Last edited by Rama; 12-01-2016, 04:21 AM.
      100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

      UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

      Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

      Comment


      • #4
        Rama,
        did you test the plugin on mobile platforms ?
        or anybody ?

        i tried it using 4.12.5 for android. but the system does not do anything at all.
        it compiles ok. no warning , no error and no crash.


        the only clue i have found are these warning from log :

        7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_LoadFromFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:167][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_SaveToFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:170][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_LoadFromFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:171][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_SaveToFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:171][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_SaveToFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:171][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_LoadFromFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:172][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_LoadFromFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        [2016.12.03-16.21.13:172][-7928132]LogLinker:Warning: CreateImport: Failed to load Outer for resource 'RamaSave_SaveToFile': Class /Script/RamaSaveSystem.RamaSaveLibrary
        i am having feeling that the core of the system are not getting loaded. thats why it is not doing anything.
        any thought ?

        Comment


        • #5
          Originally posted by NIGIS-Master View Post
          Rama,
          did you test the plugin on mobile platforms ?
          or anybody ?

          i tried it using 4.12.5 for android. but the system does not do anything at all.
          it compiles ok. no warning , no error and no crash.


          the only clue i have found are these warning from log :



          i am having feeling that the core of the system are not getting loaded. thats why it is not doing anything.
          any thought ?
          Hi there!

          Mobile is not listed as a supported platform, in my description I indicated that it should be easy enough to get working as long as the UFS (Unreal File System) handles the platform you are compiling for.

          I have not had time to do mobile testing as I am working primarily on a PC game.

          I dont anticipate getting to Android in the near future given my current work schedule, so please request a refund due to misunderstanding of the supported platforms, if your needs are urgent.

          I have an android device and can work on the matter at my nearest convenience but please dont wait on me as I have a lot to manage right now.

          It could be that the platform is not supported by the UFS itself, Unreal File System, and it simply wont work without Epic making changes.

          Given the compartmentalized nature of Android platform that is quite possible.

          Please note this should not be an issue for console platforms (PS4, Xbox One), as UFS is supported on those platforms.



          Rama
          100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

          Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

          Comment


          • #6
            Level Streaming Update is Live on the Marketplace!

            Dear Community,

            My Level Streaming massive update is now live on the UE4 marketplace!

            Please make sure to download latest version!

            I've added backwards compatibility as well!

            Rama

            100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

            UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

            Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

            Comment


            • #7
              [MENTION=552]Rama[/MENTION]
              I think you can override the PostEditImport method of your component and do something like MyGUID = FGuid::NewGuid().
              This should generate a new guid even with actor duplication

              Comment


              • #8
                Seems like a really sweet plugin which is now on my to-buy list!

                Is it possible for you to support Android and XBox One, not just Windows ?

                Comment


                • #9
                  Originally posted by motorsep View Post
                  Seems like a really sweet plugin which is now on my to-buy list!

                  Is it possible for you to support Android and XBox One, not just Windows ?
                  XBox One support should go well, but I dont have a device to test with If you encounter any issues and have C++ compiling ability than I can help debug any matters that arise

                  I am not convinced android support will be easy if the UFS is not already working for android as user reported above.

                  So basically I can help someone who can compile for Xbox or PS4 with any issues, should be easy to resolve as UFS is much stronger on those platforms. Mobile requires special cases because of compartmentalized nature of the platform, and is probably a more complex matter

                  Rama
                  100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                  UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                  Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                  Comment


                  • #10
                    Originally posted by MatzeOGH View Post
                    [MENTION=552]Rama[/MENTION]
                    I think you can override the PostEditImport method of your component and do something like MyGUID = FGuid::NewGuid().
                    This should generate a new guid even with actor duplication
                    Wooohoo!

                    Thanks for that [MENTION=22887]MatzeOGH[/MENTION]! That worked!

                    ~~~

                    Mini Wiki

                    Goal: Perform an action when an actor is duplicated using ALT+Drag on the editor widget (BP constructor script wont run, it only runs for new actors added to level).

                    Context: any UObject.

                    For anyone who wants to know (mini C++ Wiki for you), here is the code:

                    Code:
                    //! Auto-create new FGuid on Alt + Drag
                    #if WITH_EDITOR
                    virtual void PostEditImport() override
                    {
                    	Super::PostEditImport();
                    
                    	if(RamaSave_PersistentActorUniqueID != FGuid())
                    	{
                    		RamaSave_PersistentActorUniqueID = FGuid::NewGuid();
                    	}
                    }
                    #endif
                    In my case I only change FGUID if it had a valid one as not having an FGUID is a legitimate case as well.

                    For everyone:

                    Don't forget WITH_EDITOR or else you will get packaged game compiling errors, and dont forget to call super!



                    Rama
                    Last edited by Rama; 12-07-2016, 06:46 PM.
                    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                    Comment


                    • #11
                      Glad it worked.

                      Comment


                      • #12
                        Btw, afaik you can check what platforms to support and Epic would build it for you. This way Android users can get pre-built plugin for Android

                        Also wanted to ask if your save system saves on a separate thread to prevent hitching when saving. For example, in Doom 3 BFG when you hit checkpoint and saving happens, the game literally freezes or hitches badly. On the contrary, in Darksiders you only know that you hit checkpoint is when you see saving icon appearing in the HUD - no hitching or freezing when saving.
                        Last edited by motorsep; 01-05-2017, 12:01 AM.

                        Comment


                        • #13
                          Rama Save System With Asynchronous Saving

                          Dear Community,

                          My Save System now features a multi-threaded save process in C++ that allows you to put up a progress bar and avoid hitches for very large save files!

                          This allows saving of the game without brief stalls / hitches!

                          Originally posted by motorsep View Post
                          Also wanted to ask if your save system saves on a separate thread to prevent hitching when saving. For example, in Doom 3 BFG when you hit checkpoint and saving happens, the game literally freezes or hitches badly. On the contrary, in Darksiders you only know that you hit checkpoint is when you see saving icon appearing in the HUD - no hitching or freezing when saving.
                          Wow the timing of your question motorstep!

                          I didnt see your comment but I have just added this feature to my plugin!

                          100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                          Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                          Comment


                          • #14
                            Just wondering if there is any progress with pre-built Android binaries.

                            Comment


                            • #15
                              Looks nice, But i have a question!

                              For exmaple i have a service figuring out who to attack currently and its storedin a billboard, and the AI is following that target always.
                              Does it save the behavior tree states too?

                              Comment

                              Working...
                              X