Many students have been asking for sample proposals for reference so that they can understand how to write a good one. I'm sharing my GSoC 2010 proposal which was accepted for Gluon. Hope it helps
Proposal for Google Summer of Code 2010
Gluon Player Plasmoid
Name: Shantanu Tushar
Email Address:
Freenode IRC Nick Shaan7
IM Service and Username:
Location (City, Country and/or Time Zone): Bangalore, India, UTC +0530
Proposal Title: Gluon Player Plasmoid for the Plasma shell
Motivation for Proposal / Goal:
As the Gluon wiki describes it “Gluon is a cross-platform free and open source 2D game engine from KDE. It aims to make life easier for game developers by providing a simple but powerful API to handle 2D objects, sounds and inputs.”, Gluon will be a
revolution in the way we've seen 2D game creation. People will be able to create new games in a more flexible manner, while the Gluon web content system will allow them to earn rewards.
The Gluon Plasma applet is another step in this direction, it allows users to play games published using Gluon, straight on their desktops! This will be a very rewarding and fun experience for gamers and casual users alike. As there will be no need for a dedicated window for the game, it'll blend seamlessly with the interface they've been familiar with since KDE 4.
Use Cases:
- Mary is a professional working in some industry and does most of her planning and work on the computer. In between, she takes small breaks to play the Gluon games on her desktop. She can pause the game and instantly return to work, resuming the game in the next break.
- Jim is a game developer, he develops games using the Gluon Creator and publishes to the Gluon game distribution online service. People play the game on the Plasma desktop and if they like the game they can instantly donate. Jim is happy and feels motivated to create more engaging games.
- City's Public School use the KDE Educational Software to teach young children and they have small Gluon games for the children as a reward for completing homework. Children have fun and are excited about learning more.
Expected Result-
When the Plasmoid is ready, a typical workflow can be the user Downloading a new game from the online service, in the process she can see the games ranked by votes and similar categories (similar to the download new Plasma Widgets). After deciding what game she's interested in, she can instantly download the game, and start playing.
After getting some experience, she might be able to make into the top scorers for the game, and can add her entry to the online high score list. Even before that, she can view the list to see how much is to be scored to get to the top.
The user should also be able to add comments and feedback about the game which the game author can then use to improve the game. Also, if she liked a game very much, she will be able to donate to the game author as a vote of thanks.
A sketch of the expected workflow can be found at http://www.flickr.com/photos/8748559@N04/4481943338/sizes/l/
Implementation Details:
The Game Display Area-
The area where the game's output is to be shown will be implemented using a GluonGraphics::GLWidget in the applet. This GluonGraphics::GLWidget will contain the output from the Gluon game engine to display the game content.
Deliverables – A area in the Plasmoid where the game is displayed.
Gluon Game Options-
Gluon game options will be implemented inside overlay menus. The overlay is already in action in the Plasma Add-On Creator – Plasmate where the previewer menus are displayed as overlays. This has an advantage of using space economically, and giving a nice overall experience.
The options that are intended to be implemented are-
Get More Games, Play, Read Description, High Scores, Achievements, Rate and Comment, Donate
Deliverables- UI elements for the options mentioned above.
Dataengines-
A very nice feature of Plasma is the concept of Dataengines, this helps keep the data provider separate from the application logic, or rather the view logic, in this case.
Dataengines will be implemented for fetching the following data about a particular game-
High Scores, Achievements, Ratings and Comments
Deliverables- Working Dataengines for the data mentioned above, Integration with the UI.
Fetch and Play New Games-
The Plasmoid will use Open Collaboration Services to fetch new games from the Gluon game server. The implementation will use the KDE library module libattica. This will be designed to be similar and consistent with the rest of KDE, say for example the Download New Plasma Widgets feature.
Deliverables- Working UI option for Fetching New Games and saving them locally for playing.
Tentative Timeline:
April 26 – May 24
Study thoroughly the Gluon Engine which will be used for the Player. Discuss with developers on what can be shared with the Gluon player application and the maemo version.
May 25 – June 13
Implement the Plama applet with the GluonGraphics::GLWidget so that it can display a loaded game correctly. Check if it works with the examples.
June 14 – July 18
Implement Dataengines as described in the implementation details. Implement Gluon player game options like High Scores, Comments, Donate to author etc, using the Dataengines to provide the data.
July 18 – August 8
Implement the Fetch New Games functionality through Open Collaboration Services using a familiar interface consistent with the rest of Plasma.
August 9 – August 20 (pencils down)
Test the Plasmoid to work with sample games and online services. Write documentation
Do you have other obligations from late May to early August (school, work, etc.)?
I will be having university exams in the end of June, but I'm confident that I will be able to manage my time well.
About Me:
I am a student pursuing an undergraduate degree course with Computer Science and Engineering as major in B.M.S College of Engineering, Bangalore, India. Apart from having lots of interest in computing in general, I have been a free software enthusiast from past 3 years and a member of our college's LUG and creating awareness in and around our college about Free and Open Source Software.
I've been using KDE (SC) since the time I started to use GNU/Linux (KDE 4.1 then) and have loved it from the beginning, which has been mostly due to the loving community. I've been contributing to KDE software for more than a year with bug fixes and feature requests. My favourite area of contribution has been Plasma, and so I'm comfortable with the Plasma API and KDE API in general.
On the non-code part, I've conducted various KDE/Qt workshops in my own college, and other colleges with the help of the KDE community. I'm thankful to the people for giving me the opportunity to co-ordinate the KDE Project of The Day at FOSS.IN 2009. The event was very rewarding as people really appreciated the beauty of the software and the vibrant community.
I blog my activities and work at my website http://www.shantanutushar.com and have CIA.vc stats at http://cia.vc/stats/author/shantanu.
Lastly, I assure dedication of at least 40 hours per week to the work and that I do not have any other obligations during the period of the program, with the obvious exception of regular academics. Also, if any part of the proposal is not clear, I'll be very happy to clarify.