Hello, everyone!<br>My name is Mihail and I'm a second year student in computer science.<br>For Google's Summer of Code, I'd like to work on Tux4Kids.<br>
<br>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 :)<br>
<br>Here is my (verbose) Unofficial proposal for a gsoc project. It includes mostly TuxType and TuxMath.<br>* What is the first thing that will make an impression when a child uses Tux4Kids?<br>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.<br>
* 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.<br>
* 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.<br>
* 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:<br>
* 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.<br>
<br><br>So yeah, better animation, better gui, and more engaging gameplay are the improvements I'd like to implement.<br><br><br>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.<br>
<br><br>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.<br>
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:<br><br>* 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".<br>
* 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:<br>
* 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.<br>
* 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?<br>
* 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.<br>* 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.<br>* 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 :)<br>
<br><br>My name is Mihail Minkov. I am a second Year student(Bsc in computer science).<br>To Tux4kids I can bring a solid dose of inspiration and an OCD to match.<br>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.<br>
At my university I give practical C++ lessons to first-year students.<br>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.<br>
C code does not scare me. In fact, that's one of the reasons I'm choosing Tux4Kids.<br><br><br>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.<br>