Jump to content

Building a Collaborative Content Production Pipeline - Part Two

Josh

2,402 views

blog-0113842001395335006.jpgPreviously, I described the goals and philosophy that were guiding my design of our implementation of the Leadwerks Workshop on Steam. To review, the goals were:

1. Frictionless sharing of items within the community.

2. Protection of intellectual property rights.

3. Tracking of the chain-of-authorship and support for derivative works.

 

In this update I will talk more specifically about how our implementation meets these goals.

 

Our implementation of the Steam Workshop allows Leadwerks developers to publish game assets directly to Steam. A Workshop item is typically a pack of similar files, like a model or texture pack, rather than single files:

blogentry-1-0-85901800-1395332619_thumb.jpg

 

To add an item to Leadwerks, simply hit the "Subscribe" button in Steam and the item will become available in a new section of the asset browser:

blogentry-1-0-98062800-1395332827_thumb.jpg

 

You can drag Workshop files into your scene and use them, just like a regular file. However, the user never needs to worry about managing these files; All subscribed items are available in the editor, no matter what project you are working on. When a file is used in a map or applied to a model, a unique global ID for that file is saved, rather than a file path. This allows the item author to continue updating and improving the file without ever having to re-download files, extract zip archives, or any other mess. Effectively, we are bringing the convenience of Steam's updating system to our community, so that you can work together more effectively. Here's one of the tutorial maps using materials from a sci-fi texture pack from the Workshop. When the map is saved, the unique file IDs are stored so I can share the map with others.

blogentry-1-0-65117000-1395334598_thumb.jpg

 

Publishing your own Workshop packages is easy. A built-in dialog allows you to set a title, description, and a preview image. You can add additional images and even videos to your item in Steam:

blogentry-1-0-52812400-1395334362.png

 

Leadwerks even has support for derivative works. You can create a model, prefab, or map that uses another Workshop file and publish it to Steam. Since Leadwerks tracks the original ID of any Workshop items you used, they will always be pulled from the original source. This allows an entirely new level of content authors to add value to items downstream from their origin, in a way similar to how Linux distributions have grown and evolved. For example, maybe you don't have the artistic skill to make every single texture you need for a house, but you can put together a pretty nice house model and pant it with another user's textures. You can then upload that model right back to the Workshop, without "ripping off" the texture artist; their original package will still be needed to load the textures. It's perfectly fine to change the name of your Workshop package at any time, and you never need to worry about your file names conflicting with files in other packages. (If you decide you want to change a lot of file names, it's best to just create a new package so that you don't interrupt the work of users "downstream" from you,)

 

Uninstalling a Workshop package just requires you to hit the "unsubscribe" button on the item's page in the Steam Workshop. No more hunting around for stray zip files! You can easily check out other users' work, use whatever you like, and unsubscribe from the packages you don't like, with no mess at all.

 

How Do I Get It?

The Leadwerks Workshop beta begins today. You must be a member of the Leadwerks Developer group on Steam to access the Workshop. A limited number of beta invites are being sent out. Once the system is completely polished, we will make it available to the entire Leadwerks community.



22 Comments


Recommended Comments

What happens in the case where an artist on my team purchased a texture/model from the Workshop but I haven't, and we are sharing a LE project via Google Drive/Dropbox in which he used this purchased texture/model in a map that I now opened? I assume because it's not in my Workshop folder I would get an error when opening the map saying this item doesn't exist for me?

Share this comment


Link to comment

To load the level completely, you need to be subscribed to the item. Protection of intellectual property rights is one of my design goals. The system I designed actually allows more freedom to work together by supporting derivative works, and at the same time has strong copyright protection to make sure your content doesn't wind up on bit torrent.

 

This basically flips the equation; previously content authors did not want their work reused to create new content. There's usually a clause in the license like this for assets on Turbosquid. However, since we support derivative works and have strong copyright protection, content authors will want their items to be reused, because it means more sales for them.

Share this comment


Link to comment

How will we know when opening a map, what is needed from the Workshop? Can we have an option to auto download all free assets from Workshop? Can I get a list of links that is required to open the map?

Share this comment


Link to comment

Ideally it should have placeholders for the non-free you dont have so you can actually load a map

Share this comment


Link to comment

oh sad.png this sounds it'll take another month till 3.1 released, ...

 

I'm kinda sad right now.

Don't worry, the release will not be held back for this. We're just figuring out some final deployment stuff right now and giving the testers a little more time.

Share this comment


Link to comment

Looks good so far. I probably make some more models for the workshop. Will it support scripts eventually? If so will the workshop give you an option to precompile it to prevent directive works? And I vote for bounding boxes/billboards for non free workshop items.

Share this comment


Link to comment

Super secret: If you create a compiled LuaJIT object and use the extension .luo, it will actually work right now. So yeah, that is something that has been considered and is likely to be implemented in the future.

 

That wouldn't prevent derivative works, nor would you want it to; if you make a cool script, other people should be able to use that in their items. But it would prevent anyone from modifying it or viewing the contents. I would only recommend doing that if you have something you are selling that has very well-defined inputs and outputs that won't change. You certainly don't want to break compatibility for your users.

Share this comment


Link to comment

Just wondering about complied lua stuff. As of now, I have no good reason to distribute compiled code. But it's going to be a pain to establish ownership of a script, and even more of a pain when updating a script when the end user modified it.

 

Any chance we can use the workshop to distribute our games free in a non modifiable form like Gamemaker does?

 

However the workshop turns out, I expect it will be full of awesome stuff within a week.

Share this comment


Link to comment

To load the level completely, you need to be subscribed to the item.

I don't fully understand the point, does it mean that if my level designer subscribe (that is purchase, when it'll be possible to sell and not only share for free) an item from Workshop and use it in our scene then every team member must purchase it? I hope to have misunderstood on this, cause it would mean the cost of each asset is multiplied by team members count (that is just unfeasible and also illogic in my opinion).

Share this comment


Link to comment

The Workshop will only be for free items, for a while. When paid items are added, you need to own the item to use it. So yes, that means you can't give files away to other people. I would consider that piracy, but it's been impossible to enforce in the past.

 

Because content authors can publish their items with the knowledge that the files won't be passed around, theoretically that means they can charge a lower price, because they don't have to cover the losses they incur from piracy.

 

I'm not going to put any rules on pricing because I think the marketplace will work to determine value. The people publishing their work will get a feel for where the right price is.

Share this comment


Link to comment

Thanks for clarifying it, I see that I unluckily understood well, so I can only be glad to stay out of Steam and Workshop. Honestly I think you're considering piracy something that really isn't when you're in a team, you're just protecting authors at the expense of customers (there are lawyers and lawsuits for something like that). I will likely purchase nothing from Workshop with such restrictions.

 

PS: the asset's price is completely countless, even if it's at 10$ I should pay it 100$ if my team has 10 members... would you really pay 100$ for a crate? I doubt. And things go even worst when you want to buy an asset that costs 100$, it's just unfeasible. This kind of rule may be good only for one-member teams :)

Share this comment


Link to comment

ZioRed, the question then becomes is the pay for asset store ran by steam or leadwerks. If its run by steam, do they allow tiered pricing. If so can you assign an item to multiple users? If leadwerks is running the store will it tie into steam like for example, Perfect Worlds Backlight Retribution game? That games store runs on their server and uses steam to process the payment.

 

My proposal to solve this would be to sell a single item and to sell a slightly more expensive bundle. The expensive bundle would give the user 1*%quantity% items into their inventory so they can gift it to their team members. This is how the steam store deals with bundles and DLC, so is Josh asks the right people the right questions nicely this might be done. I think tf2 uses a system like this.

Share this comment


Link to comment

@Einlander: if it's the Steam system that prevents it then I agree (though you cannot compare a game DLC with an asset for engine, because their use is completely different), but the following sentence doesn't seem to be the case:

 

Protection of intellectual property rights is one of my design goals. The system I designed actually allows more freedom to work together by supporting derivative works, and at the same time has strong copyright protection to make sure your content doesn't wind up on bit torrent.

 

Anyway it's not an issue for me, I just won't use it and I can still live (anyway I can still use LE with models bought elsewhere, so no problem at all). I only wanted to be sure how it would work before discover myself wasting money, I don't want to take control of how LE (and tools) works at all. wink.png

Share this comment


Link to comment

I don't understand how this is much different than buying models elsewhere. Dex-soft for example would run you the same situation for the most part. You can't buy a model and share it between your team members without most likely breaking the license agreement. The Workshop just enforces it better.

Share this comment


Link to comment

Are uploads directly visible or do they have to be approved first?

 

I can I publish one now for test?

How is it deleted if I regret my workshop item?

You can if you are a private beta tester. Go to the steam workshop itself in order to delete your items in the workshop.

Share this comment


Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...