It allows developers to debug and test games in a whole new way! It will record the screen, the player input, fpps & memory info, the complete hierarchy, component information, mesh-data and particle-data every frame! You review this data in unity in an unprecedented intuitive way.
Let me introduce myself: my name is Michiel Frankfort and I’m a senior gameplay-programmer and designer at Little Chicken Game Company in Amsterdam - The Netherlands. During my many-years experience with Unity3D, I learned a great deal about the inner workings of the Unity3D game-engine.
While I was working on one of Little Chickens biggest projects, I learned that debugging and especially QA-testing can yield test results that are not always very useful or simply lack viable information. Thats why I started vBug, a tool that should give clear insight in player-behaviour but also helps the developer reproduce and fix problems.
In the video you show there is a mesh recorder, particle recorder. Will your api support devs to implement specific types of recorded information specific to their game for debug playback?
Wow, this looks great! Very powerful, could feedback some very important data. I have a couple of questions:
You say this works on mobile (iOS and Android). How is the data captured and stored on mobile, and how do we playback this information?
Will this work for UI elements too? So, say we have a scene which is entirely for a main menu (uGUI). Would this track what the user does inside the menu?
Well… for the time being you need to copy-paste the data manually (http://www.frankfortsoftware.com/vbug/vbug - documentation - v1.0.pdf), but… we are working on stream over WIFI functionality! This going to be amazing, but its still under development for now.
I will soon ad a tutorial regarding mobile usage, but for now I think its best to check my documentation.
About uGUI: I will perform a test tonight and see how it holds up using uGUI.
Thanks for the help. Although its useful for us to see what users do inside the app, its very insightful if we can check what they are doing with the menu’s and UI for the apps we develop. We focus on business applications, so see the user flow through an app is quite handy. I like the fact you track the users touch on the screen, that is something that will be of use to us.
I look forward to a mobile demo And WiFi streaming, well thats just awesome Is it possible to access the data that you store from within the app, to say upload to a server of our choosing? Then we could download and play it back.
Well indeed, we do want to build an extention which allows the developer to upload it to a server and then download it remotely. But his is planned after the beta period is over and U5 is supported. I’m also working on a roadmap with new features…
I received some questions about vBug in combination with NGUI. Thats why I created this little demo. I will soon investigate the new Unity.UI (UGUI) framework. Take a look:
Hi, unfortunately Unity limits the storage options on most platforms to the Application.persistentDataPath, thats why its stored there.
But you have got a good point, for mac and windows editor we can easily let the developer pick it’s location.
Ill add it to my next release version! Great feedback, thanks.
This plugin is great and $30 is a real bargain for something like this!
My only request would be to add an option to compress sessions or even just archiving them. Takes a long time to download several sessions from an iPad, since there are so many vBugSlice files. Also I had 3 sessions and they clocked in around 111mb.
Thank you for the compliment, great to hear you like it. I will look into this, but unfortunately its already compressed using LZF by default and most data is captured as binary (as xml would take 10x the space). I also experimented with PNG and JPG compression for the screencapture, but they are way to heavy to execute for each frame.
I would advise to capture only those things really needed, and if your framerate is high enough, capture every x frames. By default most recorders are set to every 3 frames, but with 60 fps, every 6 frames means 10fps capturing, which in some cases is enough (usability-testing for example)
Are you serializing each frame individually and allowing them for playback?
Can I view the fields on objects at that frame and if so also classes or structs on a monobehaviour?
Can I rewind to a certain frame and then start playing from there?
Yes! Each frame is saved individually. By default the entire hierarchy is captured every frame and by adding the vBugGameObjectReflectable to an object, each frame all exposed members of monobehaviours are captured recursively as well. These fields can indeed be structs or classes, even collections are supported.
The timeline lets you scub back and forth between these frames. And you can ‘play’ from any givin frame. Check out the tutorial for an A-to-Z walktrough