Play My Code is an HTML5 game development environment that lets you edit, play and share games from within your browser.

The inaugural post describes the service well:

Play My Code provides all the tools one needs to create a game, within a web browser, from anywhere in the world- simply sign up, login and get started. Play My Code uses HTML5- the latest in browser technology- meaning your game will run in any modern, HTML5-compliant browser, without requiring plug-ins or virtual machines. Games are hosted on the site too, removing the need to buy webspace to store your project, whilst your creations can be embedded on your website or blog- just like a Youtube video.

Games built with PMC are written in a custom language, Quby, a Ruby-like language created for PMC which compiles to JavaScript. The site features an interactive development environment where code is edited in one pane and the game is run in another. PMC has such niceties such as syntax coloring (via the ACE editor), sound and graphic asset management, sample games to look at and extensive documentation. Any game, it seems, can be edited.

The requirement of learning another programming language may dissuade some developers, even if the language is simply an “improved” version of JavaScript. Quby, however, won’t be a problem for Ruby veterans — loop and block syntax is nearly the same and standard objects, such as String and Function, provide the methods you’d expect, such as .times(). Quby also provides lots of useful stuff for game development, such as random number generation, simple shape collision detection, canvas drawing (with the same API as the canvas element) and sound support (via SoundManager 2). Handy interaction things seem to be built-in, like a debugging console and pausing the game when the window loses focus. Despite forcing you to learn a new syntax for JavaScript, Play My Code should get building a new game quickly.

Once built, sharing a game is easy — simply set your project’s visibility to “Public” and send a friend the URL. Embedding in another site is also easy; at the bottom of every game is an “Embed” button which displays an <iframe> HTML snippet which can be used to embed the game.

Gameplay is smooth. The games I tried seemed to run around 50 FPS in Chrome for Mac OS X while using 50% of both cores of my 2.8 GHz Intel Core 2 Duo, which is about the same as games made with the ImpactJS framework. One example, Balls, seemed to handle around 200 circular sprites on the screen with collision detection before dropping to less than 30 frames per second.

The current set of published games on PMC are simple — many of them are simple puzzle or sprite games. One that stands out is Space Snake Galaxies, which features graphics reminiscent of Vectrex and impressive scene transitions. Galaxies, however, clocks in at over 3,600 lines of Quby, which seems a little difficult to edit as a single file in a browser textarea.

Overall, Play My Code looks like a very promising platform for amateur HTML5 game development. Compared to other platforms such as PixieEngine, Games created with PMC appear to be very self-contained. There doesn’t seem to be a way to include third-party libraries or make your game networkable. If your goal is to rapidly create a 2D cross-device HTML5 game, Play My Code is probably for you.

See: Play My Code

Tagged with:
 
About The Author

Ian

Ian Langworth has been making web sites since before HTML had tables and Photoshop had layers. He wanted a single place to go for news and information related specifically to HTML5 and game development, but one didn't exist, so he started the HTML5 Grind.

  • http://about.me/andrewrabon Andrew

    After messing around I’m very impressed by it. Seems like it might hold your hand a little too much, but it still seems dead simple to use if you have any coding experience.

    I think I had an idea for a site just like this but the implementation here is better than what I could have done, for sure.

  • Pingback: Behind “Play My Code,” an IDE for Creating and Sharing HTML5 Games - HTML5 Grind