Introducing vBug: Visual Debugging | Playability testing | Usability testing

Great news! vBug is finally live! After a year of development and testing, vBug has been accepted by Unity and is now available in the asset-store: Unity Asset Store - The Best Assets for Game Making

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.

Check out the trailer:

Check out the first tutorial:

Documentation:
http://www.frankfortsoftware.com/vbug/vbug - documentation - v1.0.pdf

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.

Let me know what you think. Im very excited!

This looks very interesting. Is it compatible with U5 beta?

Thanks!

I’m currently investigating U5 Beta. Unity changed the way shaders and materials work and that requires some extra testing and debugging.

In order to make all the platforms work and support Unity 5, it will take some time. Once I have a version ready for Unity 5, I will announce it here,

Cheers!

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:

  1. 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?
  2. 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?

Great work though, seems incredibly useful!

Yes it will, all the code is included and you can change it as you please. I’ve done this on purpose because of cases like this.

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 :slight_smile: And WiFi streaming, well thats just awesome :slight_smile: 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…

Thanks, good to know! I will keep this in mind for future projects :slight_smile:

1 Like

Hi everyone,

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:

Hey I started testing out vbug. Is there a way to change the default root directory of where all the recordings get saved? My C drive is very limited

1 Like

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.

1 Like

awesome

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.

1 Like

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)

Thanks for the purchase!

This looks great. I’m trying to solve a random hang bug. Do you have trial version, maybe capture for 5 seconds for us to test?

1 Like

Not at the moment. All code is included therefore is not possible to make a trial version and make it unhackable.

Wow, this looks great, some questions though:

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?

1 Like

Hi.

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

Cheers!