Josh (the Leadwerks creator) gave me a free copy of his Leadwerks gaming engine. I normally don’t have much use for game engine licenses, but after hearing that Leadwerks is a BlitzMax compliant (basically offers a Blitz3D like syntax, and state of art 3D capabilities) I decided to give it a test run.
I was hooked. (And nowadays using it for 3D game development)
Before going deeper in the review, I must say that Leadwerks engine is 5 our of 5 star engine for indie/casual games development. You can use BlitzMax or C, C++ to program it (C# and Delphi are community supported). Leadwerks offers great rendering capabilities with cool looking shadows and lights.
I’m using Leadwerks with BlitzMax which let me write games for Windows. Anyone who has Blitz3D background will be delighted to see that the rendering syntax is very close to Blitz3D commands.
Video says more than thousand pictures, so check out the system.
I have been using Leadwerks for less than a few months, but I can warmly recommend the system to anybody who wants to create 3D games. Especially those who have used Blitz3D should immediately step into using Leadwerks.
The good, bad and ugly
There aren’t much things that I could say were ‘ugly’, but there are some good and bad points. Here’s my thoughts on these. On a good side:
- Very easy syntax (very Blitz3D like)
- Object-oriented: Blitz3D like syntax doesn’t mean that Leadwerks wasn’t about using object oriented coding practises. After all, it’s a framework that can be programmed using BlitzMax for example.
- Beginner-friendly forums (there are members who are willing to help people)
- Ready enough for creating 3D applications (as far as I’m concerned, it’s possible to create 3D game with the engine, without need to think “when certain features will be finished”)
- Documentation is okay (I’d say it’s sufficient, and if you own Blitz3D, you can actually use Blitz3D online documentation too to some extent)
- Tutorials (decent amount, enough to get you started)
- Features: lighting, materials, shaders, ok asset management, decent art pipeline, physics, audio, terrain system)
- Performance: it’s superb fast.
- Frequent updates: the engine is getting patched in frequent basis.
- Tools such as the Sandbox editor is great for example to artists
- Price: at the time of writing it’s only $150 which in my opinion is dirt cheap compared to the deal you get (it could easily be $300 or $400 or even more). I don’t know, but my guess is that this price will go up at some point when Josh figures it out that he could be asking for higher price :)
I’ve mentioned that performance is fast, and here’s one small example that proves it. I was testing to have 200 different textured, shadowed zombies all animating in their own sequences (they are individually animated, even though on this video they are all in sync) and was able to see smooth FPS rates. My estimation is that when there’s particle effects, different materials and other game logic added we are still talking about at least 50-100 different zombie meshes to be seen on the screen simultaneously (and please notice that this is only on-screen, there can possibly be hundreds of more off-screen where they aren’t rendered). Here’s the video for you to check out:
Then some cons, since there’s always the dark side with everything:
- Content pipeline requires a bit effort to get used to (only .GMF are supported, but exporters are provided to get models from various formats such as .3DS, .B3D and many many others)
- The asset file sizes can grow big, since the asset mechanism uses file name to identifier meshes. For example, I have one zombie mesh in my Dead Wake game, but 10 different materials/textures. I could not paint different materials on different zombies meshes, but needed to first create separate files (zombie1.gmf, zombie2.gmf etc.) to be able to assign materials. This isn’t a big deal if you don’t need this type of system, but it means the file sizes can grow quite big.
- Strict license: you should check out the terms before buying. Now there are some restrictions if you want to make your game moddable.
- Attitude on the community forums: sometimes it feels that there’s some quite young developers with the Right Opinions… and sometimes it feels that it’s bit of “my way or highway” style of threads. I suppose this happens in any forums, and while the overall apperance is pretty positive I’d say there’s some negativity on the forums too.
- Compatibility: Leadwerks requires Shader Model 3.0 which means that some older cards won’t work (according to Steam hardware survey we are roughly talking about range of “50-60% of computers can handle” it – roughly speaking, since there’s no direct data about SM 3.0. This figure is approximation at the time of writing. The good news of course is that this percentage gets better all the time)
Overall I’d say the none of these ‘bad sides’ are really that bad (well, except the compatibility if you were dreaming of creating 3D games for older computers). I’ve managed to deal with all of these in my project, so I’d say people should simply try the engine and see if it works for them. All engines have some problems, and to my thinking Leadwerks engine has no single major flaw.
This has been quite of praise for the Leadwerks engine, and that’s simply because I think the engine is very good option especially for indie developers (the price is low, the quality is very high) who want to create 3D games. Developers with Blitz3D background (like me) are pleasantly surprised to see such familiar syntax.
Beginner developers have a gentle learning curve in the game development (if you know BlitzMax, then you have no problems with Leadwerks) although I think it’s perhaps not ideal for starting development since there’s vectors and materials and other things that might confuse total newbies.
More advanced users find it a very good solution for a gaming engine solution that’s easily expanded (you can create your own networking lib for example, by using BlitzMax or C++) if you have the skills. The performance is excellent, so making a nice 3D game is no longer about tools, it’s about the guy using the tool.
I very much recommend Leadwerks engine for all game developers who have a bit of programming experience and wish to start making 3D games.