New this release: export to Linux via node-webkit, 9-patch and WebSocket plugins, and the Turret behavior!
We've tested Linux export on Ubuntu 12.10 and it seems to be working well. However there are a few things to bear in mind when exporting to Linux:
- The exported app won't run unless you enable execute permission. In Ubuntu you can do this by right-clicking the file and enabling Allow executing file as program, or from the terminal using chmod +x myapp.
- We thought graphics card drivers were bad on Windows. Drivers are great on Windows compared to Linux. Chrome disables hardware acceleration for a lot of driver or hardware combinations, such as when using open-source drivers but not proprietary drivers. WebGL support is likely to be very patchy, and even hardware accelerated canvas 2D may not be available (so you'll get software rendering). I could get WebGL support on an AMD Radeon 6570 using the proprietary drivers from AMD; by default Ubuntu gives you the open source drivers which Chrome does not support. Chrome also warns about possible instability or glitches on certain hardware combinations. You can check what Chrome thinks of your setup by installing it and browsing to the URL chrome://gpu, and see what it says for Canvas and WebGL.
- We found some strange performance characteristics, for example running at a laggy 30 FPS windowed but responsive 60 FPS fullscreen. We'll be investigating if node-webkit can fix this or if it's driver issues beyond our control.
The installer is also now 110mb up from about 60mb in r114, because node-webkit requires several large files for each platform. We don't anticipate this is too much of a problem though, since broadband is widespread these days.
It's exciting to now be able to publish desktop apps to Linux, Mac and Windows! Don't forget HTML5 games have always been able to run in the browser on Linux, but subject to the same limitations with WebGL/hardware acceleration described above. The main thing is as ever to make sure your game is playable and looks correct with both WebGL enabled and disabled.
We have a couple of new built-in plugins as well. Check the new examples in the Start dialog for demos of the Turret behavior and 9-patch plugin. Here's a quick summary of what's new:
Previously called the "Panel" object in Classic, this object takes an image and draws the corners, edges and fill separately. This makes resizable rectangles which don't get blurry as they resize larger. These can be very handy for making re-usable UI images from a single small source image. If you've used border-image in CSS, it's also similar to that.
If you used Construct Classic you may also remember the Turret behavior. It's useful for turret defence style games, automatically aiming and firing at targets within a certain range. It also includes a nifty little feature called 'predictive aim', also from Classic: this enables it to aim at where the target is going, instead of where it is, making it far more accurate. To learn more see the two new Turret examples in the Start dialog!
The new WebSocket plugin is a simple wrapper around the WebSocket protocol. You can connect to a server and send and receive text messages (binary messages are not yet supported), and that's about it. It should be compatible with any WebSocket service that uses text messages. Note WebSockets are not supported in IE9 or the Android browser, but are supported in IE10 and both Chrome and Firefox for Android.
If you're thinking about using WebSockets for real-time multiplayer games, prepare to be disappointed: it's not suitable for that for a variety of reasons. Not only does it lack a large number of features like separating messages in to channels or telling you who else is in a "game", but at the network level it can only communicate over TCP. Real-time games need to use UDP for low-latency lag-free gaming, and WebSockets do not currently support this. Using TCP is likely to make your game laggy and unplayable even on good quality connections. Maybe in future we'll have better support for multiplayer games, but right now WebSockets are best for less latency sensitive things like chat rooms and communicating with services in real time.
That's everything for this build, but there's more on the way for future releases!