Disclaimer: Based on the game Pushy Island from Lernwerkstatt. No original code was used.
I implemented all entities from the original game. Additionally to that I added some new entities. They are mostly logic gates. The functionallity is explained down below in the tutorial.
All original level can be played in the game. Additionally I added some new level with my new entities to the campaign.
With the editor you can create your own level. It supports these functionalities:
- undo / redo
- fill
- erase
- auto smoothing corners
- reset
After you validated your level by completing it on your own you have to option to share your level with your friends. For that you can click on the share button and select the way you want to share your level. Your friend will receive a "code" which they can enter in their app.
Until today there is only one version for this level code. But if I will change the way levels are encoded I will add a documentation for that version here.
In the version 1 the whole string can be interpreted as a byte string in hexadecimal.
The first byte is the version number. So usually it should be "01", which is equal to 1 in decimal. Afterwards there are 12 (height) * 20 (width) * 6 bits (be careful not bytes) representing the terrain, followed by 12 * 20 * 6 bits representing the entities. So you have to decode the byte string in that range to a binary string and split it where the index mod 6 is 0. Those 6 bits represent a terrain type or entity type (depending on the position ofc.). You can see the "value" of a type here (terrain) and here (entities). After 20 tiles a new line begins. So the order is like this:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
21 22 23 ...
The remaining bytes represent the level name. Every byte represents one character. You get the character but just casting the value of the byte to a char.
The main goal of the game is to reach the hut on the island. For that you use the arrow keys. But to enter the hut you have to solve all tasks on the island.
There are three main height level.
- Water (0)
- Sand (1)
- Grass (2)
You can't walk on water, except you have a boat. You can jump from grass to sand, but not from sand to grass. For that you need a spring. Its the same with movable entities. You can push down a entity from grass to sand, but not the other way around.
- static entity (can't be moved)
- can be destroyed by an exploding bom right next to it
- moveable entity
- can be pushed into water
- If a box is pushed into the water you can walk on it
- You can also push entities on the box in the water
- With them you can build bridges to other islands
- A box on land destroys flying stones shot from a slinsghot.
- moveable entitiy
- can be pushed into water
- all sea stars on one islands have to pushed into the water before you can finish the level
- collectible entity
- after collecting it you can place the seed on a farm
- movable entity
- if it is pushed onto a water hole the bottle will be filled with water
- if you push a bottle with water on a farm with a seed the bottle will disappear and a spring appears
- if the player moves on this field and has a seed in his inventory the farm will turn into a farm with a seed
- if the player then pushes a bottle with water on this farm with a seed a spring appears
- moveable entity
- statues with the same color are linked. If you move one all other statues of this color will be moved as well (if nothing is blocking their way)
- all statues have to be pushed on a statue finish with the same color to finish the level
- movable entity
- press the bomb field pressure plate to explode all bombs of the level
- can destroy stones