Use the Decentraland Software Development Kit v7 to create experiences for the Decentraland ecosystem.
npx @dcl/sdk-commands init
on an empty folder.npm run start
!This repository consists of the following components, packaged for the nodejs
/npm
ecosystem (find them under the respective subfolder in packages
):
@dcl/react-ecs
: a framework to create scenes using the React framework@dcl/sdk
: contains all the packages that a scene needs to work.@dcl/ecs
: an engine used to render things on screen@dcl/sdk-commands
: contains the command line interface@dcl/inspector
: Editor interface.And some internal or maybe useful packages if you're digging deeper into how the Decentraland runtime works:
@dcl/js-runtime
: the js-runtime
contains the typings for the environment variables available in the sandboxed execution environment for scenes@dcl/playground-assets
: contains the files needed by the playground. https://playground.decentraland.org/When @dcl/sdk
is built, as it depends on new versions of @dcl/ecs
, these are built first and @dcl/sdk
includes the new versions.
The ECS 6 lives in the 6.x.x
branch, there will no longer be new features but it's available for fixes or patches.
With a PR to 6.x.x
, you can test the build with the S3 publish, but it'll be necessary to create a release for propagating under decentraland-ecs@latest
.
We use golden files to create snapshots for a series of test scenes. Most changes to the codebase impose a change in the amount of opcodes executed in the actual scene. We use a QuickJS virtual machine to benchmark how many opcodes are required. Even though this is not representative of the reallity of optimized JIT virual machines, it is a good approximation of the impact that the change would imposes on scene developers.
To re-create these golden files, run make build update-snapshots
. In some cases, this will generate some discrepancies with the clean environment used by the continuous integration we use (CircleCI). If you run into this issue, please run make deep-clean-and-snapshot
to invalidate all cached calculations. Be careful: it will clean all local changes on your git working tree.
After merging a PR to the main branch, we should wait until the actions finish the process.
Once the actions completed successfuly, we have to create a new Release from the main branch following this version guideline.
This repository is protected with a standard Apache 2 license. See the terms and conditions in the LICENSE file.