Updated Box2D Plugin

The official Impact Box2D Plugin has been updated to use Box2D 2.1a. This update features the new API and fixes some performance and stability problems.

The physics demo can be found on your download page and the plugin itself is at github.

Tuesday, June 18th 2013 / Tags: Examples, Plugins

Ejecta 1.3

Version 1.3 marks a huge update for Ejecta with many new features and countless bugfixes: In App Purchas API, WebGL, WebSockets, several new events and much more.

With support for Gradients and Patterns, this release also almost completes the Canvas2D API. See the changelog below for all the details.

Thanks to everyone who contributed and reported bugs!

As always, the newest release can be found on the Ejecta project page.


  • Added WebGL support (for an example with three.js see the readme)
  • Added API for In App Purchases
  • Added support for WebSockets
  • Added deviceMotion events
  • Added pagehide, pageshow and resize events
  • Added support for Patterns and Gradients
  • Added getImageDataHD/putImageDataHD
  • Added .style property for Canvas elements, removed old .scaleMode property
  • Added basic support for Video elements
  • Added support for hsl/hsla colors and 140 HTML color names
  • Added CommonJS style require; ejecta.require() has been depracted, use ejecta.include() instead.
  • Support for TypedArrays added in JavaScriptCore
  • Moved Canvas2D to OpenGL ES 2
  • Greatly improved image load times
  • Changed all 2D Canvases to use a backingStoreRatio of 2 by default
  • Simplified the whole file structure of the project
  • Fixed problems when drawing canvases onto themselfs
  • Fixed various issues with drawText()
  • Fixed various issues with path drawing
  • Fixed various multitouch issues
  • Fixed various memory problems
Wednesday, May 29th 2013 / Tags: Releases, Ejecta

Games Showcase

The Impact website now has a new Games List where users can showcase their own games made with Impact. Right now it looks a bit empty, but I'm sure it will fill up soon.

You can add your game by creating a thread in the Games Forum. If you already have a thread for your game, you will find a "Edit Game Info" link at the top of your thread, where you can upload a screenshot and set the URL.

Monday, April 8th 2013 / Tags: Games

Impact 1.22

Impact 1.22 fixes a number of issues with Internet Explorer on Windows8/RT and Windows Phone. Font loading should now be more robust in recent Ejecta versions as well.

As always, if you&039;re updating from a previous version, take care to not overwrite your own files. You'll just need to update the files in #lib/impact/ and lib/weltmeister/. Grab the new version from your download page.

Changelog - Impact

  • Fixed problems with small pre-rendered BackgroundMaps
  • Fixed Font loading issues with Internet Explorer and Ejecta
  • Fixed WinPhone not recognized as platform
  • Added ImpactMixin for easier integration with different environments (e.g. NodeJS)
  • Added generic and for User Agent Sniffing.
  • Added support for MSPointer events - this makes ig.input.mouse work on Windows based touch devices

Changelog - Weltmeister

  • Fixed focus problem after using menu buttons (thanks boomshanka)
  • Fixed ig.lib being ignored when loading entities
  • Modified the default collision tileset graphic to better indicate unused (yet solid) tiles
Sunday, March 31st 2013 / Tags: Releases

Impact 1.21

Impact 1.21 is a bugfix release that deals with a number of small problems and a quite big one.

Apple recently released a new version of their Safari Browser for Retina MacBooks that breaks many Impact games and produces garbled fonts and blurry scaled up versions of games. I wrote a bit more about this whole ordeal over at PhobosLab.

Impact 1.21 carefully works around these issues. If you want your games to run on Retina MacBooks in Safari, you should update.

As always, if you&039;re updating from a previous version, take care to not overwrite your own files. You'll just need to update the files in #lib/impact/ and lib/weltmeister/. Grab the new version from your download page.

Changelog - Impact

  • Fixed issue with ig.Timer pause() not working on the very first frame
  • Fixed ig.Input to ignore keys on Input and Textarea elements
  • Fixed Function bind() to be ECMA-262 compliant
  • Fixed scaling issues for images and fonts with Retina MacBooks
  • Fixed ig.input.mouse.x/y to take the CSS scaling into account
  • Fixed ig.Sound to disable sound completely if HTML5 Audio is not supported (Safari/Win)
  • Fixed ig.Animation rewind() method not returning to the first frame after gotoFrame() was called
  • Fixed constructor assignment in ig.Class
  • Fixed debug.css to honor the ig.prefix value
  • Fixed issues with preRendered repeating BackgroundMaps when screen coordinates are negative
  • Fixed an issue for one-way collision tiles, where an entity may move through the tile

Changelog - Weltmeister

  • Fixed Entity selection to allow for overlapping Entities (thanks alexandre)
Tuesday, December 4th 2012 / Tags: Releases

Ejecta 1.2

The Ejecta github project is still full steam ahead. This 1.2 release again brings a whole bunch of bugfixes, moves the Canvas implementation closer to the spec and adds some missing features. Notably, this release brings support for ctx.clip() for the Canvas element. The only missing Canvas features are now gradients, shadows and patterns.

Thanks again to everyone who contributed and reported bugs!

Grab the latest release version from the Ejecta project page.


  • Added support for ctx.clip()
  • Added support for XMLHttpRequest to access local files
  • Added support for auto-loading of @2x textures
  • Added navigator.onLine to check for internet connectivity
  • Added ejecta.getText() for prompt-style text input
  • Added Image.complete boolean flag
  • Fixed various bugs in XMLHttpRequest
  • Fixed various line drawing bugs with closed/unclosed paths
  • Fixed problems with ctx.transform() and ctx.arcTo()
  • Fixed ctx.fill() to use non-zero winding rule instead of even-odd rule
  • Fixed problems with unicode chars when drawing text
  • Fixed problems with ctx.imageSmoothingEnabled not beeing honored for different Canvas elements
  • Fixed failed Image loading when the Screen Canvas context was not created prior
  • Fixed touch event not reporting .touches and .changedTouches correctly

Also check out the awesome EjectaGL project by @vikerman - he made some good progress on getting WebGL support into Ejecta. We're looking into bringing this over to Ejecta proper for some future release.

Wednesday, November 28th 2012 / Tags: Releases, Ejecta

Ejecta 1.1

The Ejecta github project has been very busy in the last few weeks. We fixed a whole bunch of issues, made the project much more stable and added a good deal of new features.

A huge thanks goes to Tharit who fixed a lot of issues with vector functions and implemented the excellent and fast font rendering routines. Also thanks to anyone else who contributed to the project and reported bugs.

Grab the latest release version from the Ejecta project page.


  • Added the XMLHttpRequest API
  • Added font fillText(), strokeText(), textAlign and textBaseline
  • Added round and proper bevel line joins
  • Added destination-out, destination-over, source-atop and xor blend modes
  • Added softAuthenticate() for the GameCenter API
  • Added reportAchievementAdd() for the GameCenter API
  • Added support for fullscreen antialiasing (MSAA)
  • Fixed orientation issues
  • Fixed various line drawing issues
  • Fixed various touch event problems
  • Fixed various problems with getImageData()
Thursday, October 18th 2012 / Tags: Releases, Ejecta


Today, I'm releasing Ejecta – a fast JavaScript, Canvas & Audio implementation for iOS – under the MIT Open Source license.

Ejecta has been formerly known as iOSImpact. It still shares the same idea and some basic code with iOSImpact, but is otherwise a significant rewrite of it.

The whole Canvas implementation has been re-implemented from scratch and is now much faster, more robust and closer to the HTML5 spec. It also supports the vector drawing functions, such as lineTo(), bezierCurveTo(), fill() and stroke() as well as getImageData() and many others.

iOSImpact used a lot of Impact specific hacks and you needed a special set of plugins to make Impact work with it. This is no longer the case – Impact games now work without any modifications or plugins in Ejecta.

Ejecta has become much more generally usable. It's not only a tool to get Impact games running on iOS, but can also be used for many other Canvas animations and games.

Because Ejecta is no longer focused on Impact only, I decided to release it as Open Source to see what the community comes up with. I'm also hoping that the community will help out to fill the last gaps in the Canvas implementation and also provide some more functionality such as in-app purchases or WebSocket support.

Visit the Ejecta page for more info. If you're upgrading from iOSImpact, be sure to read the Integrating Impact Games article.

I also wrote a bit about some implementation details in my blog.

Wednesday, September 26th 2012 / Tags: Releases, iOS, Ejecta