/hackerpet-games

Repository for community submitted hackerpet games

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

hackerpet games repository

This is a compilation of games for hackerpet-modified CleverPet Hubs. You'll find here games to try out with your dog or cat. Feel free to suggest modifications to games or even add new games here that you've made yourself!

Games to Teach your Player (dog, cat, pig, ...) to Use CleverPet

CleverPet developed this sequence of games to teach players to use the CleverPet Hub's touch interface, and are best played in the order below. When the player becomes proficient at the current challenge, switch them to the next one!

Install
0. EatingTheFood
CleverPet info@clever.pet
install EatingTheFood Help your player get comfortable with the Hub’s sounds and movements.
1. ExploringTheTouchpads
CleverPet info@clever.pet
install ExploringTheTouchpads A foodtreat is offered, but the player will also earn a reward when they press a touchpad.
2. EngagingConsistently
CleverPet info@clever.pet
install EngagingConsistently Now your player will need to press a touchpad to earn a reward.
3. AvoidingUnlitTouchpads
CleverPet info@clever.pet
install AvoidingUnlitTouchpads Your player must learn that only pressing illuminated touchpads results in success.
4. LearningTheLights
CleverPet info@clever.pet
install LearningTheLights Only one touchpad is illuminated in this challenge.
5. MasteringTheLights
CleverPet info@clever.pet
install MasteringTheLights Only one lit touchpad, and now your player will need to engage even more consistently.
6. RespondingQuickly
CleverPet info@clever.pet
install RespondingQuickly Your player now has to press two touchpads in a row to solve one puzzle.
7. LearningBrightness
CleverPet info@clever.pet
install LearningBrightness After the first press, your player will need to choose the brightest touchpad.
8. LearningDoubleSequences
CleverPet info@clever.pet
install LearningDoubleSequences Your player must press the brightest touchpad accurately twice in a row.
9. LearningLongerSequences
CleverPet info@clever.pet
install LearningLongerSequences Your player is challenged to complete patterns of up to nine moves in a row.
10. MatchingTwoColors
CleverPet info@clever.pet
install MatchingTwoColors The Hub introduces colors, your player’s job is to make all the touchpads match.
11. MatchingMoreColors
CleverPet info@clever.pet
install MatchingMoreColors This challenge adds white to the mix, the number of solutions grows exponentially!

Community Contributed Games

Anyone can make a game for the Hub! If you'd like to add yours below, just create a pull request to this repository. We'll commit all appropriate games.

Install
12. hello-animal
CleverPet info@clever.pet
Install hello-animal An introduction to the basics of building hackerpet interactions.
13. OneTwoThreeButtonGame
CleverPet info@clever.pet
Install OneTwoThreeButtonGame This game can be useful during initial training of a player to use the Hub.
14. ColorMatchGame
CleverPet info@clever.pet
Install ColorMatchGame Touching a touchpad toggles it to a different color, the game ends when all the touchpad colors match.
15. WhackAMole
CleverPet info@clever.pet
Install WhackAMole This is a more "active" game for the Hub that challenges your player's "paw-eye" coordination.
16. ControlPet
Michael Gschwandtner <mgschwan -at- gmail.com>
Install ControlPet Remote control app for the hub. Control the hub either via a webinterface or from a python program. Enables rapid prototyping of new ideas and guided learning of the hub
17. Symon
Jelmer Tiete jelmer@tiete.be
Install Symon CleverPet's take on the classic Simon game!

How to install games

Once you've modified your Hub to work with hackerpet, the easiest way is to install a game is to just click the install icon (install icon)! You'll then sign in to Particle and can choose which Photon you'd like to put the game on to.

Alternatively, you can clone or download this repository, and then install the game to your Hub using one of:

  1. particle-cli,
  2. Particle IDE (DEV) (slightly easier to use), or
  3. Particle Workbench (more sophisticated) for Visual Studio Code

How to submit games

You can add your own game to this list by simply submitting a pull request (PR) in this repository. A few guidelines for assuring a quick PR approval:

  • Please make sure you've tested the game and that you've succeeded at training a player to play it!
  • Please make sure that the game/app isn't a duplicate of others already here
  • In your PR, make sure you update both this file and games.json
  • Please submit one game per PR :)
  • Ensure you've already completed the CleverPet Individual Contributor License Agreement (CLA), which is based on the Google CLA.

If you want to also include your source in this repository, you can make a new folder under the games folder named after your game. The directory structure of your game should follow the standard Particle project structure. You can see an example of the structure in the hello-world game folder.

What's the CleverPet Hub? What's hackerpet?

The CleverPet Hub is a programmable device that lets you automatically train and interact with other species. It's kind of like a "game console for dogs and cats".

The Hub is built on the Particle platform, and with hackerpet we've open-sourced CleverPet's player-training software, which means that the full suite of tools Particle has built can be used to control the CleverPet Hub.

You can find the main Particle library to control the CleverPet Hub in the hackerpet repository or on the build.particle.io website.

Glossary

In the hackerpet libraries words such as "challenge", "interaction" etc. are used in specific ways:

  • Player: Any dog, cat, person, or other animal who is playing with a Hub.

  • Foodtreat: A food reward. E.g., a dog treat, cat treat, or piece of kibble.

  • Report: A single row of data describing everything that a player did during an interaction.

  • Interaction: A presentation of lights, sounds from a Hub, and the corresponding responses of a player, ending with a report. Nearly always, an interaction begins with the Hub doing some things, the player doing some things in response, and then the player getting some feedback as to whether they did the right thing.

  • Challenge: A series of one or more interactions, usually of progressively increasing difficulty, and often designed to teach the player a particular skill. Example: the Responding Quickly challenge where the pet has to go through several iterations of pushing multiple lit up buttons and getting foodtreats.

  • Challenge set: A series of challenges, such as the collection of 13 original CleverPet challenges.

  • Level: A stage of difficulty within a given challenge. Lower levels are easier, and each challenge usually has a fixed number of them.

  • Game: A fuzzy term, currently without precise technical definition, sometimes used interchangeably with "challenge", but which may consist of multiple challenges.