Code Monkey home page Code Monkey logo

tux4me's Introduction

Tux4Kids - Open source education software for children

About Tux4Kids

Tux4Kids is an international group of volunteers developing high-quality software for kids, with the goal of combining fun and learning into an irresistable package.

Our software is free: you can download it for use at home or onto hundreds of computers in a school. We support all major platforms, including Windows, Macintosh, and Linux/Unix. Our programs are used by people around the globe, and they have been translated into dozens of different languages. As open-source software, these programs can be freely extended or customized, and they are supported by active communities of volunteer developers.

Whether you're a parent, a teacher, or a kid, give Tux4Kids software a try!

Main Projects

Tux Paint

Tux Paint is a drawing program for children as young as 3 years old, containing Tux the Linux penguin, many goofy sound effects, and a large assortment of prepackaged imagery and special effect tools.

Tux, of Math Command

Tux, of Math Command lets kids hone their arithmetic skills while they defend penguins from incoming comets, or offers them a chance to explore the asteroid belt with only their factoring abilities to bring them through safely!

Tux Typing

In Tux Typing, Tux the penguin is hungry, and loves to eat fish. But Tux can only catch the fish if you type the right letters in time! Can you help Tux?

Other projects

There are also a number of in-progress projects that can be found on our GitHub project page.

tux4me's People

Contributors

arun1128 avatar deepaksharm avatar karthikeyan5 avatar menakamohan avatar smarshy avatar vigneshsekar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tux4me's Issues

New idea: Rock paper scissor

With reference to the issue #40

Category: Speed

Purpose: When a very habitual action is done in a different way, we tend to exercise our brain as mentioned in the research theories. Rock paper scissor is a well-known game. We play them differently here.

Game: When the symbol appears in brown, the user must lose against the symbol. When it is in blue, he/she must win against the symbol. The faster the user reacts, the higher he/she scores.
With increasing complexity we may also add in Lizard and Spock to the traditional RPS game.

To visualize, the game may look something like the one mentioned below

rock paper scissor 1
rock paper scissor 2
rock paper scissor 3

New idea: Color ladder

With reference to the issue #40

Category: memory

Purpose: Adding to the memory elements present in the game, the higher levels will involve Stroop effect that will enhance the neural plasticity of the kid’s brain.

Game: Few colors will be displayed in boxes. Later the kids will be asked to identify the box in which the particular color was present in a sequence.

To visualize, the game may look something like the one mentioned below

color ladder 1
color ladder 2
color ladder 3

New idea: Get the count

With reference to the issue #40

Category: Speed

Purpose: The game will enhance the math skills of the kids by letting them to add faster. They do it by simply dragging upon the numbers.

Game: Drag upon the numbers to get the displayed count. The faster the reaction, the higher the score.

To visualize, the game may look something like the one mentioned below

get the count 1
get the count 2

Adding time limit

Right now, a finish button will appear after 1 minute. But we need to set a time limit for few games for which the complexity does not increase will levels.

New idea: Odd one out

With reference to the issue #40

Category: Attention

Purpose: (Directly inspired from cambridge brain sciences) The Odd One Out task was developed by Dr Hampshire as a modern variant on classical tests of fluid intelligence such as Raven's Progressive Matrices and the Cattell's Culture Fair Intelligence Test.

Game: The user must work out which of nine patterns is the odd one out, solving as many problems as possible.

To visualize, the game may look something like the one mentioned below

odd one out 1
odd one out 2

New idea: Path to safety

With reference to the issue #40

Category: memory

Purpose: According to one very influential cognitive model of working memory (Badderly & Hitch, 1974) visuospatial working memory depends on a specialized sub-component of the working memory system. The task exercises your visuospatial working memory; the component of working memory that allows you to temporarily hold and manipulate information about places.

Game: A potential threat in the path will be displayed and the user is supposed to remember the spots. Later they will guide the Tux to reach its home using a safer path.

To visualize, the game may look something like the one mentioned below

path to saftey 1
path to saftey 2
path to saftey 3

Use of Iframe to load the games

As per my conversation with @Vigneshsekar and my understanding of the code-base i am adding this issue here.

We can see iframe tag being used to load the games. And with HTML imports of polymer not being vulcanized, this is making too many requests. @Vigneshsekar told me that this count was about 110+ and assured to vulcanize it during/before the GSoC period. Its fine.

When i recommended the use of Iron-Ajax element to load the games, he gave me the earlier version of the code where he tried it but had a weird error. We need to restructure the code to use Ajax. Interested people can try and post the results here while i am also trying to get it resolved soon.

Initilaze the game for replay

HighOrLow game and FlashBack game has a bug. When the game ends and the user clicks the replay button, we need to initialize the game. Play the game and you will get to know the error.

Link keyboard controls

As the web-app may be accessed most of time using a laptop or desktop, integrating keyboard controls will be more helpful.

A dashboard for monitoring user's progress.

A dashboard feature needs to be implemented. The data about the user's performance depending on his score, the time has takes to complete a level should be stored and logged into a dashboard. For the web app deployed on Azure Azure SQL database could be used or HTML Web storage to store the data locally within the user's browser. In case of the hybrid app interfacing it with IndexedDB or MongoDB would be a good idea.

For developers willing to contribute/add new levels.

To add to #40 that @Vigneshsekar has raised.

Ideas posted by someone who himself wishes to work on that idea/ developers who want to contribute to Tux4ME should follow a few guidelines while developing their games and this is based on the prior discussions on developers who have contributed games previously as well as a few issues that we would want to address, specifically referring to #1 #25 #2 #37 #39 #28 and #30.

For Developers
We would want that every developer succeeds in getting their code committed to the repo as well as gets its featured on the Tux4ME website and their names being added to the contributor's list and why not when you have developed it after so much of hard work, everyone deserves the appreciation. But the code has to maintain certain guidelines or rather say address a few issues that we are working upon :

  1. We are trying to implement the use of game.paused , an inbuilt function in phaser to pause the game instead of the logic that we currently use. This will help us in our quest to make the code more modular, removing unnecessary logic and in making the code simpler and efficient. So we would want you to use game.paused in your code instead of the pauseState variable that is currently used. And that is bound to change soon. You may want to see previous work done by other developers and discussion following it. #11 #12 #38 #1.
  2. The complexity of the games should increase with the levels and shouldn't be repetition of the same things again and again. Also one way of increasing the complexity could be to reduce the time limit in which the kid is supposed to do a certain task. This would help in increasing the interest of the kids towards the games and would also be a quick drilling exercise for them. We would want this to be implemented in any further games. For a read - #2 #25.
  3. There are a few common mistakes while making the games. This is being referred to the mistake of creating text objects again and again and this often doesn't show up because an already created text object is overlay-ed by a button and then again a text object over it. And in cases they are visible too. You may want to be careful with this, we don't want overlapping texts or too many objects being created unnecessarily. For a read - #28 #38 (changes for motion commotion/migrating flocks).
  4. We want to make the code more modular and parts of the code should be loosely coupled. We want functional cohesion.Don't try to implement all the logic into a single function. Break it into parts so that a new developer can understand it very easily. Also, so that for the developers maintaining the code they would not have to go through all of it again to make minor modifications. For e,g say a function that implement a replay logic should not call a function that implements a pause logic. We are working to change this and we would want this to be addressed in any future contributions.A modular code would also help in the idea of dashboard implementation.
    For a read - #37 #38.#30
  5. We want game states to be implemented. Though this not as necessary, it would be good if this can be implemented in any future games. #39
  6. We might be working on an idea of a blog in the future.Keep a documentation or say a tutorial sort of a thing involving what you are developing, how you built that game, what tools you used etc. Writing such a thing while developing a game makes the writing process a little more easier than if you do it after you have developed the game. Keep that with you, we may need that if the idea of a Tux4Kids blog for kids is implemented.

These are a few suggestions from my side based on prior discussion on the repo with @Vigneshsekar that I felt might be helpful to any developer who wishes to contribute. Anyone who wishes to add something to this, modify something or wants me to take something off or report any discrepancies with what I have written are welcomed with their suggestions. Also some of them are ideas that still needs the approval of the community.

Custom Elements for Games

In favor of uniformity and modularity I believe the individual games should be wrapped up inside custom elements. We can also develop a scaffolding based polymer seed element yeoman generator, which would make it easier for new developers to develop games to enhance tux4me and also prevent chances of any leaking code.

New idea: Driving gear

With reference to the issue #40

Category: Reasoning

Purpose: Having a proper reasoning capability to see and predict the outcomes becomes the necessary cognitive ability to survive in this world.

Game: When a particular gear rotates in any particular direction, predict the direction of rotation of the mentioned gear. Also determine where in the world the user is and display the option. (CounterClockwise / AntiClockwise)

To visualize, the game may look something like the one mentioned below

driving gear 1
driving gear 2

Attention to contributors willing to submit new game ideas

As you must be knowing, Tux Mind Exercise includes series of simple games that enhances mental ability of kids.

We are always open to any new game ideas that are coming in. We generally follow the below guidelines while choosing a new game.

  1. "Randomness" availability in each game enhancing neural plasticity. [ No repetitive play. we will be completely dependent on random() function. ]
  2. Games follow the concept of cognitive sciences theory - "Cambridge brain sciences" developed at Medical research council (MRC), Cambridge, UK.
  3. Games involving violence (Shooting or attacking) are ignored as these games are primarily intended for Kids.
  4. Easy to play and understand the complexity by all age.

We also expect any new game coming in to suit all the screen sizes to provide a better experience.

Any new game idea can be posted as an issue and will attract suggestions and comments from anyone interested in this project. Kindly do follow the below template to post any new idea.


With reference to the issue (add this issue number)

Category: ** Memory/Attention/Speed/Flexibility/Reasoning **

Purpose: [Explain the purpose of your game. In which category that may fall]

Game: [Explain the game very briefly]

You can also show some visuals of your idea (optional)


New idea: Hexa Chain

With reference to the issue #40

Category: Attention

Purpose: The cognitive processes underlying these skills are surprisingly complex; first you must mentally create representations of the desired outcome. (Not getting distracted with the fun elements)

Game: Drag through the specific colored longest hexa chain.

To visualize, the game may look something like the one mentioned below

hexa chain 1
hexa chain 2

Bug with current replay logic implementation.

The text field where the pause state is being displayed either needs to be destroyed and a new text field object needs to be created or the text field object should be assigned an empty string and no new text object should be created. The later is a better implementation but this hasn't been properly implemented. This needs to be fixed.
screenshot 64
screenshot 65
screenshot 66
screenshot 67

Increase complexity

As the level goes up, the complexity of few games remains the same. Why don't we make some simple change to increase the complexity of the game with levels ?

A story mode for Tux4ME

Often, when I introduce kids to educational games, they always have the complaint that these type of games are not as interesting as other fun games that they play and a result kids play these games for twice or thrice and after that there is nothing in the game that can bind the kids towards it. Kids of the age group that we are targeting would not be that intelligent to take these games by themselves to increase their mathematical skills and moreover forcing the game upon the kids by the parents would also not be a very good idea. So we need to develop these games in a way such that the educational part looks like a seamless part of the game and not something which is deliberately inserted and should be appealing to the kids. The game should have a story and an interesting gameplay.

So we should try to implement a story mode which I feel is a very awesome way to put our games in front the kids and keep the other games in a main category which I would prefer to call Infinite Drill.

Here's a very basic demo of an implementation of an example story mode. Select Level 3 from the levels menu and you would be directed to the story mode game.

Presently the sprite animations and collision detection is not very proper as I am using Arcade physics system and I would be fixing them using the Ninja Physics system. Also this has been tested on Chrome/Safari/Edge. Firefox might have some issues running it and that has to be fixed. Adding a touch interface and making it workable on Android devices is also something that needs to be worked upon. It's just a demo of the idea and not a complete workable game

Link to the demo -> http://goo.gl/TzuEky

screenshot 171
screenshot 172
screenshot 173
screenshot 174
screenshot 175
screenshot 176
screenshot 177
screenshot 178
screenshot 179
screenshot 180

New idea: Reflecting light

With reference to the issue #40

Category: memory

Purpose: Based on a very influential cognitive model of working memory (Badderly & Hitch, 1974) visuospatial working memory depends on a specialized sub-component of the working memory system. The task exercises your visuospatial working memory; the component of working memory that allows you to temporarily hold and manipulate information about places.

Game: The kids will be asked to remember the boxes that has mirror in it and then to find the destination of the reflected light. Mirrors will appear for few seconds, then disappear. On clicking the right destination spot the kid will score. If not, he/she will be taught more by Tux.

To visualize, the game may look something like the one mentioned below

reflection spot 1
reflection spot 2
reflection spot 3

New idea: Check remainder

With reference to the issue #40

Category: Speed

Purpose: The game will push the kid to be more attentive and in the meantime react faster with the ability of his/her math tables knowledge. This game is played in another form by professionals in corporate very often in groups to refresh their minds.

Game: React differently for a number which is a multiple of three.

To visualize, the game may look something like the one mentioned below

check remainder 1
check remainder 2

Separate Pause logic from Replay logic and make the code more modular.

We should separate the pause logic from the replay logic and make the code more modular so that it would be easy for a new developer to pick up parts of code and develop a new level. The replay logic shouldn't have any relation with the pause logic.

This is different from the issue #1. This is not concerned with replacing the use of pauseState with game.paused but with separating the pause logic from replay logic and using better graphics to represent the same. function replayGame() { pause.destroy(); pause = game.add.sprite(575,455,'pause'); pause.inputEnabled = true; tempText = game.add.text(470, 470 , ' ' , {font : "15px Arial" , fill : "#eceff1"}); pauseState = 1; pauseAndPlay(); // The replay function shouldn't make use of this. score = 0; displayScore = 0; myscore.setText('000'); timer.setText('00:00:00')

pauseAndPlay(); // This replay function shouldn't make use of this.

New idea: Color drift

With reference to the issue #40

Category: Flexibility

Purpose: As per the hypothetical theory of two sides of brain, a person can be either left or right brained. But using both cognitives makes us more flexible in thinking. This game tries to achieve that.

Game: The color filled circle should always match the moving rings. The user should be attentive and flexible enough to concentrate on both sides.

To visualize, the game may look something like the one mentioned below

color drift 1
color drift 2

Implementing game states and documenting the code.

A detailed documentation of the code explaining the use of each function and variables would be a very nice idea in order to help new developers getting started with developing new levels quickly.

Moreover a very good step before documentation would be implementing game states which would make the code more structured and further assist in the documentation part. Also, lack of a preloader state might make the user gaze at the black screen of the game window. This might not be very apparent to users having a good internet speed because the game arts used are not that heavy but for users with slow internet connection this might be outlandish and also if someone adds a game with game arts that takes time to load this might become an issue.

Making the user feel that nothing is happening is not a very good idea. We need to implement this.

Make running in local

Hi, removing the references to azurewebsites allows Tux4ME to run in the local filesystem as wel in the webserver.

The joint diff also contains minor capitalize modifications to cope with case sensitive filesystems. They work but I am not sure if it would be better to rename the files pointed.

.diff extension doesn't seem supported by github, :( so I renamed it to .txt

HTH
Pere

local.txt

New idea: Shapes drift

With reference to the issue #40

Category: Flexibility

Purpose: As per the hypothetical theory of two sides of brain, a person can be either left or right brained. But using both cognitives makes us more flexible in thinking. This game tries to achieve that.

Game: The static shape on the line should match the moving shapes. The user should be attentive and flexible enough to concentrate on both sides.

To visualize, the game may look something like the one mentioned below

shape drift 1
shape drift 2

Wrapping Tux4ME into a hybrid app.

We should consider building a cross platform desktop app for Tux4ME using electron because that gives a better performance than an Apache Cordova+Crosswalk built hybrid app. Moreover we can test a Cordova/Crosswalk built app on a few devices ( categorizing them on the basis of specifications and picking one out of each category and test the performance of the app, since, emulators are not very good at this. So if doesn't wok fine we can try something like cocoon.js or Ionic. Issues with WebGL and compatibility of the crosswalk web view will always be a trouble while we are targeting older devices and this has to be dealt with.

New idea: Find the match

With reference to the issue #40

Category: Flexibility

Purpose: Our ability for flexible thinking and behaviour is achieved by a part of the brain that has evolved to control our thoughts and behaviours. When such flexible thinking ability is challenged the brain heats and may develop the ability.

Game: The user will be prompted to find the missing piece of the puzzle.

To visualize, the game may look something like the one mentioned below

find the match 1
find the match 2

EventListeners are alive

I found the the eventListeners of Yes and No images are alive even while it's alpha value is set to zero in the flashBack game.

New idea: Basic arithmetics

With reference to the issue #40

Category speed

Purpose: A game to improve basic arithmetical skills. We need this till we have an online version of TuxMath.

Game: Answer questions involving basic arithmetic as fast as you can. Avoid collision with moving plants as Tux has only three lives. Wrong answer earns -10(if score is not zero), correct answer +10. Complexity(difficulty of questions as well as speed of plants) increases with level. Also the arithmetic operations could be any, not necessarily addition.

A few snaps

screenshot 109
screenshot 110
screenshot 111

In the second pic what looks like a blast is just an animation when the plant disappears.

New idea: Match n Match

With reference to the issue #40

Category: Attention

Purpose: Who has never heard or said: "It's so hard to concentrate!" or "You're not paying enough attention!" Attention is a complex cognitive function which is essential for human behavior. This play makes the user concentrate on the entity and find a relevant pair. (Reference)

Game: The user should select the similar object if present. If the similar object is not present, he/she should select a completely different one.

To visualize, the game may look something like the one mentioned below

match n match 1
match n match 2
match n match 3

Game paused

To Pause the game using game.paused inbuilt function in Phaser. Currently it has been done manually, as when the pause button is clicked everything else freezes.

To vulcanize

With reference to issue #49 and as @arun1128 rightly pointed out,

We used Polymer in our project to achieve material design. As you know, Polymer was at its very early stage while we were using it.

Tux4ME website uses multiple HTML Imports to load dependencies. This is making lots of network round-trips and also leading to long initial load times.

Currently, our site makes (in any games page)

  • HTML (89 requests)
  • CSS (9 requests)
  • JS (7 requests)

Total 105 requests + a few requests for game sprites :(

The Vulcanize tool follows HTML Imports and <script> tags to inline these external assets into a single page. We shall use the Vulcanize tool to drastically reduce the number of imports the site is making and so decreasing the initial load time.

Separate Pause logic from Replay logic and implement a better UI/representation for the pause state.

The pause logic has been re-implemented using a pauseState variable that keep tracks of the current state (pause or not) We need to replace it with game.paused. The game can be paused simply by assigning game.paused a bool value of true. This is more efficient.

Moreover , the pause logic and the replay logic needs to be separated from each other. Also, a better representation(in terms of UI) of the pause state is required.

Bower library updates

hi
I have noticed that the project libraries version haven't been updated. Bower install explicitly ask you which version to install while downloading and resolving dependencies. Can I use new version of dependencies? As far as I can see I didn't noticed any major issue after updating library version.

Any feedback will be really helpful!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.