How it all started?
pySioGame initially started as some form of a developer's sandbox - an attempt to learn and understand Object Oriented Programming in Python and since object oriented it means there had to be some objects. The easiest object to create seemed to be just an ordinary square, but why just one square? why not create more? - and so more of them were added to the virtual world... The newly created objects were not very useful by themselves - they needed a place to live on - and they landed on a rectangular board.
The board and squares - this started to look like a computer version of the battleships board game. But as with any objects they had to have some attributes like size and position, but they also had to have some methods - what could they do? move, maybe? And move method it was. This was the end of their life in text only program, they really needed to be displayed on the screen as something that looks like what they really are, rather than just some pretty random looking numbers.
Pygame appeared to be a perfect tool to do just that with all of its helpful GUI features. Since the objects were displayed on screen it would be nice to be able to interact with them - so their "move" method soon become useful in making them draggable, clickable, selectable and what not.
This is where the little squares started to show some potential - they appeared to resemble the little blocks with letters or images kids would use to learn while playing. This sparked the idea to create some educational activities initially just for one user - developer's kid (about 4 years old at the time) - to help him with the basics in somewhat interactive way.
The first activity was aiming to help with learning the alphabet followed by the ones with numbers and draggable apples created to teach some basics of counting - slightly resembling abacus, maybe. From this point more activities were added and the mission to squeeze the potential out of little blocks on a screen began.
Following the game release on SourceForge.net quite a few people joined the project helping with testing, bug fixing and translating so that it can reach more kids all over the world. All of their valuable input is greatly appreciated.
After all that time and thousands of lines of text typed the application ended up as a learning tool consisting of over one hundred activities for the little ones to play with and learn from.
Unfortunately the battleships game has never been completed (never really started properly) - because of change of flow at the early stage of development, however every movable block on screen is either a class called "Ship" or is built upon it.
Despite the fact that the application started as a programming sandbox and does lack high end finishing touches it can still be a useful educational tool.