EZ Game Saver (Brady, A&BSoft)

I’m interested in knowing a little more about EZ Game Saver by Brady of A&BSoft.

http://www.anbsoft.com/middleware/

(I was unclear where to put this thread, so it’s in gossip.)

What I’d like to hear from is other people who have used EZ Game Saver. It really seems like a great piece of middleware, and for less than the price of a half-day’s work, you’ve got a seat license.

What people’s opinions are about it? What works and what are it’s limitations?

For the life of me I can’t find the parent thread for EZ Game Saver (or EZGS) that Brady set up. (Searching Easy, EZ, Game Saver just produces a haystack.)

I found these thread which seems to have some info:
http://forum.unity3d.com/viewtopic.php?t=47401
http://forum.unity3d.com/viewtopic.php?t=47234

This is a quote from Brady:

From what I’ve read, I believer there may have been an update since this quote.

I don’t think any new features have been added since that quote, but there are some on my To-Do list not long after I get the public release of EZ GUI out the door. The most recent feature addition was component and GameObject reference saving, which I’m pretty happy about, especially since there’s no easy (or even moderately difficult, for that matter) way to do this using PlayerPrefs. But with EZ Game Saver, it’s just the click of a checkbox.

Another main thing that isn’t highlighted all that much on the page, IIRC, is that it also provides a pretty simple interface for allowing for save data for unlimited player profiles and save slots.

Can you talk a bit more about EZ GUI launch features?
Is there any kind of GUI designer?

As you provably know, Unity 3, will not support any new Gui system at launch.
It will be good to have EZ GUI on time for Unity 3 launch, coming before end of June! :stuck_out_tongue:
Cheers,

Well, as much as I am THRILLED to talk about EZ GUI (believe me :)), I’d hate to derail Litle Angel’s thread here. I guess if I cared about that I shouldn’t have mentioned EZ GUI earlier, eh? :slight_smile:

If you start a separate EZ GUI thread, let me know and I’ll be happy to answer any questions you may have. But there should be a public announcement/release coming either tomorrow or Wednesday sometime, which will have lots of details, and of course a thread here on the forums. :wink:

Thanks for asking, I really appreciate your interest.

Sure, i just forgot this was an EZ game saver thread! Here is the new tread if you like to make your comments or announcements/answers about your EZ GUI system:
http://forum.unity3d.com/viewtopic.php?p=327332#327332
Cheers,

Hi

I use both EZ Game Saver and SM2 in our iPhone game currently under development http://www.facebook.com/pages/Melbourne-Australia/Fun-Guy-Media-Pty-Ltd/93201148372.

It’s a very good. I actually integrated saving and loading of each of our levels earlier this week. So it works very well and is easy to get up and running. It uses System.Reflection so the data to be serialised must be public and recognised as one of it’s types, e.g. int, bool, string, etc and arrays of those. I use a few ArrayList’s in places so I simply convert them to and from regular arrays during save/load. There are delegate methods you can hook into to know when the GameObject is being serialised. I use C# exclusively so I don’t know how that is handled in UnityScript.

And Brady is very helpful on the support!

Thanks for sharing, zibba! Your game looks great.

I read somewhere PlayerPrefs can only contain so much information is this a limiting factor with EZ Game Saver or is it serializing everything?

People that have bought EZ GUI and SM2 dont happen to get a discount on the game server do they :wink:

Thanks!

Actually, PlayerPrefs stores its data in different places depending on the platform. See the Unity docs for more details on this. Depending on the platform, though, there are certain storage limitations.

Yes, if you already have 2 of the 3 products, you can get a discount on the third. PM me with your order number(s) for the other 2 and I’ll be happy to send you the discount code for the 3rd.

Also, be aware that in Unity 3, they’ve removed the option for iPhone deployment to use .NET 1.1. This is significant since, currently, Unity’s iPhone implementation of .NET 2.0/2.1 has broken support for property reflection. Fields work fine, but properties cannot be reflected using .NET 2.0/2.1 on iPhone. It works fine under PC, Mac, Web, etc, however. Unity is aware of the problem and is working on it. I may also have a work-around that I am going to test and verify that it works. But until then, just keep that in mind.

I will be using this primary for the iPhone. I wonder if I should just wait to see if the bug gets fixed because I certainly will need it. I cant seem to find where I read it only has a 1mb limit. I am not sure how much space I will be taking up but its going to be a sim city style game so will need to store each location,rotation,name,stats of each building among other things.

Thanks

Hi Brady,

as a happy user of EZGui I am tempted to purchase EZGameSaver, but I have a few questions before I do so.

Regarding that .Net 2.1 bug in Unity3, can you give a short example of the difference between properties and fields for absolute coding dummies like myself?
:sweat_smile:

How is the integration between EZGameSaver and EZGui? From your overview video I assume that the shown menu parts for savegames are done with Unity’s own GUI scripting. Would it be complicated to do these menus with EZGui to keep all menus consistent?

And last but not least, does EZGameSaver work with multitasking in iOS4? I have quite some issues getting PlayerPrefs to work with fast app switching, and if your PlugIn would save me the hassle it would be an instant buy.

Thank you,
Joe

Also just wanted to touch base again on the size limitation. I cant seem to find much about the size limitation of the player pref on the iPhone one post I found said it used the NSUserDefault but when I went to Apple’s site and looked it up it didn’t mention what the max was so maybe there is not one?

Do you know what the limitations on the
PC
Mac
Web
iPhone

are if any?

Thanks!!!

Hopefully looking to buy it tomorrow or day after.

The 1MB limit is for web players. In Windows, it’s more of a per-key limit, if I remember correctly. I’m pretty sure the max key size is 64k, but you can look up the max registry key size online to verify this in case it varies by Windows version. I don’t recall the limitation on Mac. But if I remember correctly, iPhone is pretty much unlimited. Mac may be as well.

Basically, arrays of values are stored in string format, and that’s probably the most storage-intensive as it will get. If you aren’t saving arrays, then they are just saved as discrete int, float, etc, keys.

Sure. A field is just a plain member of a class, such as this:

// C#:
public class MyClass
{
   public float myValue;
}

// Javascript/UnityScript:
var myValue : float;

A property, on the other hand, is sort of like a set of Get/Set accessor methods but syntactically, they are accessed the same as a field. I’m not sure if you can do properties in Unityscript, but in C#, it is like this:

public float MyValue
{
   get { return myValue; }
   set
   {
      myValue = value;

      // Now do something when the value
      // changes...
      DoSomething();
   }
}

...

// Access the MyValue property:
myObj.MyValue = 123;

This lets you perform actions when a value is set or retrieved. Many built-in Unity classes use properties, such as the Transform’s .position, .rotation, etc, members.

There currently isn’t any specific integration, though I’ve thought about putting together a couple of basic control classes that interface directly with EZ GameSaver that you could download separately. But no, it wouldn’t be very difficult to expose the desired EZ Game Saver functionality through EZ GUI.

I actually haven’t had a chance to test it with that feature yet. Still need to go out and buy an iPhone 4. :slight_smile: But since you asked, now I have an excuse to give my wife why I need one. :smile:

Any news on the bug fix for unity3? Is this the post you will let us know if / when its fixed?

Also if you have any kinda of time frame if its not already fixed of when you think it will be?

Thanks! Sorry if it seems pushy just wondering if I should go with my own implementation for this game or if I should wait if yours will be ready.

I’ll be able to work more on it as soon as I get some milestones done on EZ GUI, which should happen in the next week or so. I’ve got a possible work-around for the EZ Game Saver issue that I’m going to try then. I’ll post my results here.

any news?

Yes…Any news on the iPhone update would be handy. I was going to implement EZGS in my iDevice app today. If I do what should I expect not to work? Just so I don’t run my head into the concrete for no good reason!

BTH

I’m not sure the work-around I was looking into is going to be practical. Note, this only affects iOS when reflecting properties, not fields. i.e., a public variable will work just fine. It’s only when that variable is hidden and only accessible through a property that the iOS version of Unity’s Mono distro will throw an error. If you must access properties, until Unity gets this fixed, a work-around is to use the CallWhenDoneLoading() and CallBeforeSave() methods to register delegates to marshal any property data to/from public fields before/after saving/loading. Here’s a simple example of a script you would attach to an object you want to save (C#):

// Mark this field to be saved in the inspector:
public Vector3 position;

void Start()
{
   // Tell the SaveGameManager to call our "CollectData()" method before saving:
   SaveGameManager.instance.CallBeforeSave(CollectData);

  // Tell the SaveGameManager to call our "ApplyData()" method after our 
  // savegame is done loading:
  SaveGameMAnager.instance.CallWhenDoneLoading(ApplyData);
}

void CollectData()
{
  // Copy the position to a field we can actually save on iOS
  position = transform.position;
}

void ApplyData()
{
  // Copy our saved position to the transform
  transform.position = position;
}

Note again that this is only necessary for properties. For public fields, it will work just as demonstrated in the example video. But hopefully Unity will get their iOS implementation of Mono fixed!!!

you just helped me out big time with that last post Brady, thank you. any news on what EZ GS features are still broken for the official Unity 3 release, and iOS?

Howdy. I just added the GameSaverData scripts to onstage objects that are always there or persistent. I have one ragdoll and character that i switch out onstage and destroy and then instantiate and vice versa. Which object do I drop the GameSaverData on? The Hierarchical object or the Project prefab? As well if they are children of a prefab then do I save the parent as well as the prefab child objects that get destroyed and instantiated.

As well… Love EZ GUI… Have the whole shebang up and running. What i want to know before I press any compile buttons and save is how do i get the EZGameSaver routines like in your video onto an EZ GUI interface? I already have all the panel and button grfx. What is the code route on load of the app and the display of the panel as well as button choices?

Thx
BTH