Guidelines
What follows are requirements and guidelines for building games that work within the Legends of Learning platform.
Implement LoL API
There are several required behaviors that allow a game to be run within the LoL platform. For example, a game must let the platform know when it is ready to be played and when it is completed. It also needs to provide incremental progress during game play. Be sure to review the Concepts section carefully, in order to fully understand the required behaviors of your game when implementing the LoL API.
Legends of Learning provides 3 SDKs for building games:
Unity (most popular)
JavaScript (simplest)
Construct2 (plugins maintained by the game developer community)
The JavaScript API is the base layer beneath both Unity and Construct2, so it's worth understanding first.
Technical Requirements
Size Limits
Maximum initial Web download size of the game is 30MB. If the uncompressed game build is over 30MB it will be reject/not be able to upload in our services. However, we recommend sizes of 15 MB or lower since a 30 MB file will take a long time to load in many bandwidth constrained school environments, possibly leading to lower ratings for your game.
Device Support
ChromeOS, MacOS, and Windows
Intel Celeron N3450 processor or faster (for example a mid-range 2017 Chromebook)
4GB RAM
iPad support for iPad 6 is MANDATORY for K-2 games (ages 5-7) and is strongly encouraged for all other games. Our testers use an iPad 6th Generation.
Our Technical Reviewers use this Chromebook model.
Aspect Ratio
Aspect ratio must be 16:9.
Export Resolution
All games must be built and exported with a resolution of 1024x576 (16:9 ratio). By having all games export at this resolution, we ensure that games will always be scaled down, never pixelating by scaling up. 1024x576 is the minimum supported resolution and the majority of Chromebook will use it.
For Unity, the resolution is set in the WebGL template and the LoL platform will scale games down for smaller devices. For Construct 2, the resolution is set in the Window Size property.
Also make sure UI canvas are set to scale and use UI anchoring to ensure the game performs on all resolutions in case the browser/ Unity loader display at a larger scale on higher end machines.
Browser Support
Chrome last 3 versions (ChromeOS, macOS, and Windows)
Safari latest version (macOS only)
Firefox latest version (macOS and Windows)
Edge latest version (Windows only)
Performance Requirements
The Game must have a minimum frame rate of 30fps
The Game must have a maximum initial load time of 25 seconds running in ChromeOS on the minimum hardware specification, assuming a high speed Internet connection and no other apps running concurrently.
Build Configurations
[Unity Games]: Enable WASM Streaming Instantiation
Introduced in Unity starting with Unity 2021.2, which was released in October 2021.
This feature allows the Unity WebGL builds to instantiate WebAssembly modules more efficiently, leading to faster load times and better load success. Streaming instantiation makes it possible to compile and instantiate the WebAssembly module as it is being downloaded, rather than waiting for the entire module to be downloaded before starting.
If you're using the newest Unity version supported by Legends, this setting should be on by default.
Compression
Brotli preferred, but GZip OK.
The uncompressed build still needs to be under 30MB.
Font Size
Fonts must be 14pt or larger when games are rendered in 14" Chromebooks.
Unity Requirements
Version: Must use Unity 2022, minimum release 2022.3.5 LTS or higher supported version, for 5.4 API. Unity 2021 support is untested.
Language: Write all scripts in C#.
If you are using Unity Pro, we suggest you remove the Unity Splash screen to cut down on unnecessary extra load time.
Other
Drag and drop mechanics may be difficult for students using a Chromebook (most students use Chromebooks in the classroom). Chromebooks’ built-in mousepads are known to be “sticky” and difficult to manage with mechanics where precision is needed.
We do not permit multiplayer games.
Language and Translation
Legends of Learning is used by speakers of many languages. To bring the awesome content to students in their native language, we have some requirements about how game text is stored. Essentially, it must be kept in a separate JSON document during development, provided as part of the upload process, and will the be provided as part of the initialization sequence.
Your game submission only needs to include the English language JSON document. Legends of Learning is responsible for future translation into other languages. If any issues arise during our QA testing of translated text, then we may need to request changes to your game such as adding font libraries or adjusting text layout.
It is highly recommended that developers test Spanish text in their games to verify font and UI compatibility. I.e., check that special characters like accents and tildes render properly, and that translated text fits within the text boxes.
Restrictions
No External Licenses
Please do not pick an alternative framework that would require LoL to purchase a license in order to deploy your game.
No External Services
Your game must be self-contained with no external dependencies. For example, do not use a CDN to store your images or a web service for a leaderboard.
Software Rights
Please refer to the LoL Developer Contract for information about software rights.
Suitability of Content
Remember that the target audience for your game is students. Keep it fun, but keep it appropriate for a Grade K-9 audience!
Other Frameworks
You are free to use whatever build tools make sense for your game as long as you meet the terms of the Legends of Learning Developer Contract, including ownership and intellectual property terms. You are responsible for documenting the build process or providing a reference to publicly available third party documentation.
Last updated