Core Concepts in Action
Last updated
Last updated
The core concepts of the Asset Layer platform were developed in large part through our experience building Duro Dogs, a revolutionary digital pet game centered around a vibrant creator economy. If you’ve never played Duro Dogs, you may want to check it out before reading the rest of this page. (Please note that Duro Dogs still runs on Asset Layer 1.0. The migration to 2.0 is underway. Some elements of the Duro Dogs experience such as authentication are different than Asset Layer 2.0 apps).
Below, we will show how the various core concepts of the Asset Layer platform are expressed in the context of Duro Dogs.
Users: These are the Duro Dogs players . When you go to durodogs.com and login, you become a Duro Dogs user. As a Duro Dogs user, you are granting Duro Dogs a revocable permission to read, edit, and transfer your Duro Dogs assets. You can be sent an asset from Duro Dogs whether or not you are logged in. Some of the Duro Dogs users are also members of the Duro Dogs team.
Teams: We created a team called "Duro Dogs" which we used to create the apps Duro Dogs, Ruff Runner, and several others.
Apps: Duro Dogs is the main app in the Duro Dogs ecosystem. The dog assets as well as all of the cosmetics are a part of the Duro Dogs app. Ruff Runner is another app we created. Ruff Runner has read-and-transfer permission from Duro Dogs which it uses to access users Duro Dogs when they log into the game and to transfer Duro Dogs rewards to users based on their achievements in Ruff Runner.
Another app called Bark Battle uses Duro Dogs item. This was created by a separate team and uses the read-only permission to access the Duro Dogs items.
Slots: Duro Dogs currently has four slots: dog, hat, glasses, and collar. All of the collections in Duro Dogs fall into one of these four slots. Based on the slot, apps like Ruff Runner understand how to use the assets and their expression values within that slot.
Collections: There are currently 447 collections in Duro Dogs! There are 168 collections in the hat slot, 118 collections in the glasses slot, 160 collections in the collar slot, and one collection in the Dog slot.
Each of the collections in the hat, glasses, and collar slots are identical. For example, the Yellow Bucket Hat collection is an example of a collection in the hat slot. Because this is an identical collection, every hat, regardless of serial number, uses the same expression values. This means that they all have the identical appearance in the game because the same files are being used to display each hat in the collection.
In contrast, the Dogs collection is a unique collection. Every dog has a unique look, unique expression values, and different files are used to represent each dog in the various apps supporting Duro Dogs.
Assets: Each collection in Duro Dogs is composed of assets with a unique serial number assigned sequentially during the minting process. Each of these assets also has its own properties. In particular, the dogs collection makes use of properties to record information about the attributes of the dog such as the fur color and eye color, as well as information about how the dog has been trained such as the experience level. When a dog is trained by a Duro Dogs user, the experience level is continually updated through updating the dog’s properties.
Equips: When you give your dog an outfit, you are taking advantage of the equip function of Asset Layer. When you put a hat on your dog, you are creating an equip where the hat asset is the child asset and the dog asset is the parent asset. This is used to be able to communicate the current outfit of a dog between an app like Duro Dogs with another app like Ruff Runner or Bark Battle.
Expressions: Each of the four slots in Duro Dogs has three expressions - the default “Menu View” expression, an expression named “Front View”, and an expression named “3/4 View”. Even though each slot in Duro Dogs has three expressions with these names, the expression types differ from slot to slot. For the dog slot, the “Front View” and “3/4 View” expressions are type Spine 4.0. Spine 4.0 is the 2D character animation library we used to create Duro Dogs. In contrast, the hat, collar, and glasses slots use an image type expression for all three expressions. Even though all three of the expressions for the hat, glasses, and collar slots are all type image, the expression values used are different for each expression, since each expression is used by the apps in a different context and has different requirements in terms of both the image dimensions as well as the visuals themselves.
Listings: Duro Dogs has a marketplace inside of the app. Listings are used to manage the items put up for sale by Duro Dogs users. When a user lists an item such as a dog or hat for sale, a new listing is created. When that listing is purchased, the user who listed the item receives the payment and the purchaser receives the listed asset.
Permissions: Duro Dogs is centered around a creator economy. Accordingly, it is very willing to grant permissions to other apps. Duro Dogs has a feature set which automatically grants read-only access to any app that requests to read Duro Dogs assets. This goes a long way towards enabling a permissionless creator economy. Duro Dogs has also granted read-and-transfer permission to Ruff Runner so that Ruff Runner is able to distribute Duro Dogs Assets as rewards for achievements in Ruff Runner.