Using Theirs are making tools for efficient game development. When we started Remote Inspector, we chose the HTTP/JSON protocol for fast development. And now, we decided to replace it with a more efficient binary protocol.
We tested 3 open source libraries – Bois, msgpack-cli and ZeroFormatter.And the following chart shows the response time of refreshing the Example scene. We tested 3 scenarios – Example Scene, Example Scene + 1000 GameObjects and Example Scene + 10000 GameObjects. 3 libraries showed similar performance.
Response Time of Refreshing Scene. MacBook Pro 2013 and iPhone 11 Pro Max.
In addition, we tested with a real project. And this time ZeroFormatter showed the best performance. It was faster more than 2 times!
Response Time of Refresh Scene. PC and Galaxy S9.
So we decided to replace JSON with ZeroFormatter. We hope this provides our clients with a better experience.
During this, we refactored our codebase drastically and packed the source code in DLLs. There are several reasons we took this approach:
- To prevent the 3rd-party library (like ZeroFormmatter) from conflicting with the clients’ libraries
- To prevent out common utilities from conflicting between our products
- To make use of the new C# version regardless of the clients’ Unity versions
- To add Pro features by using conditional compilation. We think this is more efficient than using multiple branches in our case.
You can still access the source code of Remote Inspector (Pro) by using .Net decompilers such as JetBrains’s dotPeek. We didn’t obfuscate the Dlls and provide debugging symbols.
We can develop Remote Inspector fast by this refactoring. We will continue to add lots of good features.