eduActiv8 - 4.19.02
A suite of educational activities for 3 - 10 years old kids build with Python & Pygame.
The application started as some sort of a learning sandbox in my early days of stepping into the python programming world - but later was improved and transformed into an open-source educational application. While it is not a programming piece of art (since when I started I was a complete python beginner), children under 10 might find it useful - and hopefully won't complain about badly written code :)
The application includes some basic activities in maths, ABC, reading, memory, time, colors, etc. More activities are being developed but graphic design is not really a skill I have which quite significantly limits the possibilities. Most of the nice graphics used in the game were created by talented people who contributed their works to openclipart.org, art4apps.org and other sites - thanks to all of them.
The application obviously runs from source but has also been "compiled" to a range of operating systems, such as Windows, macOS, Android and many Linux distributions.
Requirements (to run from source):
- python 2.7+
- espeak (optional but very useful)
Recently tested with pygame2 and seems to run without issues.
The app supports multiple languages - currently available ones are: Arabic, Bulgarian, Catalan, Dutch, English, Finnish, French, German, Greek, Hebrew, Italian, Lakota, Polish, Portuguese, Russian, Serbian, Spanish, Ukrainian (some of the newest changes may not be fully translated).
Thanks to all who submitted and maintain the translations. Please get in touch if you would like to help to translate this application to any other language or to improve (make more fun) any of the current translations. The English version would definitely benefit from some beautification by a native speaker, anyone interested?
The source and compiled packages for Windows, MacOS and Android can be downloaded from sourceforge.net:
The packages for various Linux distributions are available from:
- the menu has been replaced with a full-screen activity selection screen
- this allows displaying all activity icons without scrolling
- more space for activities since the menu does not take up any screen space while in activity mode
- the icons on new menu screen now display progress for each challenge activity
- the category and activity icons have been redesigned and scaled up
- categories rearranged into sub-groups to display fewer choices at a time.
Pygame.org account Comments
bob 2012-04-13 19:11:31
Hi Eric83pl, I like what you make. I just started learning phyton.
are you still building other games. since I want to build simular educational games too. if you are ok helping out sometimes
eric83pl 2012-04-14 09:00:33
Hi Bob, thanks. I consider myself a beginner too, this game is just a few images put on a squares for kids to drag around. but if I can I'll try to help. Yes, I am planning to add more games, and improve the ones I have, but now I have rebuilt the whole thing slightly to enable translations (where possible) - still needs some time to make it work, and help from others - I know only 2 languages, and none of them well enough :P
Anyway good luck with your learning and coding.
eric83pl 2012-04-15 09:30:44
I am working on internationalization and have a little problem.
How do you deal with blitting special uppercase characters, such as French: 'ÀÂÉÈÊËÎÏÔÙÛÜŸ'?
For some reason the diacritics are being cropped to approx 1px.
sipiatti 2012-07-10 09:01:50
Awesome. Congratulations and respect. You have done a fantastic work.
Mich Nannings 2012-12-01 11:02:31
I watched the video and it looks very nice and complete. How much time did you spend on this project?
Ireneusz Imiolek 2012-12-01 15:10:56
Thanks, well its a bit more advanced now than what's on the video. It's quite hard to say how long it took me. I started the game with no knowledge of python whatsoever, read some books along the way. I started learning python in December last year, and by April (after 3 - 4 months) it looked like the version on the video. After that I added more games, changed some games, added support for translations, etc. but I worked on it on the "on and off" basis so pretty hard to measure, kept improving and adding stuff when I had any ideas for new games and time to implement them :) Still nowhere near where I'd see this project, but recently I had far less time to spend on it. Anyway, sometime this month it will be its 1st birthday :P
toby 2016-09-21 14:58:24
This is genius ! i will love to fork your project, add more games and stuffs
Ireneusz Imiolek 2016-09-21 16:48:27
Thanks, if you have spare time you are more than welcome to do so. It may take you a while to get how the thing is working though, this was my first project of this scale and I did not follow the best practices for both coding and commenting - comments are rather scarce. Please keep me updated if you get anything done, or even better - you could fork it on GitHub, so your changes could be merged together:
toby 2016-09-22 08:19:26
i've been reading the source code for a week now, and man there's a lot of classes, im just getting my feet on OOP, would really love if u cld provide some sort of short documentation of ur classes, and the project flow, email@example.com. Thanks.!
Ireneusz Imiolek 2016-09-22 10:36:57
I'll try to type a short info / project flow and will email it to you. It may take a while though, I'm a bit pushed for time.
toby 2016-09-22 10:53:27
okay, in the meantime i'll keep digging in and see what i can find. Thanks in advance !
Ireneusz Imiolek 2016-09-22 11:29:48
Definitely have a look at classes/board.py - this is the file that contains all visible activity objects including the board the games take place on - so you may either use one of them in your game or create you own objects there, if they don't meet your requirements. When you create new game you need to add it in menu.py. The individual logic for all games is kept in game_boards folder, but they all inherit from BoardGame in /classes/game_driver.py, so if you were to create a new game you would add game089.py, in __init__.py change the only line of code and increase the number by one. Have a look how strings are managed in other games - they need to be added to: /i18n/custom/default.py so they can later be included in translation files. The other files are not so important at the moment, they just set up the layout, connections to db, etc., unless you want to change the whole thing completely you do not really need to change them, but then if you wanted to change the whole thing you may as well start a new project and do it properly. Mainly have a look at other game???.py files and see how they are done and look for repeating lines that need to be included in every file for them to update the game, etc.
toby 2016-09-22 12:53:08
i plan to change the interface [colors (i av a thing for blue and purple :D), and stuff], add some games and some grading system of some sort, it's like creating a new project from an already existing great project. i guess i'll be inheriting a lot of classes in the classes dir, and, hopefully this will deepen my knowledge in OOP, thanks so much, really appreciate, tho i look forward to the short docs. Thanks once again.