Mobile Studio tool integration with C# scripting for the Unity game engine.

Overview

Mobile Studio Package

This project is a Unity package for integrating the Mobile Studio tool suite into game development workflows. This version of the package has the following features for integrating with the Streamline profiler.

  • C# language bindings for emiting event annotations.
  • C# language bindings for emiting software counters.

License

Most files in this library are licensed under the BSD-3 Clause License, provided in LICENSE.md.

The Unity native plugin interface header, IUnityInterface.h, is licensed under the Unity Companion License, provided in LICENSE_UNITY.md.

Technical details

Requirements

This version of the package is compatible with the Unity Editor version 2018.4 LTS and later.

Building

This package is built using the Unity bee compiler.

  1. Set the environment variable ANDROID_NDK_ROOT to a local Android NDK install. Android NDK can usually be found in: \Editor\Data\PlaybackEngines\AndroidPlayer\NDK
  2. Locate the bee compiler in your Unity install. It is usually found in: \Editor\Data\il2cpp\build\BeeSettings\offline\bee.exe
  3. To trigger a build, run bee.exe in the Native~ directory.

Installing and using

For instructions on how to install and use this package, see the full documentation page.

Comments
  • Counter value bindings are only 32-bits

    Counter value bindings are only 32-bits

    The latest Streamline annotation native code has extended the client-side counter helper to use 64-bit types. We should do the same here because there are common use cases needing more than 32-bit values, such as system memory sizes, and _SCALE counters burn dynamic range due to the fixed-point fractional encoding.

    opened by solidpixel 2
  • Package counter ID assignments collide with Mobile Studio layers

    Package counter ID assignments collide with Mobile Studio layers

    Streamline annotation IDs are application managed, so can collide if different users allocate the same IDs. Currently both this package and the Mobile Studio layer drivers locally assign IDs from zero, so they collide.

    We should offset (and document the offset) the annotation handle IDs allocated by this package to avoid collisions with other users.

    bug 
    opened by solidpixel 2
  • CAM bindings don't allow any track hierarchy

    CAM bindings don't allow any track hierarchy

    The raw CAM bindings allow users to specify a parent track to allow a hierarchy to be built. We don't current expose this in the C# bindings - it would be good to hit parity.

    opened by solidpixel 1
  • Use Int64 raw counter values

    Use Int64 raw counter values

    Streamline allows 64-bit counter values, but the version of the helper bindings that we are currently using have 32-bit counters.

    This causes two problems:

    • 32-bit counters are too small for some types of data (e.g. memory size reporting).
    • Scaled fixed-pointer counters consume bits, further reducing the max value range even further.
    enhancement 
    opened by solidpixel 1
  • Complete set of CAM bindings

    Complete set of CAM bindings

    This PR adds additional CAM annotation bindings, making it a closer match to the Streamline native API.

    • CAMTracks can be nested.
    • CAMJobs can express dependencies.

    Known issue: Streamline is currently ignoring CAM Job colors (confirmed Streamline bug).

    opened by solidpixel 0
  • Reduce log verbosity

    Reduce log verbosity

    Logcat logs are verbose and repeatedly spam the same message. This PR reduces the log verbosity.

    • The FILE prefix is no longer used for log messages.
    • The warning for gator not running is only emitted once.
    opened by solidpixel 0
  • Add software counter API

    Add software counter API

    This PR adds support for an annotation software counter API. A simplified version of the underlying gator API is used, exposing float absolute and delta counters only.

    opened by solidpixel 0
  • Add missing metadata file

    Add missing metadata file

    Without the missing metadata file, Unity 2021.1 gets very unhappy, since it is not allowed to create metadatafiles for included packages: Asset Packages/com.arm.mobile-studio/LICENSE_UNITY.md has no meta file, but it's in an immutable folder. The asset will be ignored. grafik

    This fix simply adds the missing metadata file

    opened by JohannesDeml 0
  • Channel annotations cannot be used from the Job system

    Channel annotations cannot be used from the Job system

    CAM annotations support the jobRegister() interface which allows a script to add a Job with a specified start/end time in the past. This is useful for logging tasks processed by the Unity batch Job Scheduler, as batch jobs have restrictions on the API they can use.

    We don't have the same interface for the simpler Channel annotations, but I suspect it would be useful to have.

    enhancement 
    opened by solidpixel 1
Releases(1.5.0)
Owner
Arm Software
Arm Software
Design-agnostic node editor for scripting game’s flow in Unreal Engine

Flow plug-in for Unreal Engine provides a graph editor tailored for scripting flow of events in virtual worlds. It's based on a decade of experie

Moth Cocoon 555 Jan 4, 2023
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2.2k Jan 1, 2023
GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

Chris Maltby 6.8k Jan 8, 2023
Multiplayer ludo game made in Unity

LUDO Multiplayer ludo game made in Unity This a multi-plaayer game. But due to lack of budget I am not able to make it online multi-player. So users h

Soumavo Dey 26 Sep 23, 2022
Dialogue scripting language for Unreal Engine

Supertalk Welcome to Supertalk! This is a simple dialogue scripting language for Unreal Engine created due to frustration with visual dialogue tree wo

Sam Bloomberg 41 Nov 18, 2022
python scripting engine for the gd editor

Python interpreter embedded into the game Geometry Dash, designed for helping people automate tasks for creating

camila 8 Feb 24, 2022
A scripting language created mainly for game engines

HCode Hammurabi's Code A scripting language created for the use in games and game engines. Currently supported features and roadmap Structs Functions

null 4 Oct 11, 2020
Game Scripting Languages benchmarked

Scriptorium ?? Game Scripting Languages benchmarked. Using latest versions at the time of writing (Jul 2015) Total solutions evaluated: 50 Results Ran

null 482 Jan 7, 2023
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 48 Dec 29, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 61 Dec 14, 2022
A decompilation of Guxt (2007 game by Studio Pixel)

Guxt Decompilation Project WIP. Mostly based on work of @tilderain. Reverse engineering of remaining parts and various fixups was done by me (Alula).

null 2 May 25, 2022
Exposes Azure Kinect Support for integration into Unreal Engine Applications.

Azure Kinect for Unreal Engine Exposes Azure Kinect Support for integration into Unreal Engine Applications. Mainly for depth and color textures creat

Ayumu Nagamatsu 45 Jan 4, 2023
Unreal Engine 4 plugin for Yodo1 MAS (Managed Ad Services) integration. Used for ad monetization of games.

Unofficial Yodo MAS SDK for Unreal Engine 4 Disclaimer: this plugin is in no way associated with Yodo1, this is just a wrapper on top of their officia

Nineva Studios 3 Apr 9, 2022
A Framework for developing Unity games with Lua

UnityLua A Framework for developing Unity games with Lua Warning: This is not finished, I don't suggest using this until it is complete or you may run

Down 7 Jul 13, 2022
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Godot Engine 56.7k Jan 9, 2023
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.7k Jan 7, 2023
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 13 Dec 14, 2022
Rogy-Engine- - My 3D game engine source code.

Rogy-Engine Development My 3D game engine. (NOT THE FINAL VERSION- Windows only) Features: PBR shading and reflection probes with parallax correction.

AlaX 97 Dec 28, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.8k Dec 29, 2022