SDK: Looking for feedback & ideas

Hey DCL community!

I’ll start by presenting myself. I’m one of the many "Nico"s collaborating to the DCL platform, and you can find me on the Metaverse and Discord under NChamo. So far I’ve been collaborating on the Catalyst project, but I’ll be focusing mainly on the SDK.

We know that the SDK has a lot of good and bad things, and we want to take it to next level. And that’s when you come in! We need your feedback to see where we need to focus our work, since the SDK should enable you to fill the Metaverse with your creations.

We would like to understand what you love and what you hate about the SDK. What do you think we should do first? What do you think the SDK should look like in 2 years? There are no wrong answers! Any wacky ideas that you might have had are highly encouraged.
Please try to be as clear as possible, and maybe consider prioritising your ideas/comments so we can understand you better.

Our plan is to take your feedback, come up with a roadmap, share it back to the community, and iterate.

I guess that’s it. Please let us know what you think!

NChamo

Hi Nico,

Congrats on your promotion and thank you for doing this thread. We need the SDK to evolve to a product where users can get desired results without programming.

  1. People want to make money. - We need an easy way to list items that are clickable to begin a transaction. As a user this is how our experience should go.
  • DCL Player walks into a shop - See’s items on display. Clicks item, Displays pops up with picture of item, description. Buy now button which opens the contract to purchase. and maybe another button to link a creators website(optional). Get this process working for the users of the SDK and you will be half way there as this will provide real function.
  1. Ability to create using colored blocks. - A box maker tool which can be resized and change its hex color and the boxes work in a grid like fashion as seen in Minecraft.

  2. Ability to add animated gifs, pictures and video playback using the SDK.

These 3 functions will allow plethora of creativity.
Do you think any of these might be worth pursuing?

Hi!
Would be great if the Errors when testing locally could display what line (or at least what File and Function) of the Type Script code it is referring to. This will save countless hours of work.

For example here I know that I’m trying to set the “catch” property on an undefined element, but I don’t know where:

3 Likes

That colored blocks maker is already possible in the SDK. You can see an example of it in the Soho Plaza.

1 Like

Hey @CyberDragon!

First, I want to thank you for the feedback!

Some of the features you are describing can already be implemented with the current version of the SDK. However, this makes me realize that we don’t have enough documentation or examples to guide you into the new features that were recently developed.

Also, although some of these features can be already implemented, I agree that they are not as simple as you and I would probably like it to be.

So I’ll take note on all of this.

Thank you again!

Hey @Eibriel!

Completely agree! I also found myself completely lost in when an error happened, because I couldn’t understand where the problem was.

Feedback noted :slight_smile:

1 Like
  • Camera control and avatar positioning.
    Maybe it’s so obvious so that you already discussed, but I think it would open huge possibilities.
  • Be able to change avatars shape or even hide.
  • Custom mesh building from SDK, so that not only we can build box, plane, etc. but be able to create/edit mesh edges, vertexes, faces.
  • Canvas based texture (bitmap generated from code and used as texture, we could start with Plane)
  • Chat access.

(If some features are sensible, maybe can provided a kind of “allowed” creator membership)

… Although I’m pretty sure all these are not new and have sound at some moment.

more things:

  • (important) sounds out of parcels are annoying, if creator wants an immersive experience in his scene, it can be polluted by the music of a neighbour; the neighbour doesn’t have an easy way to avoid that if someone asks to him, so, if sounds are allowed out of scene, at least provide a way so that the neighbour can easily disable sound out of his scene; I know we can do some code, but just an option in SDK would be easier.
  • (fancy) particle system: if we want to add particles, I think, right now, the only way to do it is using entities per each particle, I think it would be cool if SDK can provide an optimized particle system.

to previous point about using Canvas as texture, I would add or replace:

  • allow Canvas as 2D UI texture.

Hey Pablo!

This is all great feedback. And thanks for coming back with new suggestions as they come up.

Some of the features you mention are already on our radar. And as you said, some of them are “sensible”. One of the possibilities on the table is to add a permission system to handle these sensible features. I was thinking something where the scene would ask for your permission to move your avatar or camera, or to access your chat. This system would be fully integrated into the SDK, so content creators would be able to use it. Do you think this could work? Do you have any other ideas?

And talking about the sounds from other parcels, this is a polemic topic haha. On one side, the fact that sounds continue playing when moving around the world generates a feeling that you are in unified metaverse. If sounds stopped as soon as you left a scene, to me, it could feel unnatural. However, I completely agree that when you are building your own scene, you should be able to control the whole experience, and sound is a part of that. So maybe, a possible solution would be to add to the SDK the possibility to mute external sounds on your scene. Does this make sense? What do you think? Just to clarify, this is just my personal opinion, but I wanted to see what you think.

Thanks NChamo, I completely agree with both suggestions, I was thinking the same for both as best solutions.

another quick idea: masks

for example you have some objects on scene, that are only visible through the mask, that can be an opaque plane or even through an alpha texture.

references:
https://answers.unity.com/questions/509690/phantom-clipping.html?_ga=2.158077946.1995975597.1596290574-636015773.1591955267

Hey @pablo!
That’s really interesting. I imagine that could enable a lot of different cool mechanics.

Hey @tmalexandre!
I agree that a mobile client would expand the platform further, but this thread in particular is about the SDK (the tool used to create scenes and content). Just wanted to mention it, because your post might not get the expected impact. You might try the #feedback channel on discord, or you could create another post on this forum to get some traction :slight_smile:

Note: If a scene is created by or modified by the SDK, you can’t import it into the Builder. You can only go from the Builder to the SDK, not in the other direction.

It would be cool if I could do it the other way around

Hey @tmalexandre!

Completely agree. I’m currently cooking something up relating to this particular subject. When a proposal is in place, we will share it with the community to get some feedback

1 Like

Javascript module format support.

So that you can use more libraries you find on npm.

1. Attach an Entity to the Player

At the moment attaching objects to the player causes them to float towards the player breaking the intended carrying object experience. Would be great when the player moves any attached entities moves with it.

2. Reposition Player in Scene

Allow via code the ability to move the player and where they are looking. Creators could use this for a die and respawn experience among many other use cases.

3. Raycast Cone or Other Shape

Instead of only having raycast line, would be great to have raycast a cone or cylinder. Basically raycast anything that has a width that can be bigger than just a point.

4. Prevent Player Clicking Opens Passport

When multiple players are in the same area in a clicking mouse experience anytime you click on a player their passport opens up. Would be great if in the scene code or scene.json file we can turn off “click player opens passport”.

5. Collision Triggers Players Walk Into Fires Event

Would be great to be able to easily detect player walks into a box shape. Many many game play elements like picking up items would be quicker to create.

6. Change 3D Model GLTF Texture

Skins are a big seller in games, it would cause many wallet transactions and be very lucrative if we had the ability to change a GLTF “skin” with another texture via code.

7. Player DCL Settings Volume Control

Players should be able to go into their settings and adjust all audio volumes with one setting. It seems odd that each creator needs to manually create a volume control for their creations.

8. Detect Player DCL Settings

It would be nice to know what the player’s graphics settings are set to so we can adjust the graphics we render during game play.

9. Detect 1st and 3rd Person View Change

Being able to retrieve the view state the player is in would allow creators to modify the experience to fit 1st and 3rd person view.

10. Manipulate Avatar Bones When 3rd Person

A way to adjust the player avatar bones in code. This would allow for many things like the player correctly appears to be holding something. Or this would be no different than custom bone movement similar to clicking on a chair and code runs that makes the avatar sit down.

2 Likes

Hey @Corv!

Thanks for all the feedback and ideas, they are great. We already had a few in mind, but it’s the first time we hear about others.

Just to make sure, are they sorted in terms of importance for you?

1 Like

Thank you @NChamo.
The order of importance from most important to least important would be the following.

#4 - Prevent Player Clicking Opens Passport
#7 - Player DCL Settings Volume Control
#1 - Attach an Entity to the Player
#2 - Reposition Player in Scene
#3 - Raycast Cone or Other Shape
#6 - Change 3D Model GLTF Texture
#10 - Manipulate Avatar Bones - this one may need to increase in scope to also send bone manipulations to other players, so if a player decides to sit, other see them sitting as well.
#5 - Collision Triggers Players Walk Into Fires Event
#8 - Detect Player DCL Settings
#9 - Detect 1st and 3rd Person View Change

What about access to microphone / MediaStream from SDK ?
I think Voice is a clearly missing feature to increase immersion in decentraland. But if it’s hard to have it as a world feature because infrastructure, what about finding a way to provide it for SDK, and Land owners / devs providing the infrastructure? This would allow not just voice comms, but interactivity, for example like Alexa; also from camera, where world can answer to user gestures, …
I know it could be hard or even not possible, but I think it can be a game changer, maybe makes worth to really have a re-look.