About Cylone
Cylone is a free, independently developed platform for running Scratch projects with faster cloud capability. It’s built on a modified version of TurboWarp, using its compiler, runtime, and rendering features with a custom networking system.
The project improves how Scratch projects exchange cloud variable data, to reduce update delay and latency.
Why Cylone Exists
Scratch's cloud variable system provides a way for projects to share data between users, but its update limits (maximum 1 cloud variable change per 0.1 second) and server based communication model can restrict certain types of multiplayer gameplay.
Cylone was developed to explore a different approach: giving players the option to exchange cloud variable updates directly, while using a server-based communication path by default and whenever direct connections are unavailable.
The goal is to make more responsive multiplayer experiences possible in Scratch projects.
How It Works
Cylone uses a modified TurboWarp player to execute Scratch-compatible projects.
Its networking system combines WebSockets with optional WebRTC connections.
WebSocket communication
By default, Cylone relays cloud variable updates through its WebSocket server. While WebRTC is disabled, Cylone's multiplayer system does not share your IP address with other players.
The server also coordinates multiplayer rooms and helps browsers establish WebRTC connections for players who enable them, which can result in up to half the latency of WebSocket connections.
Multiplayer rooms are associated with project identifiers, allowing users running the same project to exchange data.
Optional WebRTC peer-to-peer connections
You can choose to enable WebRTC connections when you first visit Cylone, and can change this at any time in Settings.
When two players in the same room both have WebRTC enabled, Cylone attempts to establish a direct connection between their browsers using WebRTC data channels. Once established, this connection allows cloud variable updates to travel directly between those players rather than passing through the central server.
This can reduce communication latency, although performance depends on the participants' networks and connection conditions.
Enabling WebRTC could expose your IP address to other players, so it is recommended when playing with people you know. For more information, see the Privacy Policy.
A room can include players with and without WebRTC enabled. Updates travel directly where possible and through the server otherwise.
Features
Scratch Project Compatibility
Cylone uses TurboWarp's Scratch-compatible compiler and runtime to load and execute Scratch projects.
Most standard Scratch projects can run without modification, although compatibility with every project or extension is not guaranteed.
TurboWarp Performance Features
Cylone incorporates performance and rendering capabilities provided by TurboWarp, not newly developed.
Multiplayer Cloud Variables
Cylone extends TurboWarp's cloud variable networking implementation to support WebSocket communication and optional WebRTC data channels.
This allows compatible projects to exchange cloud variable updates between participants in the same room.
Limitations
Cylone is an experimental project, and its functionality depends on a few technical factors.
When enabled, WebRTC connections are not guaranteed to succeed on every network. Firewalls, network address translation, and browser restrictions can prevent direct connections.
When WebRTC is disabled or a direct connection is unavailable, Cylone uses its WebSocket server to relay messages. This can introduce additional latency.
Multiplayer performance also depends on the number of participants, network conditions, and the frequency of cloud variable updates.
Cylone does not provide permanent storage for user projects, multiplayer room histories, or cloud variable values. Active networking data is maintained temporarily, and multiplayer state may be lost when users disconnect or the server restarts.
Not every Scratch project is designed for multiplayer, and Cylone does not automatically add multiplayer functionality to projects that do not use cloud variables.
Development and Open Source
Cylone is maintained as a free project.
Its player is based on TurboWarp's open-source Scratch GUI, with modifications to the cloud networking implementation.
The modified source code is publicly available on GitHub:
Cylone's custom networking changes are developed independently of the official TurboWarp project.
The project may continue to change as networking functionality, compatibility, and performance are improved.
Acknowledgments
Cylone relies on the work of the TurboWarp and Scratch developers and contributors. TurboWarp provides the compiler, runtime enhancements, and much of the underlying project player, and Scratch provides the programming environment and project format that Cylone supports. Thanks so much to both!
Cylone is not affiliated with, endorsed by, or officially associated with TurboWarp, the Scratch Team, or the Scratch Foundation.
For additional information, see the Credits & Licenses page.