Make New Way is a beautiful mobile puzzle. You need to move/rotate islands to create correct path.
The game has 24 different handmade levels
If you want to create a new level, you must follow several rules:
- Preferably, use LevelTemplate (
Assets/Scenes/Level Template
). Make a copy and change it's name. - The level name must be in a special format: Level N, where N is the level number (N > 0).
- Each level must have a unique number.
- Level numbers must be in ascending order.
✅ 1, 2, 3, 4 ...
❌ 1, 1, 3, 4 ...
❌ 1, 3, 4, 5 ...
🟡 Currently, the game has 24 levels, so if you add a new level, it's preferably to choose a number greater than 24
If you are using the level template, you don't need to setup a level.
All islands are stored in Assets/Islands/Prefabs/
.
Every island (except Start and Finish) has an input and an output (from which side the energy must go).
Note: Start has only output, Finish has only input
You can easily configure the islands through the inspector:
You can modify ComplexIsland by adding or deactivating child islands of the same type (Movable/Rotatable).
❗ All islands must be child objects of "Islands".
You need to specify the number of steps in the LevelSettings (GameObject in the level hierarchy) that the player will have to complete the level.
If the level can be completed in two ways, you can specify the number of steps for the alternative solution (StepsForBonus in LevelSettings).
Also, you can provide a hint (HintSteps > Steps).
Then you need to change the levels count. Find ProjectContext.prefab in Assets/Resources/
, then select LevelsInfoProvider (a child GameObject of ProjectContext) and modify LevelsCount. If your level has a bonus (alternate solution), add its level number to NumbersOfLevelsWithBonus.
The game is localized into two languages: English (en_US)
and Russian (ru_RU)
.
Localization files (.json) are stored in the Assets/Resources/Localizations/
.
Each localization must have the same keys, so don't change or delete them❗
You can make a copy, for example, of en_US
and change the values. You should name your localization file in the same format (language_COUNTRY).
After your localization is complete, you need to find ProjectContext.prefab in Assets/Resources/
, then select Localization (a child GameObject of ProjectContext) and add a new element to "Languages".
Specify:
- Language code (it is equal to the name of the localization file),
- Displaying name (this name will be displayed in the menu settings, so it must be about 2-4 letters)
- System language ("this localization will be loaded automatically, if the user’s language is {System language}").
CPU | GPU | Avg. FPS (ms) | 1% low |
---|---|---|---|
Qualcom Snapdragon 730 | Adreno 618 | 60 FPS (16.5 ms) | 45-50 FPS |
MediaTek Helio X20 | Mali-T880 | 43 FPS (25 ms) | 20 FPS |
Default render scale is 0.75
Without post-processing the game shows up to 60 FPS on amlost all devices
For analytics the project uses Firebase and Unity Analytics.
"Analytics.cs" has commented out code, because the Firebase package was removed to reduce the size of the project and keep some of my data private
The application sends logs to Firebase when:
- player completes the tutorial
- player completes the level
- when an error occurs while ad loading
Ads are showing starting from level 8 on every fourth level (levels 12, 16, 20 etc) (temporarily removed)
Also, the player can watch advertising to get a hint
Used Unity version: 2020.3.11f1
The project is based on URP
• Extenject (Zenject)
• DOTween
• NaughtyAttributes
• Firebase Analytics (the package was removed, see Analytics)
• GooglePlayCore
• UnityAds