Loom SDK is an open source cross-platform development kit, written in C++, that enables you to create games and applications for different platforms very quickly. It offers a command line interface and features such as live asset reloading, live code compiling, and multiple devices deployment, while preserving the flexibility of a native and open source SDK.
Software development kits like Loom SDK are a dime a dozen today, so let's look at what makes Loom stand out.
- Easy to deploy: Compile and deploy to multiple devices with a single instruction.
- Live asset reloading: You've deployed your game, but now you feel like some image should be painted red? Paint it red. As soon as you save the file, it will be automatically reloaded in run-time and propagated to all running devices without needing further compiling or deployment.
- Hot code compiling: Like the previous feature but in regards to code, any LoomScript file you change will be automatically compiled in run-time without the need to rebuild and deploy everything.
- Command line interface: Everything you will do is managed by LoomCLI, in your favourite terminal. I must say it feels pretty awesome to imagine you're Hugh Jackman in Swordfish or Angelina Jolie's best friend in Hackers.
- Native SDK and built-in scripting language: LoomSDK is written in C++ and has its own scripting language, LoomScript, which is derived from ActionScript 3 and augmented with some C# features.
- Cross-platform: The same code will run across multiple systems.
- Support: The Engine Co guys are amazing, I've never seen a company as dedicated to supporting its clients as in developing its product. They are extremely friendly and approachable, in their forums, on Twitter, via support email - you name it.
- Customer driven development: Licensees have the ability to create feature requests and vote on existing ones, shaping Loom's evolution towards developers' necessities.
- Low-cost: The Turbo plan is just $5 per seat per month.
Not convinced yet? Watch this:
And then this:
Who Is It For?
To quote the Loom SDK site:
Built for developers, artists and content creators alike. The Loom SDK helps you get awesome content up and running fast.
Supported Development Platforms
Currently, the supported development platforms are:
- Windows 7 and above
- Mac OS X
- Ubuntu 12.04
Supported Deployment Platforms
As Loom SDK is in active development, this list is prone do change. For now, you can deploy to the following platforms:
Web, Windows Store, Windows Phone 8 and BlackBerry 10 are filed as feature requests and can be voted on by licensees. At the time of writing, web deployment is the most requested feature of all.
Loom has both a free model and a monthly subscription paid model, named Loom Turbo, that $5 per month per seat. The main difference is that the free plan doesn't give you access to LoomCLI, without which you'll miss:
- The simple command-line workflow
- Live reloading of assets and code
- Precompiled SDKs for all platforms
- Easy deployment to multiple devices
In short, you'll have to clone the LoomSDK repository and manually compile it for each platform you're going to use, every time you change something.
In this section you will learn where to buy, download and install Loom, what LoomSLI, Loom SDK and LoomScript are, and which IDEs I recommend you use to develop your games and applications. Do keep in mind that this will walk you through the process of using LoomSDK with Loom Turbo - that is, the paid plan.
Where to Get It?
To start using LoomSDK, go to the Plans page and hit Go Turbo!. Afterwards, log in to the site and download LoomCLI for your operating system.
LoomCLI (Loom Command Line Interface) provides most of the great features LoomSDK has to offer. Nate Beck created a great LoomCast about the LoomCLI, which will ease you in to using the tool and the workflow:
Loom SDK: Going Native
Loom SDK is publicly available on GitHub, and anyone can compile it and use it. As a Loom Turbo licensee, you'll have access to the latest compiled versions for every platform via LoomCLI.
Even if you don't plan to go into the native side of Loom, I advise you to at least have some knowledge about it. Check out this LoomCast by Ben Garney explaining how to compile, debug and use the Native Loom SDK:
LoomScript is a strongly-typed scripting language that The Engine Co created for Loom SDK which compiles to bytecode and runs on LuaJIT VM. Derived from ActionScript 3 and enhanced with features like delegates, struct value types, operator overloads, enums and reflection - well known by C# and similar developers - it offers the best of both worlds: it's flexible while staying simple!
To learn about LoomScript and even indulge in why The Engine Co created this language, hit the official documentation.
Okay, the following programs aren't full-blown IDEs - they're great code editors that are particularly well suited to LoomScript programming. (To compile the native SDK, you can use your favourite C++ IDE or compiler.)
Since version 4.4, FlashDevelop supports the creation and development of "Loom Apps". FlashDevelop is the closest to a proper IDE of all other options; after making sure that LoomCLI has a SDK installed, everything should work out of the box.
You can follow FlashDevelop Loom support on the Loom SDK forums.
Sublime Text is a cross-platform text editor for code, markup and prose. Quoting from Sublime's site, "You'll love the slick user interface, extraordinary features and amazing performance.".
Although it may seem like any other simple code or text editor, you'll be amazed by how much you can achieve with Sublime's extensibility. It will not be a perfect substitute for your favorite IDE, but with the right configurations it won't be that far from it.
Download Sublime Text and use this guide to set up LoomSDK.
- Perfect Workflow in Sublime Text (Free Tuts+ Course)
Eclipse is another option that you might use, but currently it's the least interesting as The Engine Co staff have halted Loom support add-in development in favour of LoomCLI/SDK development. Nonetheless, you can still download the plugin here.
The pitfalls will generally come down to what you are expecting from a development kit like this, but one of the big limitations is the lack of 3D development support. That being said, for now it is great for 2D development and, since the SDK itself is open source, some developers have managed to implement 3D support in their projects. If this is a blocker for you, feel free to contact The Engine Co guys and they will point you in the right direction, or maybe give you access to something they have in development.
As this is a really young product, there still aren't many external resources, but this is something that is improved by the community and the quick and efficient support. Additionally, at the time of writing the website is not very informative in regards to some specific information you might be looking for - for instance, the list of supported deployment platforms isn't available on the Loom SDK website or in the documentation but it is available in Loom SDK GitHub. However, the developers are working to improve this.
As I mentioned above, Loom is a young product and so there aren't many resources apart from the documentation and the examples that The Engine Co have prepared. Here's what's available at the moment.
Official documentation and examples
This is the place to start learning in-depth about Loom.
Read the initial guide in the documentation and afterwards try some examples by running:
loom new [project name] --example [example name]
If the aforementioned documentation and examples can't help you out, take it to the forums, where you'll find helpful fellow developers.
This is by far one of the best places to get support.
One of the great ideas The Engine Co had was creating LoomCasts, which feature free videos about Loom SDK and Q&A sessions with the Loom SDK development team.
These help if you prefer learning from vide,o and the Q&A hangouts are great for learning about the implementation decisions the developers make and where they are heading with the product.
The IRC chat channel is another excellent place to get some quick help from The Engine Co guys that hang out there, or just to socialize with fellow awesome game developers using Loom.
Right now, the Loom SDK Wiki doesn't provide much help. With luck, however, it will get built up and become more useful over time - so don't forget about it.
The Engine Co Blog
The developers' blog isn't exactly the right place to learn about Loom, but you will often find updates here on something you might have been waiting for. If you watch the forum for news, watch this as well.
When everything else fails, hit the emergency button and call for backup! Email firstname.lastname@example.org, and a wild support agent will appear; I guarantee that they are super effective.
Built With Loom
Hungry Hero is an open source Flash game made with Starling Framework which has recently been ported to Loom. You can play it on the web, download it from the App Store and fork the GitHub repository.
Raymond Cook, whom I speak to below, demonstrated his love for Hexagon by developing a Loom port in his time off.
I believe that the best way to get informed about a development platform is to talk with developers that are using it on big projects. Here, Raymond Cook, a developer who is using Loom SDK to develop an Android and iOS mobile game, was kind enough to give his opinion about the pros, the cons, resources he used to get started and why he picked Loom:
Pros of Using Loom
- Live reload allows you to immediately see art and code changes, saving on long waits for small changes.
- Rapid compile times, even to device.
- Industry-standard AS3 scripting is very friendly and allows for rapid iteration.
- The open source SDK allows full customization - no "black box".
- Small and compact binaries.
- The cross-platform SDK allows the same codebase to be used on multiple operating systems.
- While the team is fairly responsive about large issues with the platform, they are still quite small and lack the manpower full-time support requires.
- The product is still in early stages and is missing a lot of functionality and libraries that more mature SDKs offer. This can offer a lot of frustration as much base functionality games require are expected to be written by you, the developer.
- Advanced C++ knowledge is required if you wish to fix problems, extend the platform, or write any functionality that is processor intensive and would be inefficient to write in script, and getting started on the native side can get a bit confusing.
- Loom on Windows is buggier to develop with and more difficult to set up (especially with the native SDK), since much of the toolchain is designed for use with a UNIX-style terminal, and the Windows Command Prompt is a poor substitute. Small rendering differences can also pop up between DirectX on Windows and OpenGL on Mac and devices. Also, as of SDK 1.1.2768, you are unable to test on iOS devices from Windows.
- There is no full-featured IDE or stable visual debugger.
Resources For Getting Started With Loom
I got started with Loom primarily by using the docs provided with the SDK. There are plenty of examples shipped with the docs that demonstrate different features of the platform and are great for learning. Any questions I had or problems I ran into I posted on the forums, and the community is usually quite helpful in responding.
Why I Picked Loom SDK
I chose Loom SDK because of its cross-platform abilities, use of as3 for development, and rapid compile/iteration times. Before I used Loom, I developed primarily with Adobe AIR, so it was a natural switch for me. In fact, I've been able to port over portions of my old AS3 code, as well as the PureMVC framework, which I am using for my current project.
By now I hope you have a clear idea of what Loom SDK is and, feel you have a good starting point to learn and develop with it. Feel free to leave your opinion about this SDK as a comment or just ask for some specific info not covered by the article, and I will do my best to fill the gap!
As a programmer, Loom SDK is my dream come true. The features are amazing and unique, improving the development workflow and taking the load off for what game developers really want to do: create great games!