The first project to be released in the tcg.hackspace is proj.phil – an investigation into rapid iteration of a C++ code base published straight to the web.
Recent developments, however, have allowed developers to get close to achieving the best of both worlds. With the introduction of asm.js, client side code has the ability to achieve near native performance within the browser all be it with an additional cost to the ease of implementation. (Visit arewefastyet.com for a breakdown of the relative performance between native C++ and asm.js) Meanwhile, the LLVM toolchain has provided the ability for ISO standard C++ (amongst other languages) to be compiled into an intermediate language (IL) without the need for extensions. In addition, LLVM provides an extensible framework for the development of other tools. One such tool is the Emscripten compiler frontend, which forms the final piece of the puzzle, by compiling LLVM bitcode into asm.js.
By embracing LLVM and Emscripten, along with tools such as Gulp and Node.js, it is possible to revolutionise the traditional, staid C++ workflow into a rapid, iterative development model much more familiar to web developers. Such a workflow may seem a pipe dream but the intersection of technologies is now at a point of maturity where it is being embraced by both Unity and Unreal for their web publishing models. proj.phil provides the first simple building block for achieving such a workflow. We hope you find it useful.