AssetCloud Beta: New string-based asset management system


Defective Studios is proud to announce a Unity plug-in: AssetCloud!

Have you ever wished more than one person could edit the same scene, or that your prefabs were saved as strings so that they could be merged with a diff program? Ever wonder whether your have the latest file, or if the rig may have changed since you last got it from the artist?

Never deal with these problems again! We needed it, our friends needed it, and so we thought we might as well make it. We’ve gotten AssetCloud to a place where we really think you’ll like it and we’re letting everyone (so far…) in to try it for free!

Head on over to ac.defectivestudios.com/beta to sign up. We’ll hit you back with an e-mail right quick so you can get started! While we’re in beta, unlimited use of the service is free! Come on in and give it a shot!

Here’s that link again:
ac.defectivestudios.com/beta

-The Defective Studios Team

P.S. We’re still working out the kinks in the mailer. Check your spam folder, and if you don’t get the message within a few minutes, send a message to team@defectivestudios.com and we’ll get you sorted out!

Very interesting work :slight_smile:

A question out of business interest: I assume its planned later on to hand out the cloud side to devs?

And actually, no. We plan to handle the hosting of the web-end (hosted on Amazon EC2) for a monthly fee (unlimited access) which we’re still working out. The Unity plug-in is, however, totally open-source! An idea we’re playing with is giving free periods of service for significant advancement of the plug-in. We hope this drives its development forward very quickly, and that we’ll be able to reach feature-completion with Unity 3.2 within a few months. Here’s to hoping.

As a more serious venture, we’re considering a more pricey source license for the web frontend. We considered lots of models as we went along, but eventually decided that “go set up a LAMP server” was too much of an ask for a commercial product. And since we’re doing this full-time we gots to get paid! We’re planning on asking a premium on whatever a team might pay for a virtual server (which is ~$5-10 depending on where you’re looking)

I’ve nothing against getting payed :slight_smile:
I fully support good ideas and paying for them, I’m living by this myself after all.

My problem and question are more directed at the problem that nobody with proper mind will host GBs of commercially important, potentially even NDA protected data in “plain accessable form” in a 3rd party environment under control of a potential direct competitor (as you obviously are Unity users too), which will make it hard for you to get the reasonable commercial user backup and they are likely the ones where your income would primarily come from I guess. I hope that explains the real in-between the line intend behind my question better.

I agree that setting up a LAMP server could be a major pain for some, but offering an install service to them at fixed rate, would overcome that one for example. I do not even see a problem in offering that as an optional service that you host and maintain it for them if they want a out of the box just working solution at a corresponding service fee

But chances are good that I might be basing some of my assumption basing on wrong base assumptions below so I’m going to give it a look once more on it is known as its definitely an interesting technology for which I hope that the service agreement and licensing will play a supportive role to push it further, not vice versa :slight_smile:

Your points are totally valid, and not something we hadn’t considered. I think what I’ll say is that we’re totally open to working out a deal with big-deal clients who need extra privacy or security, but I think the best solution would be a set of legal terms which protect ours and the customer’s interests.

Plenty of people use services like Google Docs for the sake of convenience for sometimes sensitive information, even though Google is pretty clear about the fact that they have access to the data you store therein. We’re targeting mid-range teams who don’t want to or can’t afford AssetServer and still need asset management. Ultimately we’ll just have to respond to the market. If this approach doesn’t pan out, offering the server software as part of the package is certainly a possibility. Frankly this set-up is also just more convenient for us, as we don’t have to support the deployment of a pretty complex PHP/MYSQL application.

In fact, what better time to ask whoever reads this: would you trust Defective Studios, having agreed to some reasonable TOS, to host and back-up your game data for use with Unity? Or would you rather we distribute the server software to administer yourselves?

As a disclaimer, I’m not promising that the outcome of this poll will make our decision :wink:

Wasn’t there also another commercial plugin that turns your scene and prefab files into plain text data for the purposes of version control merging?

Anyway, this is good. I think merging of Unity specific asset files is something that should be built-in, and as a step further, a multi-user simultaneous collaborative editing of scenes and prefabs feature would be ideal.

The openess to the topic definitely raises the trust quite a bit out of my view.

You mentioned that the editor plug is open source, didn’t you?
So a question related to it: Does the cloud side perform any active operations on the data?
Or would it theoretically be possible to integrate forms of encryption into the client side for the data sent? Cause that would allow to auto solve the issue for those that are worried :slight_smile:

I’d love to know what it is, or who made it! I must admit that we didn’t very extensive research before deciding to roll our own system, so we very well could have re-invented the wheel here! In our defense, we heard many other users at Unite calling for such a system, so I suppose they hadn’t heard of such a plug-in, either.

Theoretically, absolutely!

Honestly this is something which I began to ponder after your first post, but I also shied away from it after thinking about supporting such a system. I think I would almost rather distribute the PHP app before adding any encryption that I could fully trust to do its job and not corrupt the data. I subscribe to the Keep It Simple, Stupid philosophy, especially concerning a system like this, which I hope will remain pretty extendable.

Strictly speaking, the cloud-side only does some slight modifications to the Schematic (prefab) strings to keep ID’s synchronized with the database. The resources (your textures, models) aren’t touched, only stored.

And yes, the plug-in would be open source, with the intention that teams could clone the source and integrate it into their own automated pipelines, if they exist.

We’ll see how things unfold…

Oh on the encryption end I didn’t want to imply that you would provide it or have to.
My question was targeted at the potential possibility that end users could integrate their own measures into the client side, be it simple encryption or even more complex forms with local key files and whatever.
If the only thing that in the end would require to be “plain text” would be the UUIDs and meta for keeping references alive, then such a system would work very well even if the cloud is handled on your end.
It would definitely waive all concerns I could personally come up with.

Just a suggestion server security also the main thing, i always don’t trust wamp, lamp, mamp package because sometimes some of the apache mod is vulnerable or some of the settings is vulnerable also, imho custom tailor apache, mysql, php will be better, but i voted for my own self hosted server, i mean you sell the server-client package :).

Ok, I can’t remember if this was the one I found before but here’s another one nevertheless: GitHub - terravision/UnityTextScene: A toolset for working with text-based scene files in Unity (http://www.unity3d.com) instead of the built-in binary format.

Official feature request here: http://feedback.unity3d.com/forums/15792-unity/suggestions/250110-editor-text-version-of-unity-file

I agree, and this is what we’ve done :wink:

The service is hosted on Amazon EC2 with a custom Fedora instance running Apache 2.2.17 and PHP 5.3

Check it out for yourself!

Darn… looks like I should have done a bit more research before forging my own path. I’m at GDC this week and won’t have a chance to look at these projects until I’m back. A friend also recently mentioned another serializer which I’ll have to take a look at.

Like I mentioned above, we’re taking an open approach to the development of the plug-in, and if these guys have something better, I hope they don’t mind teaming up with us.

Also I’d like to point out that while text serialization is one of the core features, that’s not the whole picture here. The web frontend provides multi-file uploads, asset version history, and a folder-based organization structure to ensure that nothing is lost, and that every team member has the most up-to-date resources.

I’d like to chime in here. I’m very keen on any project that makes merging and simultaneous use of scenes possible, Lord knows we have had no end of uphill due to these issues.
However, based on the size of the projects I’ve worked on so far (our one project’s Assets folder is ~1.2GB, and the library is another ~900MB) I would definitely shy away from anything cloud based. If we were talking about a team of 1 or 2 people working in different locations, fine, but we’ve had around 10 people working on a project at a time, most of them sitting in the same room, and the added bandwidth cost of pushing and pulling assets to/from the cloud would cancel out any value we got from such a product-not to mention the very real cost of lost productivity when we have connectivity issues (losing Google Docs for a day is one thing, not being able to commit scene/asset/code changes is a whole different story).

Exactly, such server must be on local network. Especially for bigger projects. Our assets have now 10GB and still growing. I expect 30-40GB at the end of the year.

I hear ya. We did do a little bit of thinking on this topic, and honestly local deployment isn’t out of the question. The more we thought about the question of deployment, the more we came down on the “host-it-ourselves” decision. To put it plainly, it’s much easier to maintain a web app that’s only deployed on one server (or well, server cloud) than one which is intended to be distributed to each team individually. Also, we just found as a team that it’s nice to be able to get at our assets from anywhere, at any time. As long as we set up our redundancy and load-balancing correctly, there should be no reason (other than Murphey) that the service would go down unexpectedly.

Maybe this is irrational rationalization on our part, but we found that individual assets were generally pretty small in size. The largest individual files we deal with ourselves are 4K textures, which come in around 12MB with PNG compression. That said, I’m sure some teams out there keep their textures in PSD format which can easily climb into the hundreds of MB, so there’s definitely an issue there. The system was designed assuming that assets will be added as they are created, not all at once in one big push. As well, you shouldn’t ever have to upload the same file twice. As for as the case where most (or all) of the team is situated locally, it would be quite easy to copy files manually over the network, rather than downloading from the cloud.

To be super-clear, the serialization happens “offline” on the client machine. Even if the service goes down, you can still take advantage of the free, open-source plug-in. We hope we’re not shooting ourselves in the foot financially by doing this!

Either way, I agree that the plug-in is in need of an “offline mode.” The project is currently in a freeze while we get some user feedback, but offline/LAN support is definitely on the wish list! Thanks for the feeback.

Also, I forgot to mention that 3D (and other) tools integration is on the roadmap. Essentially whenever we have the opportunity to script a plug-in for our team’s tools (Maya is the first which comes to mind), we plan to create an in-tool upload button so streamline the process. Ultimately, the idea is that using AssetCloud should work almost identically to using Unity. You click “save” to see your work in-engine, and when you’re ready to share with the team, you click “upload” from a custom tool to put it in the cloud, and let the rest of your team sync the asset.

Very interesting, I’m working on a similar project for my master thesis (UnityCollab). I’ll be following development of AssetCloud :).