Leadwerks Software today announced the release Leadwerks Game Engine 3.2, the newest version of their game development software on Steam. This update brings integration with Workshop, Steam’s system for user-generated content. The Leadwerks Workshop gives developers a head start by launching with more than 50 free packages of content ready to be used to make games.

“Leadwerks was created to give people who love games the freedom to create something of their own”, said Leadwerks CEO Josh Klint. ”With version 3, we basically nailed the workflow. There’s always more features you can add, but we basically have the technology problem solved. Once you get to that point, the next thing that comes up is content. Developers need lots of content to choose from. The Leadwerks Workshop on Steam leverages our community so we can all collaborate more effectively.”

The Leadwerks Workshop has some features similar to existing stores like Turbosquid or the Unity Asset Store. You can browse and install various third-party model and texture packs. However, the Leadwerks Workshop takes collaboration a step further. Derivative works are supported, meaning items in the Workshop can be used to make new items that can be published. For example, it’s possible to take a gun from one author, mount it on a vehicle someone else made, and publish the assembly as a new item. “With traditional content stores, artists are always worried about people ripping off their work,” explains Josh. “This kind of flips the equation. Now you want people to reuse your work, because any derivative items they publish always link back to your original.”

Game content isn’t the only thing that can be distributed through the Leadwerks Workshop. Games themselves can be published to Steam via the Workshop, with no waiting period and no approval process. This allows developers to get their game in front of an audience and build a following, without going through the Greenlight process.

About Leadwerks SoftwareLeadwerks Software was founded in 2006 to build powerful game development tools that are easy to use. The company launched Leadwerks 3, their first multi-platform product, in April 2013 at the GDC expo. Last summer, the company conducted a successful Kickstarter campaign to bring Leadwerks to the Linux operating system, reaching over 200% of their goal in just six weeks. A concurrent Greenlight campaign for Steam was also successful, making Leadwerks the first 3D game engine approved for distribution on Steam.

Leadwerks 3.1 is nearly ready for release! In Leadwerks 3.0, we focused on making a solid cross-platform art pipeline and editor. In 3.1 we're adding graphics that go above and beyond the capabilities of Leadwerks 2, with an OpenGL 4.0 deferred renderer with up to 32x hardware MSAA. "Leadwerks: Indie Edition" will be launched on Steam January 6th. This will allow you to make your own 3D games with Lua script.

Last week Valve founder and CEO Gabe Newell took to the stage at LinuxCon and proclaimed that "Linux is the future of gaming". Gabe talked about Linux gaming capabilities and promised to unveil something "on the hardware side" the following week. Today, Valve announced the upcoming release of SteamOS, a living-room operating system designed specifically to compete directly with the XBox, Playstation, and Wii console ecosystems. SteamOS will being openness to the console gaming world. This will have a lot of benefits for indie game developers:

Console game development will no longer require expensive fees to publish and update games. If you can get your game on Steam, it can go on a console.

Hardware manufacturers can compete to deliver better Steam-powered consoles. Gaming hardware will never again stand still for nearly ten years (as it did with the last generation of consoles).

Steam-based game consoles will be backwards compatible and future-proof. Games you buy now on Steam will still be playable on consoles three generations in the future.

I am very excited about this development and the future of open console gaming. Leadwerks will be available for SteamOS as soon as possible.

Tech Progress

The Leadwerks 3 engine has been successfully compiled for Ubuntu 13.04. However, when running the application, all I saw was a blue screen. I decided to focus on the OpenGL 4 deferred renderer for a while. While working out the depth reconstruction for the deferred renderer, I realized I was making unnecessary calls to glDepthRange(), which weren't needed at all. After removing these calls my depth reconstruction code worked correctly; this was the cause of the errors I experienced when developing a deferred renderer on iOS for GDC 2013. I also believe the calls to glDepthRange() were what caused the engine to not render anything when running on Ubuntu, though I won't know for sure until I try it out.

Leadwerks 3.1 features an OpenGL 4 deferred renderer with support for up to 32x MSAA. I was able to get this running in just a few days. I already had parts of the OpenGL 4 renderer done, and I've been working with deferred renderers since 2008, so it all came together quickly. It's easier today to write a deferred renderer for a couple of reasons.

First, the state of OpenGL and driver support has gotten much better. Leadwerks 2 was written against the OpenGL 2.1 specification, which was not designed for deferred rendering. I relied on many vendor-specific extensions (some of which changed behavior halfway through the engine's life). OpenGL 4 was specifically designed for the type of things I am doing with it, so I am no longer fighting the spec. If a graphics driver has a problem, it's easier to get it fixed today than a few years ago, now that the rest of the industry has realized the benefits of deferred rendering.

Second, hardware today is much more powerful than when Leadwerks 2 was developed. Leadwerk 2 was written for GEForce 8800-level hardware, and used a lot of optimizations to favor speed over quality. With modern hardware I don't have to rely on so many hacks and I can push the upper limits higher. For example, Leadwerks 2 used a random edge jitter that gave a grainy approximation of soft shadow edges. With Leadwerks 3 I can increase the blur kernel and display beautiful soft shadows that look more like an offline cg render than real-time graphics:

Leadwerks Shwag Surfacing

Leadwerks Shwag is beginning to appear in the real world. Post your photos of you modeling a stylish Leadwerks shirt or sticker so the rest of the community can see!

We're pleased to announce the third Leadwerks game tournament, titled A Machine for Penguins[www.leadwerks.com]. The final tournament before the release of Leadwerks 3.1 for Linux, this competition's theme is...Machines! Use the new joint motor features to build a game involving your scariest, coolest, or craziest contraptions.

WHEN: The tournament will start October 1, 2013, and end October 28th at 11:59 P.M. (Pacific Standard Time).

HOW TO PARTICIPATE: Upload your game to the Leadwerks Asset Store before the end of the competition. You can also publish a video on YouTube with the tag "A Machine for Penguins" if you would like to demonstrate and explain your concept. You are encouraged to form teams, but individuals may compete on their own.

JUDGING: Winners will be chosen by the Leadwerks community in a forum poll.

PROMOTE YOUR PROJECT: Promotion is a critical part of game development. Be sure to post blogs about your progress and post updates on Google+ using the tag #AMachineForPenguins. Anyone with a Leadwerks forum account will be able to vote, so more fans equals more votes and gives you an advantage! (Other suggested tags are #ubuntu and #linux.)

A new update to Leadwerks 3.0 is out. Registered developers can run the Leadwerks updater to download and install the patch. This update adds terrain, bug fixes, and a few small feature enhancements.

Our new terrain system, described in our Kickstarter campaign to bring Leadwerks to the Linux operating system, is based on a unique "dynamic megatextures" approach. This technique renders sections of the terrain into virtual textures and places them around the camera. The terrain presently allows a maximum size of 1024 meters and 16 texture layers, but these constraints can be lifted in the future once it's been thoroughly tested. You can see an example terrain the the "terrain.map" scene included in the example project folder.

With the increased scene geometry terrain brings, I found it necessary to precalculate navmeshes in the editor. To calculate a navmesh for a map, select the Tools > Build NavMesh menu item to being up the Build NavMesh Dialog. The navigation data will be saved directly into your map file for pathfinding. Two values have been exposed to control the navmesh calculation and the appearance of the navmesh has been improved to allow easier visual debugging. Additionally, the new World::BuildNavMesh[www.leadwerks.com] command lets you calculate navigation meshes in code.

The bug report forum contains info about recently fixed problems. The most notable fix was for character controller physics. Some frame syncing issues were fixed which were causing entities to sometimes pass through walls and floors. This problem was very apparent in the recent game demo GreenFlask[www.leadwerks.com].

A new command World::SetPhysicsDetail[www.leadwerks.com] allows you to balance the speed and accuracy of the physics simulator.

The Transform::Plane[www.leadwerks.com] command has been enhanced to work with Lua, which had trouble understanding the syntax of the command.

Development of Leadwerks 3.1 for Linux remains on schedule for the December release. With the (highly experimental) terrain system out of the way, my attention is turning towards the OpenGL 4 renderer and getting my Linux expert started with the porting process to make Leadwerks run natively on Linux.