I’m a designer who works with different media to build interesting experiences. In my career, I’ve tried and used probably around a hundred tools and utilities to produce assets, solve challenges, and generally get things done. One development tool that has stayed with me through the years is a little known package called LiveCode, primarily because I like the language. LiveCode is a platform for building apps and tools. Often described as “verbose”, LiveCode’s scripting language is very English-sentence based, favoring readability over brevity. A common example cited is the way one sets the value of a variable: instead of writing “x = 1”, the code is written “put 1 into x”. Some people love this, others hate it. For me, the syntax makes sense and generally makes coding more approachable, so I can spend more time on UI details like motion, transitions, and audio.


Alas, those UI details are LiveCode’s weakness. In its decades of existence, LiveCode’s support of media has evolved very little. Its capabilities are serviceable, but are pretty limiting, especially when living in an age of full-blown computing in your pocket. Many animation effects and transitions in LiveCode require locking the screen, which is major inconvenience when trying to handle movement of many objects. And some features promised long ago have yet to be delivered (ie physics engine). So for several years now, I’ve been looking for a new environment to play in, something that would allow me to build richer experiences and spend less time hacking together workarounds to make up for limited presentation abilities and media support.


I’m starting to get excited about the game development platform Construct 3. I’ve barely scratched the surface of this HTML5 environment, but it appears to offer almost all of the features I’ve been looking for in a development tool, most notably:

– Up to 60fps display, allowing for super smooth animation and transitions, with debugging to track down performance issues

– Efficient use of instances with behaviors

– Multi-channel audio, with built-in effects and frequency/level tracking

– Over 80 built-in visual effects, most of which I won’t need, but useful in special cases

– Tween animation with tons of control and easing options available via LiteTween addon

– Framerate-independent animation, with support for multiple timescales (framerates) in a single layout

– Box2D physics engine

– Delivery on mobile and desktop platforms


Apparently in version 3, Construct moved to a browser-based editor, which at first I thought I would dislike. In my experience, desktop-based tools are generally more robust, and I was worried that the Construct 3 environment was going to be a clunky development experience. Not only have I come to appreciate the format, but the implementation allows for development on different devices, even on tablets where your software can be delivered. When combined with a filesharing service like DropBox, you can develop almost anywhere. The environment even allows for working offline. Scirra Ltd, the makers of Construct, appear to have given a fair amount of thought to the development process and how their customers are most likely to use Construct.


Previewing an app on mobile is surprisingly easy. Construct’s Project menu includes a Remote Preview option that generates a URL along with a QR code that links to the preview project. Point the camera of your mobile device at your computer screen and you can launch the preview in your device’s browser. You can even share the link with others to have them test your app. The one thing I haven’t figured out yet is whether the remote preview will run full screen on a mobile device (tablet), but for quick testing, the process is fast and easy.


I said earlier in this article that Construct 3 offers ALMOST everything I’ve been looking for. Two things I’ve found to be lacking in Construct 3 so far are built-in support for vector primitive objects and real object masking. The lack of vectors is disappointing but somewhat understandable, since it’s much faster (especially on mobile devices) to display images rather than render vectors with potentially hundreds of points, and the environment gets higher frame rates by sticking to images. Creating mask effects is possible using the equivalent of LiveCode’s ink effects (they work a bit differently than LiveCode), but you need to be exacting in your object placement, otherwise, you can wind up with portions of the mask sprite visible outside of the object/s being masked.


Back to vector objects, I recently discovered that Construct includes some type of display support for SVG, but I have yet to find an example of how to do this. A workaround (there’s that word again) might to be to use the included browser object to display an SVG file. Of course, the browser object is not an actual browser instance like LiveCode, since the project is already running within a browser environment. Instead, the browser object exposes browser capabilities and makes them available to your project. Because Construct 3 supports Web fonts, I’m creating custom icon fonts for the resizable vector graphics I want to use. Interestingly, because Construct is HTML5 based, the display of buttons can be modified using virtually all standard CSS property settings, which is pretty huge. I don’t yet know how far Construct 3 goes in supporting things like 3rd party Javascript libraries, but if this is doable, the possibilities are mind-boggling.


Last is the cost. Construct 3 can be had for an annual indy subscription cost of $99 ($149 if developing as a startup company, $399 for a standard business license). Granted, Construct is not promoted as a full-blown app development tool like LiveCode, so it may not meet the needs of some developers. Fortunately, the editor can be used with some limitations for free and without time restriction, to see how it works/performs. The free version even allows publishing to the Web, so you can share your creations with others.



Adapting my LiveCode experience to Construct is taking some time — there are a number of formatting and structural differences — but I’m growing increasingly happy with the results. I’ll reserve judgement on the mobile publishing process for the moment since I haven’t tried that yet and don’t know what the pain threshold is. But for now, here’s some preliminary animation of a game level I’ve been working on, with results I could only dream of in LiveCode. I still have a lot to figure out, but I’m excited…


(Visited 821 times, 1 visits today)