In early February, Unity engineers from Ads, Analytics, Cloud Build, QA and R&D combined forces in Austin, Texas for a hackweek with a mission to build great things.
Hackweeks are one of the ways we encourage creativity and innovation at Unity. In the past we’ve hacked on projects that resulted in real products for you to use (e.g., Heatmaps for Unity Analytics). This is time engineers get to spend experimenting on new technologies, mashing up different systems, and working directly alongside teammates with whom they don’t ordinarily interact.
So, how do hackweeks work?
- Weeks before the hackweek begins, all of us engineers brainstorm innovative, exciting project ideas. By the time this hackweek week started, we had almost fifty candidate projects.
- At our kick-off session, the engineer that contributed each idea presents it. Teams organically form around the most compelling projects.
- Hack. For a week.
Eleven ideas made it through this process to become hackweek projects.
- Unity Package Manager (UPM) – Are you an Asset Store developer tired of having to package all of your dependencies with your plugin, then dealing with conflicts when other plugins ship the same dependencies? Or are you a game dev tired of importing conflicting plugins that don’t play well together? Unity Package Manager (UPM) solves this by letting each plugin declare dependencies instead of shipping dependencies. UPM downloads the correct version of each dependency the Unity project needs, avoiding dependency clash. Even supports deeply nested dependency management.
- Asset Bundle and Content Update Service (ABACUS) – Having to deploy a new build just to update some asset bundles is inefficient. It takes time and makes your project less agile. ABACUS builds asset bundles through Unity Cloud Build, then hosts them. The developer can define rules allowing the game to dynamically fetch the correct bundles at runtime.
- WebGL Arcade – Last year we launched http://madewith.unity.com/, a platform for game devs to showcase their work made with Unity. The WebGL Arcade takes this idea further by creating a portal where you can upload your game’s demo to increase discoverability.
- Native AR for Unity – Currently to get AR running you need to install a toolkit. This project allows you to get marker tracking using only C#. And yes, this means it can even run in WebGL! Using simple and extensible APIs, devs can start including AR elements in their project in just a couple of minutes.
- Fast Track Puzzles – When your company makes a world-class game engine, finding new engineers to work on services (where we don’t, alas, touch a lot of engine code) is hard work. Fast Track Puzzles is a set of fun, mind-teasing puzzle games intended to attract top-notch services engineers to Unity. Along the way, it exposes the player to issues similar to those they’d face as an engineer working on any of Unity’s services. If we build it, will they come?
- Lightmap Baking in the Cloud – Currently global illumination baking is disabled in Unity Cloud Build. If you want lighting, you’ll need to bake locally and commit your updated lightmaps to source control before kicking off the build. This project allows you to enable Unity 5.X lightmap baking in Unity Cloud Build. The work the editor normally does would be distributed across a network of machines and performed in parallel. By leveraging a shared GI cache, subsequent builds can be much faster.
- Influencemaps – Last year Unity Analytics introduced heatmaps, which help you visualize where in space important events occur. For example, where in your game does the player kill the bad guys? Influencemaps fold heatmap data back into the runtime to make AIs smarter. By applying heatmap data at runtime and reweighting a NavMesh, AIs effectively learn to be «afraid» of spots where they often get killed and avoid them. You can even forego heatmaps and simply use bitmaps, allowing you to optimize your AI whenever you want without having to release a new binary.
- Log Processing with Logstash — The editor generates lots of logs. This project was an exploration of using the popular Logstash log parser on Unity logs directly to provide added meaning. Some of the improvements implemented included: dropping empty lines for cleaner output, extracting workspace sizes, and even inserting tags on events for later processing by other tools in a clean and simple fashion. We also explored some of the limitations and strengths of Logstash both in general and in our environment.
- Anomaly Detection – On the Analytics team we care about your game succeeding. This project prototyped the ability to detect data anomalies that might occur in your game. For example: sudden spikes, dips, level changes, trends and extreme values. These detectors track value changes over time and report when those values fall outside expected norms. They do not require ad hoc threshold tuning and their scores can be used to control false positive reporting. While not everyone is a data nerd, Anomaly Detection can explicitly point out parts of your data that just don’t “look right” so developers can respond to changes in a timely manner.
- 3D Internet – VR is kinda big right now. This project reinterprets the internet experience by taking the user into a 3D space with portals to explore several popular websites. Each site functions as its own 3D space, allowing a user to fly through YouTube videos, read the latest articles on reddit, or scan cat pictures on instagram.
When can you expect any of these projects to become actual Unity products? TBD. We’ll need to properly scope and plan each project to determine whether it would benefit our users and fit neatly into our roadmap. Of course we love feedback from our community to help decide which ones we should move forward with. So please comment here and let us know which projects excite you! Or if you have ideas you want worked on, we appreciate feedback on that front as well.
As always, all of our teams are growing and actively hiring. Want to participate in our future hackweeks? Join Unity Technologies! We’ve got many open positions here: http://unity3d.com/jobs