[Kde-games-devel] GSoC Proposal - First Draft

Roney Gomes roney477 at gmail.com
Fri Mar 30 20:59:16 UTC 2012


Here follows the first draft of my GSoC proposal, I'd really appreciate 
your feedback.

Porting Games to a More Modern Graphics Framework

Introduction:

As described in the ideas page, when Qt changed from version 3 to 4, 
there was a significant lack of performance regarding QGraphicsView, 
which forced the KDE developers to build their own graphics framework.

Now, that QGraphicsView has matured, the return to the framework seems 
to be feasible. That's a good practice, since it avoids the developers 
to constantly reinvent the wheel, primarily focusing on the development 
of their applications rather than in the tools necessary to create them.


Goals:

1. To port as much as possible games to the new framework. The first six 
ones I have in mind are:

a. KBattleship
b. KBounce
c. Kollision*
d. KMahjongg
e. KBreakout
f. KGoldRunner

(*) In the techbase it's said that Kollision was already ported. 
However, while I was porting it to KgSound I could see some bugs to fix 
and a bunch of commented lines. Thus, regarding that I like the game and 
the work is still unfinished, found a good a idea to work on it.

2. Provide clear and well commented code, favoring some possible future 
maintenance.

3. Improve game performance.

Approach:

I am aware of my lack of experience regarding the development of big 
applications, thus, I know that I can't begin all the porting process by 
directly changing the code. My first step shall be to read the 
documentation, study the code of the first game to be ported and, in 
case of doubts, promptly ask the mentor or the mailing list.

Also, I believe that after overcome the initial barrier of familiarity, 
things will rapidly flow. This happened when I worked with KgSound, 
where after the first game ported I was able to in just in a few hours 
port other two, as you can see in the submissions I've sent to the 
review board.

I intend to begin the changes in the classes that directly instantiate 
KGameCanvas and then follow the chain of interactions that such classes 
have with other classes used by the game. Basically, the same approach I 
used with KgSound.


Timeline:

23 April: If accepted, immediately begin the reading of the 
documentation and the study of the first game to port. I've KBounce in 
mind, since I'm already familiar with it.

23 May: KBounce will be ported and sent to revision. The next days will 
be dedicated to correct the issues pointed by the reviewers.

23 June: KBattleship will be ported and sent to revision. The next days 
will be dedicated to correct the issues pointed by the reviewers.

26 June: End of classes at my university. I'll have July entirely free 
to dedicate myself to the project.

7 July: Kollision will be ported and sent to revision. The next days 
will be dedicated to correct the issues pointed by the reviewers.

15 July: KMahjongg will be ported and sent to revision. The next days 
will be dedicated to correct the issues pointed by the reviewers.

30 July: KBreakout will be ported and sent to revision. The next days 
will be dedicated to correct the issues pointed by the reviewers.

15 August: KGoldRunner will be ported and sent to revision. The next 
days will be dedicated to correct the issues pointed by the reviewers.

20 August: Pencils down date.

It's important to notice that I'm treating it as hard work, so, I was 
generous while distributing the days for each task. Nevertheless, things 
can be easier than I think, which would drastically reduce the time 
employed in each game.


About me:

My name is Roney Do Nascimento Gomes, I am from Fortaleza, Brazil, being 
the local timezone UTC -3.

Currently, I'm coursing the second year of computer science at the 
Federal University of Ceará. It's a very academic course that try to 
assign some meaning to the word science from "Computer Science".

I've some knowledge in discrete mathematics (complexity, computability, 
graphs etc) and programming using C and C++ (recently I started to do 
some homework using Java), I'm not the best of the class, but I really 
enjoy what I study.

I've bought my first computer just when I was 15, and since there I've 
been learning C and C++ by myself (I'm 20 years old now). I was always 
fascinated about creating things and problem solving and became really 
passionate about programming after reading the How To Become a Hacker, 
from Eric Raymond.

To show my programming skills, I've ported Kapman, Kollision and KBounce 
to the KgSound audio framework, being the last two waiting for revision 
at the review board.

I can be contacted through the following addresses:

Email/IM Service: roney477 at gmail.com
Freenode IRC: roney


-- 
Roney


More information about the kde-games-devel mailing list