I’m pleased to announce the official release of Clockwork, an open platform for developing HTML5 games based on modular components.

Why Clockwork

Before getting into details about it, let’s address the elephant in the room: Why do we need yet another game engine? The best way of addressing that question is listing the objectives of the project:

  • Develop a platform that is not only open source but designed from the ground up to be more open (as opossed to more traditional ‘monolithical’ game engines), so you choose / build your own rendering library, physics, native API wrappers…
  • Provide an end-to-end developer-friendly experience, with tools that ease common tasks such as deploying, debugging, managing dependencies, publishing… , instead of just providing a .js library and asking the developer to bring their own build tools.
  • Expose an elegant, small (and easy to learn!) API, designed around message passing, that makes writing game logic a breeze, and also provide an easy way to use composition and inheritance.
  • Rather than trying to minimize the amount of code that has to be writen by the developer, its top priority should be to maximize the flexibility of the engine.
  • Build the platform exclusively on top of web technologies so it can be easily ported to any platform and adapted to any workflow.

How to get started

Want to give Clockwork a test ride? Great! First you will need to get the tools and then you can follow a tutorial to get started!

Future work

These are the work items being considered for future releases:

How to contribute

Publish your own packages

If you write a package, you can publish it to the package repository!

Contribute to the platform

You are more than welcome to head to our Github page and start forking repos, opening issues and sending PRs.

In case you would like to get involved but don’t know where to start,here are some work items where help would be appreciated:

The future

Clockwork was originally born as a side project, with the only goal to provide a lightweight and versatile way to ease up the main pain points I found while doing HTML5 game development. It succeeded at that, and after seeing that it was also helpful to other people I decided to realease it. Where does it go from here?

My intention is to keep working on it, mainly improving the tooling and adding support for more rendering libraries (aka what you just read on the Future work section), and use it to keep making my own games.

However, I also hope that some of the people reading this post (that’s you!) decide to give it a try, some of them provide valuable feedback, and some of them even contribute to the project with their own ideas and code, so we can together keep empowering HTML5 gamedevs to make awesome projects!