Jump to content

  • Log In with Google      Sign In   
  • Create Account

Leadwerks Developer Blog

Leadwerks Workshop on Steam Launches Beta

Posted by , 20 March 2014 - - - - - - · 1,009 views

Leadwerks Workshop on Steam Launches Beta Previously, 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:
Posted Image

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:
Posted Image

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.
Posted Image

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:
Posted Image

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.

Building a Collaborative Content Production Pipeline - Part One

Posted by , 12 March 2014 - - - - - - · 1,060 views

Building a Collaborative Content Production Pipeline - Part One As the maker of a game engine primarily aimed at Indie game developers, I have the opportunity to observe behavior of many individuals working together. This allows me to observe interactions from a perspective the individual participants in the system sometimes can't see.

There are many steps in game development, that can be performed by people with different skill sets. The workflow for Leadwerks is designed on this premise. At its simplest, Leadwerks can be used as a visual design tool with mapping tools and the flowgraph editor for game logic. Beneath this lies the entity script layer, and then beneath this is the C++ API at its core.

Ultimately, my goal is to facilitate cooperation between different users who occupy different niches in the content production pipeline. Mappers, programmers, designers, and artists should be able to benefit from one another's work without entering into structured agreements. Ideally, they will all just churn away at what they are good at, like the cells in a human body keeping the organism healthy and productive.

Taking a very broad view of the matter, you really need three things to achieve that vision:
  • Free sharing of items within the community.
  • Protection of intellectual property rights.
  • Tracking of the chain-of-authorship and support for derivative works.
This is challenging because some of those goals may seem to contradict others. For example, if I upload a model on Turbosquid I certainly don't want someone else turning around and reselling it as their own work, because that violates my intellectual property rights. On the other hand, if we don't allow frictionless exchange of content, individuals further up the value chain never get a change to add their valuable contributions to the ecosystem.

That's why I'm taking a new design with this system, one that has never been done before. In my next update I will talk in more detail about my design and how this system will change the way content is produced.

Putting the finishing touches on Leadwerks for Linux

Posted by , 06 March 2014 - - - - - - · 957 views

I'm happy to say that Leadwerks now supports the entire process of making games natively on Linux. Let's take a quick tour through the process.

First, we create a new project in the project wizard. The project wizard will detect project templates (you can make your own) and let you make a game based on Lua script, or on a combination of C++ and script:

Posted Image

Step two is to make your game. Fortunately, you've got everything you need built into a single integrated editor, including script and shader debugging, automatic asset reloading, and built-in level design tools:

Posted Image

Once you have something you want to share, the project publisher will copy all required files into an export directory. Future feature idea: Add a call to a command-line tool to pack up .deb packages. Or better yet, allow any arbitrary executable to be run at the end of the publishing process.

Posted Image

I have some more testing to do before release, but things are looking good!