[Tux4kids-tuxtype-dev] [GSoC] Good day to all. Here are my ideas for improvement.

Михаил Минков Mihail.Minkov.BG at gmail.com
Tue Mar 24 10:34:51 UTC 2009


Hello, everyone!
My name is Mihail and I'm a second year student in computer science.
For Google's Summer of Code, I'd like to work on Tux4Kids.

I like these games and I actually play them occasionaly, despite being 20
years old. I like to check up on my typing and arithmetic speeds every now
and then. And TuxPaint is an actually real-world useful program. Lacking
only a true load functionality :)

Here is my (verbose) Unofficial proposal for a gsoc project. It includes
mostly TuxType and TuxMath.
* What is the first thing that will make an impression when a child uses
Tux4Kids?
Yes, the graphics. While the game does serve its purpose, it does not do so
with maximal grace. I'd like to give TuxMath/TuxType a new look. SVG sounds
nice, as a start. I'd spend some time implementing that.
* Also, an improvement is needed for the images themselves. The very first
thing to do is make the graphics less distracting. If the "letters" are at
all to be animated, this should be done most sparingly. As an example, I'd
give Typing Shark by Pop Cap games. TyxType It's just way too distracting
with the constantly changing fire/fishes and I noticed a wide gap between my
performance in Typing Shark and here.
* Then, some usability changes - if a user starts typing a word, he(pardon
my political incorrectness) probably wants to finish typing said word. With
letters lighting up all over the screen, I quickly grow confused and
frustrated. When a word is started, only letters from that word should light
up. Maybe a key to drop the current word and start a new one should be
added, too? Also, the game should look the same, no matter what resolution
it's played in. But if SVG is implemented, this will be trivial.
* Entirely new images will be needed at this point. The current ones are
just too clipart-sy(at least for the space game - otherwise, I like the
fish-eating penguin). I have some friends with drawing talent. Also, perhaps
a DeviantArt contest could provide what is needed? A contest fueled by some
of the money from the GSoC stipend? For that to be able to happen. one more
thing will be needed:
* Animation and fluidity. Not a very hard thing to do, but still needs to be
done. I'm talking about the space game. I'd like Tux to be animated. Guis
could be animated, too. Many modern games do wonders with this part, it's a
shame to only have such a basic setup here. Also, in all of the games, the
video is kind of choppy. On a 3 GHz machine. I'd like to try and fix it, so
that it is fluid. One part of this would be to, perhaps, move away from
integer arithmetic? With floating-point variables, it would be much easier
to have, say, different speeds of falling for different words? To create a
more dynamic feeling? Should I find myself having nothing else to do, a lot
of improvements could be made in this area.


So yeah, better animation, better gui, and more engaging gameplay are the
improvements I'd like to implement.


Essentially, I want to take all the projects on. I understand this will not
be realistically possible for one summer, so my plan is to do the most
important ideas in gsoc. Should my university courses and physical fatigue
don't stop me, I'll most probably continue to write some patches after that,
too.


Of course, my work will include some refactoring of the code. Don't worry,
I'm not going to submit "The continued development and improvement of
Tux4Kids" as my project Idea. These are only small fixes.
Now, I have so far not seen any specific guidelines for code style on the
project, so I'll just say the things which stand out for me:

* I like the code quality. Most of the C code I've seen comes from
programming competitions and there it's all "Code and forget".
* But it still leaves room for improvement. The main problem I have with it
now is that functions are separated in a way I don't like. For instance -
the diferent parts of drawing a shape(TuxPaint) should be either in the same
place within the source, or - even better - in a file of their own. It was
kind of a pain just finding the code for shape drawing. Which brings me to:
* 400 KB Monstrocity has got to go! I'm talking about TuxPaint - practically
all the code for it is in one file! The program is great, but this really is
kind of a barrier for a would-be developer, I think. It needs to be split
into smaller parts. So far, I've only had a deeper look at TuxPaint code,
I'll provide details about the other programs when I get to read them
thoroughly.
* Is the original 90MHz target processor still valid? A bit of speed could
be sacrificed for code clarity, I think. Maybe even a C++/Polymorphism
approach, instead of C/enums? Or am I crossing the line with this one?
* Documentation. This goes without saying, but I'll say it anyway. The code
I write will be documented. The code I get to read - also.
* The idea of having an "administrator" gui could very well fit in here, as
well as TuxPaint keyboard shortcuts. Those projects don't seem too time
intensive, so I think I'll be able to make significant progress(or even
complete) one of them as well as the main task.
* Also, I'd like to make the plus key actually work in TuxMath. And tweak
the minus so that pressing it twice removes the negativity of the number. I
just messed up too many games to let this one go. It's already done on my
home install, by the way :)


My name is Mihail Minkov. I am a second Year student(Bsc in computer
science).
To Tux4kids I can bring a solid dose of inspiration and an OCD to match.
I have eight months of experience in Python development and about four years
C/C++ in programming competitions. Still a lot to learn, but I pretty much
know the tools needed for software development.
At my university I give practical C++ lessons to first-year students.
I love programming, I also love playing games. I try to use and write only
free software. I have made some very simple games on my own, including
Conway's Game of life and pong/breakout style games.
C code does not scare me. In fact, that's one of the reasons I'm choosing
Tux4Kids.


Attached is a tarball of a diff of a patch, as requested. Honestly, I have
used version control only as a developer so far(just "svn ci -m"), but I
still hope this is what was asked for in the gsoc page :) It fixes a couple
of bugs with shape drawing in TuxPaint.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.alioth.debian.org/pipermail/tux4kids-tuxtype-dev/attachments/20090324/e6571436/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: improved_shape_drawing.tar.gz
Type: application/x-gzip
Size: 982 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/tux4kids-tuxtype-dev/attachments/20090324/e6571436/attachment-0001.bin 


More information about the Tux4kids-tuxtype-dev mailing list