# Resumen

El runtime de escenas de Decentraland es el entorno de ejecución aislado donde una [escena](https://github.com/decentraland/docs/blob/main/content/entity-types/scenes.md) ejecuta su script principal.

Cada escena se ejecuta dentro de su propio runtime aislado. Dentro de él, tiene acceso a ciertos [objetos globales](https://github.com/decentraland/docs/blob/main/contributor/globals.md) y puede importar [módulos](https://github.com/decentraland/docs/blob/main/contributor/modules.md) desde la biblioteca del runtime.

{% @mermaid/diagram content="flowchart TB
subgraph WorldExplorer\["World Explorer"]
subgraph Runtime1\["Runtime 1"]
Scene1\["Scene"]
end

```
    subgraph Runtime2["Runtime 2"]
        Scene2["Scene"]
    end
    
    subgraph Runtime3["Runtime 3"]
        Scene3["Scene"]
    end
    
    Scene1 --> Library["Runtime Module Library"]
    Scene2 --> Library
    Scene3 --> Library
end" %}
```

Al importar módulos desde la biblioteca del runtime, las escenas tienen acceso a una amplia gama de funcionalidades, incluyendo:

* Crear entidades y controlar su comportamiento
* Interactuar con el jugador
* Comunicar con otros jugadores
* Inspeccionar el estado del mundo
* Conectarse a servicios externos
* Realizar pagos web3

En la práctica, las escenas empaquetan el [Decentraland SDK](https://github.com/decentraland/docs/blob/main/contributor/creator/sdk7/getting-started/sdk-101.md) con su código, que encapsula la interfaz estilo RPC de la biblioteca del runtime y proporciona una API más agradable y cómoda.

{% hint style="info" %}
Tenga en cuenta que el SDK no *es* parte del protocolo de Decentraland; solo las interfaces de bajo nivel lo son. Las escenas pueden decidir si empaquetan el SDK o usan bibliotecas alternativas.
{% endhint %}

### Objetos Globales

Dentro del entorno aislado, [escenas](https://github.com/decentraland/docs/blob/main/content/entity-types/scenes.md) se asume que ciertos objetos y funciones están disponibles globalmente. Algunos son objetos estándar de ES2020 (como `Date` u `Math`), y otros son inyectados por el runtime para implementar funcionalidades como requerir módulos, registrar mensajes y programar callbacks.

Consulte [globals](https://github.com/decentraland/docs/blob/main/contributor/globals.md) para más detalles.

### Módulos

El [`La función global require`](https://github.com/decentraland/docs/blob/main/contributor/globals.md#module) puede importar módulos proporcionados por la [biblioteca del runtime](https://github.com/decentraland/docs/blob/main/contributor/execution.md). Estos módulos permiten importar selectivamente utilidades como los sistemas ECS o Communications.

Consulte la sección de módulos del runtime para una lista completa.

### Ejecución

El runtime requiere que las escenas implementen un conjunto específico de métodos, y garantiza que serán llamados según ciertas reglas.

Vea [ejecución](https://github.com/decentraland/docs/blob/main/contributor/execution.md) para más información sobre esto.

### Permisos

La funcionalidad sensible, como realizar solicitudes HTTP a servicios de terceros, está restringida por el runtime a menos que ciertos permisos sean solicitados por el [escena](https://github.com/decentraland/docs/blob/main/content/entity-types/scenes.md)y concedidos por el jugador.

Vea [permissions](https://github.com/decentraland/docs/blob/main/contributor/permissions.md) para aprender más.
