Jump to content

Recommended Posts

Project URL: https://gitlab.com/sukhoi191_a3/arma-3-persistent-save-system

 

While I was playing Ravage mod, a lot of problems with the official save system emerged after time, since it probably wasn't created with long-term missions in mind (I mean like 50+ hours spent on a single mission).

 

Most prominent issues I came across were:

  • worsening performance, probably due to a lot of stuff that was saved and wasn't really necessary for Ravage playthrough, for example: every single damage to every single building, even if you just accidentally tapped one with a car;
  • compatilibty issues - while fixing save file after minor version update was pretty easy, I wasn't able to fix it after major version update, which I think is expected, since major version change can make some things incompatible (this was also the last straw that made me start this project);
  • gameplay issues (at least in Ravage), for example: actions taking forever to perform and very long saving / loading times.

 

After playing Antistasi, I was pretty amazed by its save system, which was using profileNamespace to save data. It's elegant and easy to backup, as long as you keep separate ArmA 3 profile for each mission using this save system. Unfortunately, it doesn't seem to be written with reusability in mind. Considering all this, I've decided to write my own persistent save system, which is based on Antistasi idea (i.e. using profileNamespace). I've tried to make it as extensible as possible.

 

I wasn't considering MP while working on this project and I'm pretty sure it's currently SP only, but I have no problem with extending it for MP as well, although I can't really do that right now, since I'm lacking some knowledge in that matter. If you know more than me and think that it's worth your time, you can certainly help with making it happen 🙂

 

I'm using it for Ravage and it works flawlessly. Currently, it's in alpha stage, since noone besides me really tested it. Of course, there's a lot of room for improvement, but here's what's implemented right now:

  • Saving and loading data of:
    • units (class, damage, position, direction, equipment, side, skill, full identity, rating, stamina + fatigue, formation, variables, orders, team color, units in group (if given unit is a leader), vehicle if unit is inside one);
    • vehicles (class, fuel, damage, cargo, position, direction, turrets data, materials, textures);
    • containers (class, cargo, position, rotation);
    • specified variables from any namespace;
    • map markers (appearance, position, rotation, text, user-defined).
  • Simple trigger-based radio save system (1-9 are slots, 0 is used for saving - save is created automatically on the oldest slot).
  • Action for marking / unmarking given vehicle for save (it can be easily extended for other object types as well).

 

What I want to be done in the future:

  • Releasing Ravage mission with this mod built-in, along with some other helpful stuff. It's WIP and I think it should be ready pretty soon.
  • Making it into a Module (currently, I have no idea how to do this, I'm not really an addon guy).
  • Creating GUI for saving, since radio-based system isn't that great, as it doesn't let you choose the slot on which the game will be saved and prevents you from using radio for other purposes. I think a custom GUI in game menu can be created with CBA (?)
  • Extending saved data along with BI extensions of scripting language.
  • Stuff described on issues page.

 

Any suggestions, criticism, ideas and help in development will be greatly appreciated! Let me know, what you think about this project 🙂

 

  • Like 6
  • Thanks 4

Share this post


Link to post
Share on other sites

Looking forward to trying this out. :rthumb: 

  • Like 2

Share this post


Link to post
Share on other sites

Very neat and much needed script suite  @sukhoi191!

 

Clean code and well commented, it is a pretty good start if you ask me!

 

It is in the MP department where this would shine thou. If you followed the method behind Antistasi I believe it should be multiplayer compatible if you make it sure that it runs completely on the server.

 

I hope you can keep updating this until it is fully MP compatible 😉 

  • Like 3

Share this post


Link to post
Share on other sites

Thanks @LSValmont, I'll do my best to make it MP compatible when I find some free time 🙂

  • Like 3
  • Thanks 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×