- Player movement. Player is moving to adjacent "grass" tiles. The non-continous movement (moving from one tile directly to the next one) is intentional.
- Map creation. The map is created before the game and consists of wall (obstacles) and grass. The arrangement of tiles is determined by the text file (/assets/map.txt). The player can move only on "grass" tiles.
- Bushes. Bushes occur on the map. They disapear when being stepped by the player.
- Keys. There are keys to be found on the map. Player can collect them (they disapear from the map and are added to the player inventory).
- Doors. Player can open door (it disappears from the map) in exchange for one of the keys from the equipment. With no keys player cannot go through the door.
- Diamonds. Appear on the map. Player can collect them; they are added to the equipment.
- Brittle obstacles. Only appear on the map (purple wall).
- Inspector-egui debugging system. Allows to see components and data of entities on the screen. May be removed later.
- Enemies. Enemies move up and down or left and right (from wall to wall).
- Lives. Player has lives that can be collected from the map. Lives are lost after collision with an enemy.
- Hammer. Destroys the britle wall (purple). To destroy turn in its direction and press X.
- Animation. The player turns in the direction of movement. Steps are animated. After collision with an enemy (after losing a life) player turns red for a few seconds. During this time player cannot be hit again. After losing last life player is defeated and is not moving anymore. Using hammer is also animated (the hammer usage is animated even if nothing is being destroyed).
- Saving - loading system. Only the basics: state of the player (lives, diamonds etc. is saved using serde, every time player crosses the spawn point (= save point). To return there and load the saved state press space bar. It is also possible after player death (for convenience).
- Stones. They appear on the map but act like a wall. Their textures are generated randomly.
- Krystyna Gasińska (@monty930 on GitHub)
The idea is to create a game similar to „Diamond rush” (the game that used to be on old cellphones). It would have one level, diamonds to collect (points), enemies to avoid (without combat system), lives, keys to collect, doors opened by keys, bushes to destroy falling stones and a hammer. Gameplay of original game: https://www.youtube.com/watch?v=W5jp-VyLEHY
- scores
- enemies
- game state saving and loading
- falling stones
- system of keys and doors
- riddles with a goal to defeat enemies
In the first part I'm going to implement the map with diamonds, bushes, keys and doors.
In the second part I'm going to add enemies, lives, stones, saving-loading system and a hammer (to destroy brittle obstacles and immobilize enemies). The stone will fall if there is nothing below it and it will roll to the left or right if there is a stone below it. Falling stone can also kill the enemy or the player. I will also add riddles like the one at 07:54 in linked gameplay: https://www.youtube.com/watch?v=W5jp-VyLEHY
- Bevy
Player assets thanks to: https://edermunizz.itch.io/pixel-art-rpg-character-creator
Other tiles assets thanks to: https://opengameart.org/
Part one was created with assistance of following tutorials: