Key Information

Register
Submit
The challenge is finished.

Challenge Overview

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 look at a couple of existing demos that were restricted due to limitations in pxCore and will expand pxCore to support better text drawing abilities to enable better demos for pixi.js

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/

The code for pxCore / pxscene is available in Github here:  https://github.com/johnrobinsn/pxCore

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.

Branch

For this challenge, we will target the "master" branch of pxCore and one of the most recent commits (anything after 0b2d52b48f668c79726d11b5d91c905ce484c2fc)

Graphics update

A previous challenge has updated pxCore to include graphics support (rectangle, polygon, rounded rect, etc...) . This challenge will port those changes over to a more recent "master" branch commit.  Note that recent changes have targeted multi-threading drawing, so we need to make sure we take that into consideration and ensure our implementation is solid and performs using all available cores.

Pxscene limitations

Previous pixi.js --> pxscene challenges have run into issues with text and this challenge will explore if we can expand pxCore to provide better rich text support.  The two demos are:

* basics/text.js
* demos/text.js

You should investigate extending pxCore to provide text capabilities for:

* Default font family names, like "sans-serif", "Arial", etc... similar to how HTML fonts are specified.  This would be in addition to what we have to do now, which is download fonts as TTF files from a remote server.  If fonts have to be packaged with pxCore, please choose fonts with liberal licenses.
* Bold
* Italics
* Stroke
* Gradient colour
* Shadow colour

Your code should extend both pxCore and the JS API for pxscene so it can be consumed by pixi.js.

Pxcore code:

Note that your pxCore changes should follow all code structure, naming, commenting, and code practices already seen in pxCore.  Your code should be indistinguishable from the existing pxCore code and should be flexible and well encapsulated.

Goal:

The goal of this challenge is to be able to do a new build of pxscene that can run on Mac or Linux that provides the necessary API to perfectly render the two text examples so they match what's seen in a browser:

* basics/text.js
* demos/text.js

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.  You should also provide a git patch against a recent commit hash of pxCore / master that implements the functionality needed above.

Existing code

The existing pixi.js code that targets pxscene 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.  Patch file against a recent commit of pxCore in Github, *including* updates to the graphics examples as well as the text updates (master branch)

2.  Any updates needed to the examples (basics/text.js and demos/text.js)
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.  Make sure to indicate commit hashes in your documentation that can be used to apply the patch files
5.  Deployment instructions for putting the examples on Heroku


Note - please submit a *single* patch file for pxCore that covers both the previous graphics work and the text changes.

Links

Pixi.js
Pxscene 
http://johnrobinsn.github.io/pxScene2d/docs/
 
 

 



Final Submission Guidelines

Please see above

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30056923