Spring 2021 - version 2.0 Release!
We're proud to announce the release of GameDriver 2.0, also known as the Spring 2021 release!
This release represents a major milestone in terms of new features and ease of use of our test automation Agent and Client API. There are also significant improvements in the performance and stability of this release, which will enable Immersive Experience teams to do more with GameDriver, faster than ever.
Let's look at some of the key features in this release, starting with Mobile Testing.
Mobile, Android, Appium, and BitBar support
The latest release adds support for Android in addition to iOS, which was already supported by GameDriver. This allows you to test apps built for Android devices, whether you are testing in the Unity editor, using the Android Studio or other such emulators, or testing on a real device using Android Debug Bridge (ADB), Appium server, or BitBar mobile device platform (by Smartbear).
Along with the addition of Android and related platforms, this release introduces new APIs for working with Mobile applications, including support for Touch (including multi-touch, drag, swipe, etc...) and Tap inputs.
New Notation, Multi-host, and Multi-threaded API
In the previous version, the GameDriver client used static methods for all API commands. While it was possible to test across hosts, tests were limited to 1 host per client. In this release, it is now possible to test using multiple hosts running the unity agent in parallel. This is made possible by the shift to instanced (non-static) methods for API commands, with the exception of Launch which is still static. We also enhanced AutoPlay support for running tests against any available agent on the network, and for running against instances of Unity using regular expression matching.
New API Methods, Updates, and more
In addition to the TouchInput and Tap API methods mentioned above, this release of GameDriver includes an additional command for measuring the distance between objects in-game called GetObjectDistance. This method takes the HierarchyPath of any two objects in the current scene and performs a Vector3 subtraction on their x, y, and z positions. This is particularly useful for navigation or reacting to events that depend on the relative positions between objects, such as in AR and VR scenarios.
The GetObjectFieldValue, WaitForObjectValue and SetObjectFieldValue methods now support native object types. This allows you to work directly with the string, bool, int, float, color, vertex, and other object types without having to cast between types or perform string manipulations.
Similarly, GetObjectPosition now returns a Vector3 value, and many methods requiring position input now include an overload that accepts a Vector2 or Vector3, depending on the command.
We also added an object cache to help reduce the number of queries made to the agent during replay. The cache is disabled by default but can be enabled, flushed, and disabled using simple commands.
Additional Changes
GameDriver 2.0 also includes enhanced logging and simplified agent configuration, in addition to multiple fixes for issues found in previous releases. For a full list of the updates in this release, refer to the release notes and updated API Documentation.
Please note that many of these changes will require tests to be updated in order to work. In some cases, it's possible to simply find and replace the changed command name or syntax. But some changes will require additional updates, such as introducing a type definition or reordering of parameters. We recommend starting with any new tests when using the latest version, to familiarize yourself with the structure before migrating existing tests.
What's Next
Never ones to rest for too long, here at GameDriver we're hard at work on the next set of features which we will cover in more detail soon. These features are available in the 2.0 release as a preview in hopes of getting your feedback.
First, we have added a powerful new method of collision detection that will enable you to test in-game object collisions during replay by registering a "collision monitor" on an object, and then capturing the event when it occurs.
Next, an all-new Object Explorer (accessible in the Unity editor under Window > GameDriver > Object Explorer) to quickly resolve objects and their properties, as well as export them directly to HierarchyPath for your tests. Simply right-click an object or property in the Object Explorer to log or copy the HierarchyPath required. Note: Not all object properties are supported for export, but the next feature we are working on will help with that where needed.
Object serialization is now extensible, allowing you to define your own serialization for object queries that are compatible with GameDriver HierarchyPath and commands such as GetObjectFieldValue and SetObjectFieldValue.
For each of these exciting new features, keep an eye on our blog and YouTube channel for updates and tutorials very soon. For questions and feedback, as always you can email [email protected]
Getting Started
The latest version is already available via the Downloads page, and the Documentation has been updated with these changes. To get started, simply download the latest version and use your existing license during the installation process, or request a trial license if you are just getting started.
Thank you for choosing GameDriver for your Immersive Experience testing, and happy testing!