Challenge Overview
Describe what you want to accomplish.
For the Hercules client, we are going to be doing some work that involves a couple of their drawing technologies, name "pxCore" and "pxScene". The links below offer a lot more details on these particular technologies. pxscene is a graphics drawing library that has Javascript hooks exposed thorugh Node.js and v8. This challenge will port over existing demos
Pxscene
Pxscene is a platform independent drawing platform that will be used on a wide variety of embedded devices for the Hercules client. You can find more information here, and you can download the app to be used for testing: http://www.pxscene.org/
Pixi.js
Pixi.js is a Javascript graphics library that has a lot of nice features and the ability to target either WebGL or Canvas2D. We've used it extensively for a project for the client here that may eventually be ported to work on pxscene.
Pxscene limitations
The main task will be injecting a 3rd drawing target into Pixi (in addition to WebGL / Canvas2D), but note that pxscene runs in V8, not a true browser, so there may be some additional compatibility issues
We've done a little investigation into what pxscene can do and what it can't do. One bit missing piece is the "document" and "window" APIs. Neither is used heavily by pixi, but we will need to have some way to tell Pixi that we are rendering to pxscene instead of a browser and have it use the proper APIs for bootstrapping the drawable view.
Some of the interaction code may need to be updated / changed as well to use the pxscene APIs.
Note that there may be technical limitations to implementing some of the requirements. Those can be discussed in the forum and we may limit scope accordingly.
Codebase
A previous codebase is available in Git already. This challenge will provide Git patch files for the pixi.js and examples repositories to implement the requirements below.
Requirements
For this challenge, we are going to target updates to Pixi.js to add additional examples from this site: http://pixijs.github.io/examples/
* Display / Z-order: http://pixijs.github.io/examples/#/display/zorder.js
* Layers / Lighting: http://pixijs.github.io/examples/#/layers/lighting.js
* Layers / Z-order: http://pixijs.github.io/examples/#/layers/zorder.js
* Spine / Dragon: http://pixijs.github.io/examples/#/spine/dragon.js
* Spine / Goblin: http://pixijs.github.io/examples/#/spine/goblins.js
* Spine / Pixie: http://pixijs.github.io/examples/#/spine/pixie.js
* Spine / Walking Animation: http://pixijs.github.io/examples/#/spine/spineboy.js
Each individual demo can be a separate pxscene JS file that is loaded in the pxscene app for testing.
Heroku hosting
I'd like to be able to host the examples on Heroku for easy publishing to the customer for testing. Please provide a basic Heroku wrapper around the code that we can deploy to load examples over HTTP instead of file:// links.
The current codebase in Git deploys to two separate Heroku instances right now, so I'd like to keep that same setup working as it is now.
Existing code
The existing code can be found publicly in Github:
* https://github.com/topcoderinc/pxPixi
* https://github.com/topcoderinc/pxPixi-examples
Submission
For this challenge, please submit:
1. Patch files against the pxPixi and pxPixi-examples code in Github
2. A set of demo JS files that match the demos on the pixijs Github site that can be run in the pxscene app
3. A video showing the examples being tested in pxscene
4. A README documenting any setup that needs to be done, and any limitations that your ran into while investigating.
5. Deployment instructions for putting the examples on Heroku
Links
* Pixi.js
* Pxscene
* http://johnrobinsn.github.io/pxScene2d/docs/