In gaming
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.

Features and functionality

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
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.

Prefabs
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.

Core Engine

Core
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.

Core2D
The Core2D module provides support for transform hierarchies, 2D cameras, as well as touch and mouse input.

Math
The Math module is an essential tool that enables standard math functions to run efficiently, and provides support for other dependent modules.

EntityGroup
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.

Watchers
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.

Interface

UILayout
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.

Text
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.

TextHTML
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.

UIControls
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.

Assets

Audio
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.

Particles
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.

Tilemap
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.

Video
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

HitBox2D
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.

Physics2D
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.

Animation

Tween
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.

Animation
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

Platform Integration

HTML
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.

PlayableAd
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

Profiler
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.                

If you have questions or would like to provide feedback, please visit our forums.

Frequently Asked Questions

When will Project Tiny be released?

You can download the Preview version now! See the question below for how to get started. The public release of Project Tiny will be in 2019.

How do I get started with Project Tiny?

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 will be available to all versions of Unity -  Personal, Plus, Pro.

Will Project Tiny support 3D or AR?

The initial release is focused on 2D games. Unity is a 3D engine and Project Tiny will support 3D and AR in future versions.

What documentation and/or training material is available?

Tiny Mode User Manual, API documentation and sample projects will be provided in the preview package download. Training videos are available on this page below. You can also visit the forums for more information.

What kinds of projects is Project Tiny best suited for?

Right now, 2D messaging or social app games and playable ads. The initial features are focused on these first two main use cases.

Can I use Project Tiny for other use cases outside of those two use cases?

Yes, right now Project Tiny only has the ability to export to a generic web target. While we focus our efforts on our initial two use cases, the result is that the majority of the features we create will benefit a much wider audiences.

Will it include full Unity capabilities?

No, to get the size down, many of the systems in Unity have been rewritten to remove large code size dependencies. This initial release prioritizes a stable and performant core, and has a feature set that supports the two initial use cases - 2D Games and Playable Ads. More capabilities will be delivered in future releases.

How small is the core runtime?

The core runtime is under 100KB (compressed javascript). Each module you add comes with additional functionality and size costs.

What is the raw size of the runtime?

To get a basic 2D game that is built for HTML5 delivery, the minimum collection of modules add up to 142 KB when compressed for transfer, and 730 KB uncompressed. Generally the uncompressed engine is around 4 to 5 times bigger. The compressed engine is optimized for size, and when uncompressed, it is optimized for startup time and performance.

How fast does a playable ad or game load?

For simple playable ads, depending on the complexity and size of the assets, under one second. This is highly dependant on the hardware you are shipping on and how you build your ad.

Can I use existing art assets?

Yes, as long as they are supported by the runtime. Project Tiny uses the Unity asset pipeline to maximize compatibility with existing content and workflows. The range of supported asset types and tools will grow with time.

What programming languages will be supported for developing game logic?

TypeScript is supported right now, with C# in the works. C# is the primary language of the Unity ecosystem and provides smaller and faster code. As a result, we will only be support C# once it’s ready.

Will I be able to use code from existing projects with Project Tiny?

Project Tiny will not support code from existing Unity projects without modification. The runtime is ECS-based and requires a different coding approach. We will be releasing tutorials that will help you convert your projects closer to the public release in 2019.

Will I be able to use my Asset Store purchased tools?

Not right now. The Runtime and Editor APIs are fundamentally different. In the future, asset store publishers will be able to extend Tiny by adding Tiny Modules in their packages.

What platforms are supported?

Project Tiny supports HTML5 targets. It support 2D WebGL and 2D Canvas rendering targets with the option to default to WebGL and fall back to 2D Canvas. The engine has been designed to be multiplatform. Native runtime support is planned for 2019.

What is the future of the existing WebGL Build Target?

The WebGL export target supports the majority of Unity features and enables many use cases that need desktop web deployment. The current plans are to continue support as long as demand continues.

What is the difference between WebGL Build Target and Project Tiny?

There is certainly some overlap between the two projects. The WebGL Build Target supports most of the features Unity ships with.The trade off is that the resulting projects are large which result in longer transport and startup times. If your goal is to publish more complex web-based simulations that run on desktop browsers, this is a strong option.

Project Tiny is a much lighter approach that provides very fast load times and small delivery size. This is achieved by providing fine grain control over what code modules are included. Project Tiny is designed for mobile viability which is why the initial release is recommended for Playable Ads and Games that run in messaging apps or social media platforms.

Can Project Tiny be used for other use cases?

Yes. However, we want to make sure developers have the right expectations. The initial release will be a limited feature set that has what you need for the two use cases mentioned above. More features will be added that enable a broader set of use cases in future releases.  

Will Project Tiny HTML5 output work in a desktop browser?

Yes, we test both Mobile and Desktop. Getting things to work well on mobile is the primary focus and features sets are largely tailored to fit within the practical limits of existing devices.

If I need support what is available?

During the Preview (public beta), developers will be able to get support via the forums on a limited basis.

Playable Ads
Can I take my existing Unity game and export as a playable ad?

No, you can use your existing 2D assets, but game logic and scenes are not directly transferable at this time.

Can I publish the ad to (insert ad network here)?

Yes, output is an HTML5 ad that will be able to be used pretty much anywhere. We will have streamlined interfaces that make it easy to ship inside Unity. Currently, we only support HTML5 output.

Are the resulting ads MRAID-compliant?

Yes, to a limited set of MRAID standards that are required by the Unity Ads network

Do I need to write code to create a playable ad?

Yes.

Can I create a Playable Ad with Project Tiny from a game I created in Unity?

You can create a playable ad inside the same project as a Unity game, however you will need to recreate the ad game logic. Most 2D assets are reusable.

What platforms does it support?

The resulting ads run in any standard HTML/Web-based ad container.

Can I use it to ship my ad on any platform?

No, it is intended for shipping HTML playable ads. With time, we will provide a broader set of options but the the initial release will be focused on HTML5 only.

We use cookies to ensure that we give you the best experience on our website. Click here for more information.