We've got a Leadwerks 3 update coming out this week, with miscellaneous fixes and some new features.
The first are the addition of Import and Export buttons in the Project Manager. You can export an entire project to a zip file. You can import a project from either a Leadwerks project file (*.werk) or a zip file. This makes it easy to share projects and synchronize your work across different computers.
The second new feature is projected shadows. These allow characters and other ob
Shadows in 3D games are important. Not only do they look good, but they communicate information about the 3D geometry of the scene. Leadwerks pioneered dynamic deferred lighting, with one of the first deferred renderers in the world on PC. However, fully dynamic lighting requires some pretty beefy hardware, and the reality of today's situation in computing hardware has to be considered when we are designing a platform for other people build commercial products on.
To support games that re
I was sorry to hear the news of Stonetrip's liquidation earlier this month. Shiva3D pioneered multi-platform publishing, and I enjoyed killing zombies in "The Hunt". I know that many of you are wondering what to do next. So, let me just get it out on the table that Leadwerks might be an option for your team.
We just released Leadwerks 3, our first cross-platform product for mobile. Leadwerks 3 is completely redesigned to accelerate developer productivity with new advances in tools and wo
You may notice the website header looks a little different. Sleeker, cooler, more 2013ish. Well, it's actually a lot more classic Leadwerks than you might realize. Here's what Leadwerks.com looked like in 2005:
I'm back home now, relaxing after a long week away. And what a week it was!
I got my lecture out of the way on Monday. I felt like I was pretty well prepared, but some acoustical problems in the hall really made it very difficult to concentrate, plus I was pretty nervous about talking in front of about 600 people. I did it though, and hope to do another one next year. The recorded lecture should be available in the GDC vault.
During my talk, I described my experience as a PC developer,
We're very busy this week, doing a lot of things that are out of the ordinary for us.
Leadwerks Software will be at booth #938 at GDC 2013 in San Francisco March 27-29. Come by our booth if you're in the neighborhood, play with the full software, watch our demo reel, and get a look at the world's first...well, you'll have to come see it for yourself.
If we get a chance, we'll stream some video from the event.
Here's our staging area.
Following the GDC, Chris will be focusing o
The last few weeks have been interesting as we've been figuring out where Leadwerks 3 fits into the game development landscape.
The good:
The feedback from the Leadwerks 3 users has been more positive than anything I've ever seen. People love using it. All the care and attention to the tools has really paid off. The return of constructive solid geometry is a huge win.
At the upgrade pricing, we're doing a lot of sales. Leadwerks 3 makes more in a week than Leadwerks 2 made in a mont
That was one crazy weekend! Things were hectic at times, but we managed to process all orders and get people started with Leadwerks for Android. Well, everyone except YouGroove. I've got to do some tests on a clean install of Windows, so I will figure out exactly what JRE to install, since that part can be confusing.
I uploaded new builds for Windows, Mac, and Android just now with performance improvements. Darkness Awaits is playable now on my Samsung Galaxy Tab 2, though I know I can
Well, starting with leaving my iMac's power cord at home, this has been a chaotic day, but we're getting it under control. Leadwerks 3 is a much bigger step beyond Leadwerks 2. We're no longer confined strictly to the PC platform, we've now got a C++ code base that can be used in many ways, and our new tools are really nice to use, if I do say so myself. It's also nice to sort of reconnect with our origins in the CSG editing tools. The feedback on this has been very positive, and I think it
The Leadwerks community project "Midnight Salsa" was one of my favorite things that came out of Leadwerks 2. Watching the videos of everyone collaborating across the globe was really interesting, and with Aggror's leadership they did pull off what they set out to do: Make a playable zombie FPS. However, there were some weak points that showed me where I could put effort and have it be the most useful.
When you go through the first set of doors, a carefully placed light above the door shin
A couple weeks ago I replaced the Object::SetHook() function with an Object::AddHook() function. The difference is subtle but significant. SetHook() supported a single hook function but AddHook() supports multiple hook functions for each hook ID, that will be called in sequence.
Syntax
AddHook(const int& hookid, void* hook)
Example
#include "App.h"
using namespace Leadwerks;
App::App() : window(NULL), context(NULL), world(NULL), camera(NULL) {}
App::~App() { delete world; de
I've spent the last few days writing simple examples for every single command in Leadwerks 3. Not only does this make the documentation more friendly, it also acts as a final test to make sure all the commands work the way they say they should. I make the C++ example and then Chris converts it to Lua (and tells me what I did wrong!).
I didn't realize it at first, but this really showcases the strength of API design of Leadwerks. Since you get full control over the execution and flow of a
I got the editor documentation written pretty quickly. It was hard to start, but once I figured out how I wanted to lay out the information, it all started flowing pretty easily.
Documentation in Leadwerks Engine 2 was a weakness, especially in stuff other than the programming reference. This is unfortunate, because I have come to see documentation as the final product. Everything in the development cycle leads up to the ability to write good documentation.
Good documentation starts w
Development of Leadwerks 3 was (theoretically) completed today. We still have a lot of testing and bug hunting to do, but all features for release are written.
This is where it started:
http://www.leadwerks.com/werkspace/blog/1/entry-500-day-1/
In this blog I'm going to explain the evolution of the entity and physics system in Leadwerks 3.
In Leadwerks Engine 2, physics bodies and character controllers are both separate entity classes. If you want a model to be physically interactive, you parent it to a body entity. If you want a model to walk around with physics, you parent it to a character controller body.
In Leadwerks 3 I decided to give physics properties to all entities. This means all entities can use commands like Ge
Today I added the visible guides in the editor for point and spot lights. I also tested out the new FBX converter, recompiled with the 2012 FBX SDK. It works. (There are no file format changes in the 2013 FBX SDK, so this will load everything.) Our character models still have to be rescaled, so I added a resize option in the model editor. That way models can be resized and the model file saved, so you don't have to rescale a model every single time you place it in the editor. Having models
I spent the day manually setting entry categories in the new documentation database. This was needed to make the docs actually use the nice breadcrumb bar in the website header. Our content management system doesn't exactly support hierarchical pages, so some clever PHP scripting was used to make it work. The whole point is simply to make navigation easier, and it works well. I also wrote some PHP code that does a search and replace with class names, so class names are always links to the pa
Here's something I've been thinking about. What do you think?
Apple
Locking down OSX.
No optical drive. The Mac software shelf at Fry's is now obsolete.
Mac App Store.
Gatekeeper only allows "signed" applications, by default.
[*]Miniaturization of computer hardware, at the cost of graphical performance.
[*]Move to non-upgradable hardware (glued-in memory).
[*]Moving away from file system access (iCloud).
[*]Hardware is expensive, and will always be a luxury item.
W
I hope everyone is having an awesome Christmas week. I'm taking a break from coding to show you our new office we moved into in November at the Sacramento Hacker Lab.
All decked out for Christmas:
Chris is pretending to work, but he's not fooling me:
So we changed the arrangement to make a reverse mullet. (Party in the front, business in the back):
The kitchen provides energy, both in the form of food and alcohol:
The common area:
The room-temperature beer flo
Here's my list of things left to do:
Documentation
Undo system
Get character models for Darkness Awaits
Prepare the super secret special surprise for deployment
Undo functionality is my absolute least favorite thing to program, and I also want to get some more real-world testing done before implementing it, so it comes last. This evening I will start on the docs, in earnest.
I hope everyone is having a good near-Christmas week.
I got tired of rescaling some models every time I created a new instance of them in the Leadwerks 3 editor, so I added an option to resize the model file itself to the proper dimensions. Double-click the model thumbnail in the asset browser to open it in the model editor. Then select the Tools > Resize menu item. The Resize Model dialog will appear with options to scale by a percentage, or fit to a specific size. For convenience, you can choose the units to use, including centimeters, met
We decided to make one last minute change to the material editor. The texture list is a bit easier to work with now:
Looking pretty nice on Mac, too:
We're also working on our character models for Darkness Awaits, as well as a super secret special surprise...
This is the final output of Leadwerks 3 on Windows.
When you choose "Windows" in the Publish dialog, a few options appear. Press OK and your game's installer is created.
The installer looks like this. You can replace the installer images with your own if you like:
I'm working on project creation, management, and publishing right now. This is necessary because it automates some steps that would otherwise be very time-consuming.
When you create a project, you can choose the language and the platforms you want it to run on:
You can switch between projects to reload all assets and change the working directory:
You can export a project into a zip file, give it to someone else, and they can easily import it back from the zip, and have it availa