Welcome to Verdania! An onchain farm simulation game where you can escape the city routine and build the farm of your dreams. Plant and grow your own crops, manage your inventory with ease, buy and sell products in the store, and earn profits with the $VRD token! Additionally, you can share the experience with friends by inviting them to your farm, transferring $VRD and items to them.
Enumerate the features provided by your project:
-
Planting of crops: Ability to plant various varieties of crops on the farm.
-
Crop growth: System allowing gradual and visual growth of planted crops.
-
Toolbar and inventory mechanism: Interface facilitating access and management of stored tools and items.
-
VRD token (ERC20): Fungible token compatible with ERC20 for the in-game economy.
-
Items (ERC1155): Management system for non-fungible assets, utilizing ERC1155 standard.
-
Store mechanism: System enabling users to buy and sell agricultural products and tools.
-
VRD transfer to a friend: Ability to send VRD tokens to other users within the game.
-
Item transfer to a friend: Function allowing players to send objects to other users.
-
Friends invitation to the farm: Mechanism to invite other players to visit and participate in the user's farm.
-
Pathfinding algorithm (JPS): Implementation of an efficient pathfinding algorithm for character navigation.
The game features a frontend implemented in Unity, while the backend is built with Dojo on Starknet.
-
Currently, JPS is implemented and working, but due to the algorithm's poor performance, we decided to remove it. Therefore, the game's pathfinding is being handled by Unity. However, player positions are being persisted by Dojo.
-
The marketplace logic with ERC20, ER1155 is supported by Dojo, but the UI is missing in Unity.
-
The logic of inviting a friend to your farm (Untested) is supported by Dojo but the UI is missing in Unity.
The development of Verdania has benefited from several open-source libraries, including:
- Dojo.Unity: Used to facilitate the connection between Dojo and Unity.
- Origami: Origami is the native dojo collection of primitives that can be imported into your game.
- COMING SOON!: It's a collection of game primitives. For example, for pathfinding algorithms, we have A*, Dijkstra, and JPS.
Our game is fully on-chain. This means that we have the player's position registered on the farm. When the player wants to move to another tile, this action is also calculated on-chain.
To achieve this, we have implemented a pathfinding algorithm called JPS, which outperforms other algorithms such as Dijkstra and A*. This algorithm determines if there is a possible path for the player's movement.
- Prepare the soil
- Sow/Plant
- Water
- Harvest
Our crops include details on the time needed for them to be ready for harvest and their maximum survival time without irrigation. Additionally, each plant has a growth level ranging from 0 to 100, where 0 indicates it has just been planted and 100 means it's ready to be harvested.
The game's time is based on the blockchain's time, so the growth of the plants is determined by the time you spend caring for them.
Our 'updater' system handles efficiently updating active users' crops, taking into account the specific state of each crop. This system is triggered periodically via a cronjob.
We utilize implementations of the ERC20
and ERC1155
standards from Origami, which we've adapted to suit our needs. Additionally, we've developed an escrow contract
that serves as our marketplace.
This enables us to have an ERC20 token named VRD
, which is the in-game currency used to purchase items. For the items themselves, we employ the ERC1155 standard.
Within the marketplace, users can list their items or purchase those already available for sale. Furthermore, thanks to this implementation, we can send both VRD
and items to our friends.
Join us as Supporters and be an active part of Verdania's growth and continuous development. Your support is essential to take the game to new heights. Join here and be part of this exciting adventure!
Thanks goes to these wonderful people (emoji key):
dubzn 😸 |
Damián Piñones 🤠 |
Cristian Fleita 💻 |
Brenda Mareco 🎨 |