Moving to Unity for "non-game" applications

I’m part of an team that develops data visualisation, simulation for training and industrial control UIs internally for a large company, it mostly evolved over time from an amalgamation of overlapping projects. Most of our projects that cover the aforementioned topics are usually small but sometimes medium sized with a small number of developers, most of our work currently uses traditional tools and technologies (Visual Studio with WinForms, WPF etc.) but more and more projects demand higher complexity that would be more suited to a 3D engine (Eg: GIS, VR etc.).

We’re looking into game platforms for some of our future projects, starting with small applications like industrial control interfaces and eventually VR. None of us are actually game developers or have any real game development experience (in terms of tools), our experience in such areas is limited to specific product knowledge regarding certain simulation software we use, but we are all strong programmers. I expect a lot of what we would use Unity for is to integrate 3D elements into 2D user interfaces with rapid development being a key focus.

I’m wondering what experiences others out there have had when attempting the same thing we want to do, moving from a commercial and industrial software development environment and tools to an environment and tools more suited to gaming (Eg: Unity). I’m also interested in what roadblocks, limitations or hurdles you had to overcome when moving to Unity from said environments, technical or otherwise, and what sort of training you did.

Looking forward to any feedback!

I believe it has been done before, and there is nothing stopping you from using unity for non-game purposes. just keep in mind that as a game engine, it will still be running the game loop every frame and processing whatever logic it has to. so if its used as a regular app you will see more battery drain since its constantly updating. now if you are using it for 3d type stuff it makes perfect sense.

Unity and most game engines are heavily biased towards expensive visuals and the game loop. If these makes sense for you application then go for it.

Programming wise the main concepts you will need to understand to get started in Unity are the game loop and component based architecture. Also check out the reference for GameObject, Transform and MonoBehaviour.

There are plenty of users around who tend to do mostly non game stuff. @angrypenguin is one that might be able to shed more light on the process.

I’ve used or seen Unity used to build the following:

  • AR Marketing Apps
  • VR Sims
  • Multi-Screen Event Installations
  • Fancy Product catalogs for mobile devices
  • Interactive edutainment stations
  • Casino Games
  • Arch Viz
  • Military/Industrial Training Sims
  • Also, regular Video Games

Depending on your requirements, it’s an extremely flexible engine and it’s easy to rapidly prototype if you can get a handle on using the editor effectively. One of the biggest boons it has is the sheer variety of content on the Unity Asset store, allowing you to potentially grab working code or assets you might need in an area you’re unfamiliar with.

There’s multiple frameworks for using Unity with different programming paradigms. If you’re familiar with certain concepts like MVC or Dependency Injection, you may want to look into what’s available that will help your team get adjusted to working with it.

Mecanim animation + the new UI system was a godsend for my UI/UX contract work.

3 Likes

A couple of my most successful apps are non-games made in Unity.

Have you tried Ventuz? Basic ideas are the same as in Unity and you can integrate Unity as a renderer.