The level of a card is the number of smash you need to unlock it.
We store best_without_failures
and choose among card that requires less than that for the next one. If there is none, take one at random among the 2 next increment.
The tutorial slowly ramps up to card level 10. Tutorial cards ids start with 0-Tutorial
, the 0-
is to kep alphabetical order when level 10 or above.
We have cards from level 10 to 100 with increment 5: | Card Level | Number of cards |
---|---|---|
10 | 19 | |
15 | 18 | |
20 | 17 | |
25 | 16 | |
30 | 15 | |
35 | 14 | |
40 | 13 | |
45 | 12 | |
50 | 11 | |
55 | 10 | |
60 | 9 | |
65 | 8 | |
70 | 7 | |
75 | 6 | |
80 | 5 | |
85 | 4 | |
90 | 3 | |
95 | 2 | |
100 | 1 | |
Total | 190 |
Open project.godot
with Godot.
To see your changes, just click play in the top left corner.
See tween cheat sheet.
Use CloudConvert to convert SVG to PNG.
Use VectorPaint on Safari to edit SVG.
To add new card, follow the following format for names: {combo_required}_{id}.jpeg
. id
can be a name without space or just a number, make sure it's unique across all cards.
Follow official guide to test on iOS.
If you want to test the In App Purchase, do the following after export:
Product IDs are not sensitive data, you can store them in public (see source)
See more in this Github issue: https://github.com/godotengine/godot-ios-plugins/issues/47
brew install scons
git clone --recursive https://github.com/godotengine/godot-ios-plugins.git
cd godot-ios-plugins/godot
git fetch
git checkout 15073afe3856abd2aa1622492fe50026c7d63dc1 # commit from 4.2.2
scons platform=ios target=template_debug # ^C after headers are built
cd ../
scons target=release arch=arm64 simulator=no plugin=inappstore version=4.0
./scripts/generate_static_library.sh inappstore release 4.0
./scripts/generate_xcframework.sh inappstore release 4.0
Update the .gdip
and output from bin/
.
Export to iOS is automatically manage when you merge in main, you'll receive your latest version in Testflight. You can still build manually if you want to test your feature on mobile before merging. You will very rarely have to manually create an Archive though.
Project > Export...
iOS Production
in Presets1.2.1 -> 1.2.2
(SimVer)Export Project...
, and export it without Debug
error: "scaling-broccoli" requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor.
, but the Xcode project will be created you can move forwardscaling-broccoli.xcodeproj
)
Signing & Capabilities
Automatically manage signing
Product > Archive
, it will build and open the Archives windowDistribute App
, a pop-up menu will openApp Store Connect
Upload
Upload your app's symbols
and Manage Version and Build Number
Automatically manage signing
Upload
, this will take a whileYou will need your developer certificate to export your app to the App Store.
Device | Dimensions | Folder | Debug Window Dimensions | Capture Dimensions |
---|---|---|---|---|
6.7" Display | 1290 x 2796 |
screen-67 |
665 x 1418 |
323 x 699 |
6.5" Display | 1284 x 2778 |
screen-65 |
662 x 1409 |
321 x 695 |
5.5" Display | 1242 x 2208 |
screen-55 |
641 x 1124 |
311 x 552 |
12.9" Display | 2048 x 2732 |
screen-129 |
1044 x 1386 |
512 x 683 |
Device | Dimensions | Folder | Debug Window Dimensions | Capture Dimensions |
---|---|---|---|---|
6.7" Display and 6.5" Display | 886 x 1920 |
preview-67-65 |
906 x 1940 |
443 x 960 |
5.5" Display | 1080 x 1920 |
preview-55 |
1130 x 1970 |
540 x 960 |
12.9" Display | 1200 x 1600 |
preview-129 |
1250 x 1650 |
600 x 800 |
TestFlight
tabApp Store
tab+
sign next to iOS App
on the upper-leftCreate
./STORE_PRESENCE.md
Release Notes
in What's new in This Version
Add build
and select your latest buildSave
ang go to App information
under General
./STORE_PRESENCE.md
Project > Install Android Build Template...
and select Install
Project > Export...
Android
in PresetsRelease
, Release User
, and Release Password
Export Project...
, and export it without Debug
Internal Testing
aab
file192x192
432x432
: foreground image, you will only use the inner 264px
circle432x432
: background imageIf you manage your key with Google Signing, they get you covered. Follow their Create an upload key and update keystores guide.
Apps that use advertising ID and target Android 13 or later must declare the com.google.android.gms.permission.AD_ID permission in their app manifest. If you don't include this permission, your advertising identifier will be zeroed out, any attempts to access the identifier will receive a string of zeros instead of the identifier. Learn more
If you say that your app uses advertising ID, we will block releases that don't include the com.google.android.gms.permission.AD_ID permission in the manifest file when targeting Android 13. When we block these releases, we will remind you to add the permission. If your release doesn't need advertising ID, you'll be able to skip the error and release. You can also update the declaration to turn off advertising ID release errors.
The option selected is No.
Device | Dimensions | Debug Dimensions | Debug Factors |
---|---|---|---|
Any | 1242x2208 |
414x736 |
3 |
App icon | 512x512 |
N/A | N/A |
Feature graphic | 1024x500 |
N/A | N/A |
Main store listing
under Store presence
on the left./STORE_PRESENCE.md
Save
and don't send the change to reviewProduction
under Release
on the leftCreate new release
Add from library
and select the latest app bundlerelease notes
from ./STORE_PRESENCE.md
Save
Save
Go to oveview
in the pop-up windowSend X changes for review
and confirmNew Virtual Device
(it should create a Loopback Audio
device)Settings > Audio
and select Loopback Audio
Project > Settings
and select Window
Debug dimensions
20px
in each dimensions to not see window frame while recording20s
ffmpeg -i input -vf scale="iw*2:ih*2" output
(scales times two)
ffmpeg -i input -vf scale="iw*2:ih*2" -sws_flags neighbor output
ffmpeg -i input -vf scale="1200:1600" output
mp4
: ffmpeg -i input.mov -qscale 0 output.mp4
ffmpeg -ss 01:23:45 -i input -frames:v 1 -q:v 2 output.png
LoopBack Audio
LoopBack Audio
Music
and set volume at maximumYou will need to use iMovie
to create the app preview. They won't upload if you don't export them with iMovie.
If you use iMovie
, no need to rescale your .mov
recording, iMovie
will set the correct dimensions automatically.
For 12.9" Display
you'll need to rescale the video to 1200 x 1600
before importing it in iMovie
. If you don't, iMovie
will rescale it to 900 x 1200
.
You won't be able to upload videos directly. You must create a Youtube video and use the link.
Add a video by entering a YouTube URL. This video must be public or unlisted, ads must be turned off, it must not be age restricted, and it should be landscape.
Paste these link on the website where your app is available for download or in the description section of the platform or marketplace you’re using.
Matchy Matchy is a mobile arcade-like video game where you have to touch a square when its colour matches the colour of the background. The square will keep its colour until you touch it when it has the same colour as the background. The background keeps changing colour, and you must be fast and reactive!
You can take two directions to decide the rules.
Points are a common language between players to compare their performance and challenge each other. Points in arcade games be the best translation of the player's level possible.
Each time you hit, you earn ten points times your current combo strike.
score_factor
: the number of times you multiple your combo strike (ten above)Combos are essential in arcade games as they incentivise you to continue the perfect strike and improve your skills.
After your second hit without a miss, you will start a combo. Then, you'll continue the combo until you don't miss it. You miss if:
You lose when you miss. You miss if you tap when the square and the background differ from the same colour.
You can't play longer.
When you reach a given combo, you will increase your level.
The higher your level, the more likely you are to have match new to each other.
You reach level 1
at combo 10
and level 2
and combo 20
. You can't go higher than level 2
.
background_delta
: the time the background keeps its colour when it doesn't match the colour of the squarebackground_match_delta
: the time the background keeps its colour when it matches the colour of the squaremax_swaps
: array of maximum number of background color swaps before if match the color of the character at level n