Decentraland Avatars are on the way! Sign up now to be the first in line, and get early access to Decentraland
X
Hello! Please choose your
desired language:
Dismiss

SDK Release 6.0.0

6.0.1 - Beta

  • Fix a bug with entity positions out of bounds
  • Rename the AnimationClip object to AnimationState for more clarity
  • Rename the BUTTON_A_DOWN and BUTTON_A_UP events to BUTTON_DOWN and BUTTON_UP

6.0 - Beta

This release includes the following new features

  • Each parcel now measures 16 x 16 meters. This was decided via a vote by the community. New scenes created with the CLI are 16 x 16, old scenes remain as 10 x 10, but we recommend migrating to a 16 x 16 format. Scene limitations per each parcel haven’t changed since 5.0.

  • Improved audio engine: Multiple audio samples can be played at once. Also, each audio sample has a specific location. See Sounds for details.

    const trevor = new Entity()
    
    //Create audio clip
    const audioClip = new AudioClip("sounds/Vexento.ogg")
    audioClip.loop = true
    
    //Create audio source
    const audioSource = new AudioSource(audioClip)
    trevor.addComponent(audioSource)
    
    engine.addEntity(trevor)
    
  • Custom events are now possible, using functions to emit and listen for them.

This version includes several bug fixes and optimizations. It also includes the following changes:

  • 3D model animations are now handled by an Animator component, instead of by the GLTFModel component.

    let shark = new Entity()
    // Create Animator component
    const animator = new Animator()
    shark.addComponent(animator)
    
    // Create animation clips
    let clipSwim = new AnimationState("swim")
    let clipBite = new AnimationState("bite")
    animator.addClip(clipBite)
    animator.addClip(clipSwim)
    
    // Activate swim animation
    clipSwim.play()
    
    engine.addEntity(shark)
    
  • Textures are now handled by a specialized Texture component, that can be referenced by a Material component.

    let wheel1 = new Entity()
    
    // Create texture
    const spiralTexture = new Texture("materials/hypno-wheel.png")
    
    // Create material
    let spiralMaterial = new Material()
    spiralMaterial.albedoTexture = spiralTexture
    
    // Add material to wheels
    wheel1.addComponent(spiralMaterial)
    
    engine.addEntity(wheel1)
    
  • Billboard mode is now done via a separate specialized component, instead of by setting a property in shape components.

    let box = new Entity()
    box.addComponent(new BoxShape())
    box.addComponent(new Transform({
      position: new Vector3(5, 1, 5)
    }))
    box.addComponent(new Billboard())
    engine.addEntity(box)
    
  • Basic commands for handling components are renamed for more clarity. For example get is now getComponent, add is now addComponent and set is now addComponentOrReplace.

See the migration guide for clear examples of how to migrate your code.

Read the [release announcement(https://decentraland.org/blog/announcements/introducing-sdk-6-beta) blogpost for more details about these new features!

Note: All 3D models are now rotated 180 degrees along the Y axis to follow standards that are consistent with most other platforms. Any 3D models in your scene will now be rendered facing backwards. You may have to reposition or rotate your entities to compensate for this new rotation. Also, we now check that 3D models are within scene bounds by looking at the bounding boxes, not at each individual vertex. This is a lot more efficient, but some 3D models may have empty bounding boxes that stretch far beyond the vertexes. If that’s the case, you’ll have to clean up the 3D model so that the bounding boxes more closely match the vertexes of the model.