Instant 2D: Games & Playable Ads
Unity’s new highly-modular runtime and Editor mode lets you build 2D instant games and playable ads that are small, light and fast.
How to get started
Project Tiny is delivered as a package called "Tiny Mode".
To install it:
Open the 2018.3 Package Manager,
Enable Preview Packages,
And install Tiny Mode.
It can be used with all versions of Unity - Personal, Plus, Pro. The Tiny Mode User Manual, API documentation and sample project can be found in the preview package download. You can also visit the forums for more information. You can also watch these training videos to help you get started – check them out here.
Tiny Arms demo
This is an example of an instant 2D game created with Project Tiny that has an initial compressed size of 969 KB compressed data (162 KB engine, 199 KB game code, 597 KB of art). An additional 861 KB in audio files loads in as the game plays totaling 1.8 MB for the full project.
Tiny Mode Editor Features
ECS Editor Experience
Tiny Mode includes a rework of the Editor that is focused on making ECS development simple. Unity developers will find the workflows familiar and easy to use, and that the data-oriented approach gives you fine grain control over size and ability to maximize speed on a broad range of devices.
Live Link gives Developers access to new ways of working when testing on mobile devices. Live Link allows developers to auto-refresh any number of devices connected to the Editor every time they hit play. You can also snapshot the current state of a primary connected device and have that state reflected in the Editor.
Build Size report
The build size report tool is essential to identify where the bloat is so that you know exactly where to focus your size optimizations.
Tiny mode brings Prefabs to ECS which allow you to store an entity complete with components and properties on disk. They act as a template from which you can create new entity instances in your project. Any edits made to a prefab asset are immediately reflected in all instances produced from it but you can also override components and settings for each instance individually.
This module is the heart of the tiny runtime. The highly modular, data-oriented architecture gives you fine control over file size which results in fast performance on lightweight devices, with ultra-fast delivery and startup times.
The Core2D module provides support for transform hierarchies, 2D cameras, as well as touch and mouse input.
The Math module is an essential tool that enables standard math functions to run efficiently, and provides support for other dependent modules.
The EntityGroup module lets you instantiate and destroy scene and prefab fragments at runtime, letting you dynamically build up the game world as well as switch between levels.
The Watcher module allows a developer to monitor a component and react when it changes. When a watcher detects that a value has been adjusted in a certain way, a call back can be triggered. This is particularly handy when creating UI.
The UILayout module is a lightweight UI system that includes basic support for UI layout and fundamental UI building blocks. The system is anchor-based, supports auto-scaling, and adapts to mobile device orientation changes. Layout tools are provided that have a similar workflow as uGUI.
The Text module enables developers to build stylized, texture-based fonts for their UI. Texture-based fonts can be large in size and are best used when you can limit the number of glyphs you need to download.
This module allows you to access the universally supported on-device system fonts. Using this approach allows you to save on size by taking advantage of fonts that are already provided. This is best used in cases where developers have less control over the range of glyphs that might be needed - eg. input boxes.
The UIControls module helps developers reduce the time it takes to create compelling interfaces. Currently we support Button and Toggle with more on the way.
The Audio module lets developers bring their products to life with background music and sound effects. The module provides playback, pause, and looping capabilities, and supports .mp3, .wav, .ogg and any other audio file formats supported on the web.
Image2D + Sprite2D
The Image2D and Sprite2D modules provide image and sprite rendering capabilities needed for creating 2D experiences. These modules also provides support for flip book style sprite animations.
The Particles module allows you to spice up your project by adding elements such as fireworks, rain, or explosions to your experience. You can use a particle system to efficiently generate and animate a large number of small 2D images needed to achieve these types of effects.
When creating complex 2D levels, tilemaps provide a fast and easy way to create rich landscapes. Adding this module provides access to both tilemap support and tooling to help you create them.
The Video module extends the runtime to playback HTML5 fullscreen video for developers that wish to show a video as part of their experience.
Physics and Collision
This module provides a clean and fast way to detect when two on-screen elements collide without a heavier physics solutions behind it. HitBox2D helps with this by detecting hits and collisions between your entities.
This module, which is based on Box2D, gives developers the ability to use physics in their 2D projects and the tools to implement various physics elements like collision detection and 2D physics simulations.
The Tween Module enables a quick and easy way to create smooth transition between two values. This is a general tweening solution that can be applied to any component value such as color, position, scale, etc.
The Animation module allows you to create and modify 2D animations within the Editor. This module makes it easy to move, resize, or rotate a sprite or UI element. The full functionality of this module has dependencies that are expected in Unity 2019.1
This modules allows you to take your light weight, stunning, high-quality games and build them for distribution on the web. Developers that include this will be provided the option to build their game for HTML5 delivery.
The PlayableAd module enables you to easily create Playable Ads. Developers can integrate with MRAID lifetime events and distribute their project as an ad unit to networks that support the standard (MRAID 2.0). You are one click away from adding what you need to ship on Unity’s Ad network. And, the test application lets developers test on-device using the UnityAds environment.
Developer Tools and Services
This module helps projects reach their performance goals by providing developers the performance and resource usage information they need to know. This module will feedback CPU timing data so that you can optimize your game by viewing and analyzing this data in Editor right from the device it’s running on.
Project Tiny Tutorials
This playlist of tutorials goes over the core ECS architecture concepts and how it relates to Project Tiny, as well as the basics of how to structure a project using this new architecture.