|Version 37 (modified by JuhaniAhman, 15 months ago) (diff)|
Name: Juhani Åhman
University(*): University of Helsinki
Major(*): Computer Science
Current Year and Expected Graduation date(*): fifth, 2013?
Degree(*) (e.g. BSc, PhD): MSc
Project Proposal Information
Project Title: PySoy: Improve Android and HTML5 Soy clients
Organization: Python Software Foundation
XMPP Auto-Away: Add hooks to update a user's presence to "Away" when SweetSoy? is running in the background and "Available" when in the foreground.
Android Alerts: Enable SweetSoy? to push notifications to Android such as showing a game running in the background or incoming chat messages.
Game Metadata: Write a C function which parses out the metadata from .sgk files including game name, author(s), genre, description, and server JID(s).
Game Icons: PySoy game links are received both from the web and xmpp game catelogs as .sgk files, which are .svg (Scaled Vector Graphics) with game metadata added. Because SVG is XML, the game metadata is ignored by standard SVG viewers allowing the files to be used verbatim as game icons. Android, however, does not support using SVG for icons. The good news is SweetSoy? already embeds Cairo, a popular SVG library which can be used to generate bitmap icons for Android in a variety of sizes. Write a function using Cairo to convert SVG icons to Android's format.
USB controller support: Detect USB gamepad/joystick and implement support for them for soy input controllers (soy.controllers.*). (Detecting partially done already)
Touch controls: Implement support for touch controls for soy input controllers (soy.controllers.*).
Touch control on-screen buttons: Proper touch control support also needs an easy way to draw on-screen buttons for the touch controls. Should be flexible enough to support all controller arrangments (any shape and size of buttons, analog sticks, etc).
Buddy List: A list displaying XMPP buddies and their statutes. GUI Partially done already, but it doesn't actually show any real information.
Settings Screen: (Partially done already)
SGK Browser Support: Add .sgk support to the Android web browser. An SVG thumbnail should shown in the plugin block and, when launched, run SweetSoy?.
Improve GUI: Game browser page's columns need to be improved.
Fix exiting: Quitting sweetsoy seems to be a bit bugged, it keeps running on the background even after exiting.
If there is time left, I will work on WebSoy? client too. Websoy is lesser priority.
XSLT for SGK to HTML5: Write an XSLT file which provide both the SVG (as a cover image) and game metadata to an HTML/5 block suitable for browsing game catalogs or previews. Clicking on the block should activate the WebSoy? plugin.
Plugin Settings: The settings dialog should integrate well with both Gecko (Firefox) and Webkit (Chrome, Safari) browsers.
GSoC work period length is about 13 weeks.
June 17: Start of GSoC
June 17-21 (week 1): Project setup, review documentation, confirm project timeline and basic structure.
June 24-28 (week 2): XMPP auto-away
July 1-5 (week 3): Android alerts
July 8-12 (weeks 4): Game metadata
July 15-19 (weeks 5): Game icons
July 22-26 (week 6): USB controllers
July 29 - August 2: Mid-term evaluation week
August 5-23 (weeks 7-9): Touch controls and on-screen overlay
August 26 - September 13 (weeks 10-12): Any remaining android tasks & Websoy tasks
September 16: GSoC ends (soft)
September 16-20 (week 13): Final week reserved cleanup and additional testing
September 23: GSoC ends (hard)
Links to patches/additional information
I've worked for PySoy in the last to GSoCs.
Other Schedule Informatione
I will be able to work on the project full-time through the summer without any major breaks.