Visual React [Archived]
Levels | Contributors | License | Contributing | Assets
Visual React is a challenging and fun game for two players on the same device.
Be the fastest one to detect visual clues, quickly tap the screen, and earn a point! But careful: if you touch too early, you will lose one!
Battle your opponent in more than 10 exciting and easy-to-learn mini-games! None of them require prior knowledge—just quick reflexes—so you can jump straight into the action. Graphics are simple and clean - no unnecessary distractions so you can focus on the action and minimize your reaction time.
Name | Description |
---|---|
Collision | Tap when the shapes collide |
Color | Tap after the color changes |
Connection | Tap when the two extremes are connected |
Countdown | Tap after the countdown passes zero |
Fit | Tap when one shape fits into the other one |
Hole | Tap when the circles are smaller than the hole |
Light | Tap after there are more colored cells than dark cells |
Line | Tap when three cells of the same type form a line |
Pair | Tap when there are two equal shapes |
Passage | Tap when there is a straight passage from top to bottom |
Singular | Tap when there is a sad face |
Variety | Tap when there are five different colors |
- 🙈 Rubén García-Varcárcel Sen
- 🙉 Ricardo Rincón García
- 🙊 Chen Lai
- 🐐 Zhongrong Jian
GNU General Public License v2.0
- Follow the Android Design Principles
- Design levels that do not require previous knowledge
- Avoid using text whenever there is a cleaner alternative
- Use vector graphics (
.svg
), instead of rasterized ones - Adhere to the existing color palette
- Use the existing design/graphics as a reference to maintain a consistent look and feel
- Use Android Studio
- Follow the Android Core App Quality Guidelines
- Do not hardcode strings and constants, include them as resources
- Avoid using external libraries as much as possible, to ease the future implementation of the game in other platforms
- Auto format the code, and fix all warnings and errors before committing
- Use
camelCase
for code andsnake_case
for resources - Keep the code simple
- Create a new branch, named using the level name in lowercase - only commit to this branch while developing the level
- If the level you are implementing not described in the levels list, create an Issue first describing it (you don't want to code something that won't be incorporated into the game!), and ask for feedback
- Once the level has been approved, create a class with the level name in
src/main/java/sneakycoders/visualreact/level/levels/
that extends theLevel
class - all your code will reside in the newly created class - If needed, create a new layout for your level, and save it in
src/main/res/layout/level_<name>.xml
- Add your level name to the levels array in
src/main/res/values/arrays.xml
- Add your level title and description to the
src/main/res/values/strings.xml
resource, following existing conventions - Implement and test your level - use random ranges for all possible conditions in the level (timeouts, sizes, etc.), and store the ranges in
src/main/res/values/ingame.xml
- Run the Linter (in Android Studio:
Analyze > Inspect Code
), and fix any issue detected - Be sure the code follows the development guidelines mentioned before in the development parent section
- Edit the README to add your level to the levels list (if not present already)
- Make screenshots of your level (in progress, fail, success) and store them in docs/screenshots, following the already existing format - edit the screenshots README.md to include them
- Save all assets used to
docs/assets
(in addition to the resources folder), and list them in assets - Add yourself to the contributors list - you earned it!
- Create a Pull Request to add the level to the main branch - the new code will be reviewed, improved, and eventually merged - thanks a lot!
- Create a new branch, named using
bugfix/<bug>
, where<bug>
is a short description of the bug - only commit to this branch - Implement the fix for the bug
- Run the Linter (in Android Studio:
Analyze > Inspect Code
), and fix any issue detected - Be sure the code follows the development guidelines mentioned before in the development parent section
- Rebase interactively to squash all commits into a single one, and explain in the commit body what was the bug and how it has been fixed
- Create a Pull Request to add the fix to the main branch - the new code will be reviewed, improved, and eventually merged - thanks a lot!
- Create a new branch, named using
refactor/<description>
, where<description>
is a short description of the improvements going to be made - Implement the improvements, making sure the functionality does not change
- Run the Linter (in Android Studio:
Analyze > Inspect Code
), and fix any issue detected - Be sure the code follows the development guidelines mentioned before in the development parent section
- Rebase interactively to squash all commits into a single one, and explain in the commit body what were the improvements made
- Create a Pull Request to add the changes to the main branch - the new code will be reviewed, improved, and eventually merged - thanks a lot!
- Create a new branch, named using
translation/<language>
, where<language>
is the two letter language code of the translation you are adding / updating - If the language is not present yet, add a new row into
docs/metadata/README.md
to track the progress of the translation - Create / Edit the following files, taking any existing translation as a reference
app/src/main/res/values-<language>/strings.xml
docs/metadata/title/<language>.txt
docs/metadata/long-description/<language>.txt
docs/metadata/short-description/<language>.txt
- Rebase interactively to squash all commits into a single one, and explain in the commit body what translation is being added / updated
- Create a Pull Request to add the translation to the main branch - the new code will be reviewed, improved, and eventually merged - thanks a lot!