QuickSave

I have just finished a saving system and I am selling it on the Unity Asset Store.
It will cost 10$
http://u3d.as/content/lemo-dev/quick-save/2H1

With the QuickSave from LemoDev you can easily save and load different kinds of data in your game, without having to use long and complicated lines of code.
All you need to do is write one short line of code, for example

Save.SaveVector3(“PlayerPosition”,transform,true);
Load.LoadVector3(“PlayerPosition”);

To save and load we are using Unity’s own buildin PlayerPrefs to make sure that we get the best performance possible and to make sure we cover as many platforms as possible.
QuickSave works on PC, Mac, Android, iOS and Web Player.

QuickSave supports over 40 data types, including arrays
Web Player is limited to 1MB

Documentation

Why buy QuickSave?

  • It’s fast.
  • Easy to use.
  • Works on all platforms.
  • Full Online documentation and customer support.

If you have any questions you don’t want to post in the forum, you are welcome to contact me on info@lemodev.com

Can I use it to create a highscore list ? Offline AND online ???
Can I save and load the last level reached by the player ? Or a specific level ?

6R

Not to be a downer - but what does this do that player pref’s doesn’t?

Well that sucks. How can you possibly save a Vector3 from a transform?

You should do something like the following:

Save.Save<Vector3>("PlayerPosition", transform.position);

Or you could do:

Save.SavePos("PlayerPosition", transform);

Or while you’re at it why not make it simpler:

Save.SavePos("PlayerPosition", this);

Or even simpler:

this.SavePos("PlayerPosition");

Seriously though tell me if you make any sales - because @$25 a pop I’ll happily write a ‘simple’ save system.

:stuck_out_tongue:

I figure I might explain the above, just in case you don’t get it.

Releasing a save system is fine - even if wrapping API functions is a bit scammy. However to charge $25 for code that’s overly verbose and poorly designed isn’t going to end well.

Simple things like saving a V3 from a transform. What does that V3 represent? Position? Scale? Rotation? local Position/Rotation/Scale? That’s just bad design. Yet by taking a couple seconds to change the name to SavePos it’s immediately clear - and you can pass accept game-objects, monobehaviours, components etc without leading to confusing code. [Though do double-check that claim].

If you’re serious about keeping length down, take a look at the techniques I demonstrated [generics extension methods]. Otherwise sell based on simplicity, at the cost of verbosity.

Oh, and lastly. Playerprefs isn’t exactly know for outstanding performance. It’s a fine system, and for what you’re doing probably more than enough, but it’s a basic system for basic usage.

I’d have to agree with NPSF3000 on that one. All you really did was wrap PlayerPrefs. There’s no extensions, generics, or even method names that remotely connect with the purpose. It would be much better if you could do something like this:

SaveGameObject(player); //player is a variable of type gameObject

//Later in the game:
GameObject player = LoadGameObject();

in addition to:

...
SavePosition<Vector3>(player.gameObject.transform);
SaveString("Yo, man, how's life? Very good, thank you.");
SaveInteger(165);
SaveDouble(6.35);
SaveFloat(6.35F);
...

If you could save GameObjects directly, it would be cool then. Oh, and you might want to rethink your method kid, because like what already has been said, PlayerPrefs is really slow, especially on mobile platforms. Use the classes in System.IO instead, and allow to choose the file name and path.

EDIT: You wrote your location as Danamrk; do you mean Denmark?

Player pref’s can save a string and int a float.
My product can save a lot more than that plus it can save arrays.

I can see your point that it is too expensive on the level it is now. As soon as Unity accepts my update it will be 15$

Instead of calling it SavePos and restricting you to only saving the player position, you can now choose to either save the position scale or rotation, so it is simply to give you more flexibility I have given this option.

But this does not mean I don’t understand your point in having a function called SavePos. So if you only want to save the position, you can use that. (will be included in the next update)

You have to remember that QuickSave is not a total new way to handle the process of saving in Unity, but just a kind of expansion of Unity’s own Player Pref’s

You can use it as an offline highscore, but if you want to use it as an online you have to find something different.
You can check out my online high score product, which is free.
http://u3d.as/content/lemo-dev/online-highscore-system/2qB

There are not a function that saves the whole scene for you.
Maybe in the future.

I checked out your website; nice use of Wordpress. Anyway, I noticed on there you wrote that your software can’t be used to criticise politics or religion? That’s unlike most licences, any particular reason for that?

I hate to say this, but ArrayPrefs2. Saves Vector3, Quaternion, Color, etc., including arrays of those and other types (int, bool, float, etc.), using PlayerPrefs. Free. When making a utility, it’s a good idea to do some searching and make sure you’re not cloning something that already exists. (Unless, of course, the utilities that exist are lacking in some way, and what you’re doing is a noticeable improvement.)

–Eric

Yes, and ArrayPrefs can even convert between big and little edian, though it doesn’t now, with support for PPC Macs dropped.

that’s a cool product thx.

does it work with flash export? also u look nice in your user picture :slight_smile:

Well, ARM can run in big-endian mode, so it might still be useful at some point. Anyway not taking endianness into account just makes me nervous…

–Eric

Because I don’t want my products/name to be used in a setting that is offending towards people or people groups