Search Unity

  1. Full schedule for #UniteBerlin is now available! Featuring talks on our roadmap, hands-on labs and much more! Check it out!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  4. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  5. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Unity for non-game app

Discussion in 'General Discussion' started by alibabu, Feb 4, 2014.

  1. alibabu

    alibabu

    Joined:
    Feb 4, 2014
    Posts:
    4
    Hi,

    I am considering using Unity for building a standard (not game) application. It is a rather simple B2B app (mostly listboxes and graphs) that should run in Windows Desktop and iPad.
    Usually we use HTML / CSS / Javascript + wrapper. Today I'm feeling adventurous... I have enough experience on Unity to know that, from a pure programming point of view, I can get a good result. However I'd rather have a confirmation from wise men and women here before starting...

    I've read a couple of posts here and it seems there is two main drawbacks :
    - battery drain, as game engines are not event-driven
    - gui development complexity - but, in my case, Ngui will be enough

    Do you have any experience / background / recommandation on developping non-game, professional app with Unity ?

    Thanks

    Al
     
    jpthek9 likes this.
  2. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,018
    It sounds to me like Unity isn't offering a whole lot in this situation, and the battery drain issue is going to get you a lot of negativity from your customers.

    Sure, you *can* write it this way, but why would you?
     
  3. Xaron

    Xaron

    Joined:
    Nov 15, 2012
    Posts:
    259
    I would avoid using Unity for a non-game app at all costs.
     
  4. alibabu

    alibabu

    Joined:
    Feb 4, 2014
    Posts:
    4
    @wccrawford:
    Well in truth, this is mainly about focusing on one technology. We like working with Unity and we would like doing more with it.
    For "standard" apps, this is an opportunity to add differents effects, user interactions, etc.

    @Xaron:
    Could you explain why?
     
    Last edited: Feb 4, 2014
  5. Xaron

    Xaron

    Joined:
    Nov 15, 2012
    Posts:
    259
    Sure, it's simply not done for that task. All the native UI stuff is missing. It's just an overkill to use Unity for non-game apps.
     
  6. sputnikbar

    sputnikbar

    Joined:
    Jan 3, 2013
    Posts:
    77
    Hi,

    "It's just an overkill to use Unity for non-game apps. "
    No.
    For an example, I've seen the application done in Unity for the Museum "Le Louvres-Lens" when I visited it.
    My kids used it very easyly : it rocks !
     
    bigyuma1217 likes this.
  7. banreaxe

    banreaxe

    Joined:
    Jan 5, 2012
    Posts:
    422
    if you get pro i think there is a way to cut out the parts of the engine you are not utilizing, but dont quote me on that.
    sounds like you should probably stick with what you've been doing for web stuff though, as this sounds like a web app, not a game app.
     
  8. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,611
    Not a good idea if your app does not "really" need any of the Unity features (like 3d views, animation, sound, etc) and even then Unity view could be embedded as just one view in native app.

    If you really want to do it then at least be prepared for problems with Apple. Sometimes their app reviewers reject apps that are only apps but don't give the user normal platform usability features and look (like you don't use native UI controls and views for the interface. Also if it looks like the app was made "cheaply" with a game game or other thing just to do easy cross-platform app they might reject it.
     
  9. Xaron

    Xaron

    Joined:
    Nov 15, 2012
    Posts:
    259
    Yes it is. That Museum app might be more like a game with own GUI and so on. Usually you want to create a native UI which IS possible of course with Unity but I would choose other toolkits for that purpose.
     
  10. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,832
    Nope, Unity is not.

    Of course a mostly 2D business app that relies heavily on native controls isn't usually a good fit, but I've seen and worked with Unity projects that in many ways are more technically challenging more than your standard game, yet aren't games.
     
  11. alibabu

    alibabu

    Joined:
    Feb 4, 2014
    Posts:
    4
    ok, thanks all.
    We have a Pro License and use NGUI. I will probably experiment it on a simple, low risk project. I still think this could great for stuff like transition or gui animation but I understand there is much testing to be done.

    Best regards,

    Al.
     
  12. Xaron

    Xaron

    Joined:
    Nov 15, 2012
    Posts:
    259
    Yes Unity is overkill. That's all I said. Of course it is possible to use Unity for business apps but I don't think it's a good idea.
     
  13. DallonF

    DallonF

    Joined:
    Nov 12, 2009
    Posts:
    620
    Yes, you can do it. But please don't. It's not a failing of Unity. It's a failing of any platform which claims you can write an app once for all mobile devices. It's a lie by its very nature. Mobile apps rely on a set of standard UI controls, and, more importantly, standard UI conventions which are different for each platform. As a result, apps for different platforms are different apps and no amount of code reuse can fix that.

    Note that I'm distinguishing apps from games here. Cross-platform game engines like Unity work brilliantly because games traditionally don't use native UI - in fact, games that do are typically perceived as low quality and lazily built. The opposite is true for mobile apps.
     
    jiangzhen likes this.
  14. casimps1

    casimps1

    Joined:
    Jul 28, 2012
    Posts:
    253
    Maybe I'm one of the few here, but I've been developing a non-game app in Unity for several months now and have been very happy with my decision.

    I was asking the same questions as the OP a while back and spent quite a bit of time researching other choices. If you're interested in the whole story of my personal experience here goes:

    First, here were my requirements for the app I was developing:
    • FREE
    • Cross-platform iOS and Android (including possible gamepad-driven Ouya build) (other platforms would be a bonus)
    • Gracefully handle different resolutions/aspect ratios
    • Must be able to do In-App Purchases
    • Drag-and-drop WYSIWYG UI designer (i.e. - not purely code-driven UI)
    • Ability to make calls to an arbitrary web service
    • Could store arbitrary files in the local file system
    • No online only requirement for dev - I knew a few frameworks that had an online IDE or online build process
    • Not quite required, but I really wanted to be able to test on PC w/o deploying to a device every time
    Quick comment on the cross-platform piece - some people will say that the best way to make an app for different platforms is to develop multiple times, going native in each platform. I'm one guy trying to build some apps to help pay my bills. I need to take all the shortcuts I can. So, I refused to consider using the Android SDK (even though I had built an app using it in the past and knew it somewhat), or learning Objective C to do native iOS dev. I was determined to develop ONCE.

    After a lot of research here are the options for free cross-platform frameworks I found:
    • Unity - C#
    • Xamarin - C#
    • Kivy - Python
    • Titanium Appcelerator - Javascript
    • Sencha Touch - Javascript web app framework (using Cordova/Phonegap to get native functionality and compile into a native app)
    • Enyo - Javascript web app framework (using Cordova/Phonegap to get native functionality and compile into a native app)
    Now, I had some biases going into this. I was biased toward Unity because I had spent the past 2 years working with it exclusively almost every day and knew it inside and out. I was also highly biased toward C#. I think it's a great language and is maybe the best thing Microsoft has ever made. I was also biased against Javascript. Just not a fan.

    My reservations about Unity were the battery drain, initial load time, package size, and the Unity splash (for non-Pro). I wasn't concerned about UI design because I knew the latest NGUI could handle everything I wanted it to do and more.

    As I continued to research and experiment with some of the other frameworks, here is why I eliminated each one:
    • Xamarin - limitation on size of compiled code in free version, no shared UI code (basically had to code UI twice), no easy IAP support on Android, no file I/O on Android
    • Kivy - no IDE/WYSYWIG for UI design, used OpenGL for rendering, seemed geared toward graphics heavy visualization type stuff, minimum Android APK size was 7 MB (not really any better than a minimum Unity APK). Seemed like no reason to use this over Unity.
    • Sencha Touch - would need separate HTML/CSS tool for UI design, Cordova had no real support for IAP, had the hardest time even getting a "Hello World" app going, required Ruby to be installed for some reason, had to run apps from a web server (no local testing), tested sample app on my Droid 4 and it was slower and less-responsive than Unity
    • Enyo - would need separate HTML/CSS tool for UI design, Cordova had no real support for IAP, I actually liked Enyo a lot but the lack of IAP killed it
    Titanium was actually a close second. It had the WYSIWYG IDE. Minimum Android APK size was 1.5 MB (compared to about 8 MB for Unity). It could handle file I/O and IAPs via modules. It truly compiled down to native (unlike other web apps that just used Cordova as a wrapper to give the illusion of native). But in the end it just didn't offer enough more than Unity could offer to make me pick it, especially since I already knew Unity. The IDE also seemed a little slow on machine and flaky (crashed a couple times). The load times on my Droid 4 were comparable to Unity. I really liked being able to debug Unity via Mono and I really disliked Javascript.

    So, I went with Unity and haven't looked back. The dev process has been painless. The community is great. The Asset Store is a lifesaver. Load time is only a second or two. Package size is large but not ridiculous. I figure most people won't notice or care. I don't see a battery drain issue. The app doesn't even register on my table of top things causing battery drain (Android OS and display are still by far the highest).

    I also get to reuse my code. I plan to continue making games and I can reuse some of the scripts I have created for this app.

    And for the record, I think native UI standards are overrated. When I made my app in the Android SDK a few years ago I went strictly native for UI design. I wanted my app to look consistent with others. The thing I realized much later was that consistency doesn't matter if nobody else is being consistent. If you look at any of the top apps on the Google Play you'll find that nearly all of them use their own custom widgets/UI rather than "standard" Android stuff. If anything, I noticed that the "pros" and big companies designed their own UIs and the hobbyist devs used the standard stuff. So, if anything, I feel like using the standard UI can have a negative connotation of looking amateurish. Anyway, I think the ultimate key is making sure your UI is clean, intuitive, and good-looking... and you don't need to go native to do that.

    Anyway, long long post, but I hope this helps someone!
     
    Last edited: Feb 26, 2014
  15. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
    I did many non game app with unity3D and i didn't find any problem.
    If your app has 3D contents i suggest to you to use Unity3D (i think that is stupid to use a 3D game engine for a 2D non game app and you can use Xamarin, phonegap or adobe air to do that)

    Some examples of serious app i did:



     
    mar-yam likes this.
  16. casimps1

    casimps1

    Joined:
    Jul 28, 2012
    Posts:
    253
    I disagree. It just depends on what you want to do and how much time you're willing to spend learning something new (assuming you know Unity but not these other tools).

    Like I mentioned in my post above, I considered Xamarin, but it didn't work out mainly because of Xamarin's code size limitations on the free version and lack of support for IAP and file I/O on Android. Phonegap/Cordova was better, but still didn't seem to have good support for IAPs, which was critical for me. I found some IAP plugins for an old version of Phonegap but I think they were deprecated or something. Regardless, I couldn't figure it out and I knew how to do it off the top of my head in Unity, so I went with Unity.
     
  17. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
    I assumed he doesn't have an unity3D pro license.
    Xamarin indie is 299$/ years and is much cheaper than Unity3D license
    (base +ios +android).
     
  18. yourHost

    yourHost

    Joined:
    Nov 25, 2013
    Posts:
    38
    Probably not for a B2B app. However, I think using Unity for non-game apps is pretty cool and definitely creative. Check out the post on Unity and Architecture for starters. There's other posts on the Unity blog about non-game apps as well.

    I think it's silly to just say that Unity should be used only for video games. There are a lot of other creative ways to use Unity.

    I talk about this topic some more in the latest Unity News podcast: http://bit.ly/1cz9qfC
     
    Ronin-Ra likes this.
  19. eskimojoe

    eskimojoe

    Joined:
    Jun 4, 2012
    Posts:
    1,442

    You eventually bump up to the $1899 per platform, per developer Xamarin if you are doing the same kind of serous work as in Unity. So your milage may vary.
     
  20. CodeMonke234

    CodeMonke234

    Joined:
    Oct 13, 2010
    Posts:
    181
    IMHO unity is excellent if you are developing an innovative rich ui - think coverflow or even the parallax in iOS 7 springboard....

    The naysayers here are naive - simply echoing the traditional mindset of native being superior to web...and that argument has many merits.

    But leveraging unity is significantly different than coding an html app.

    Unity could certainly be utilized to create some innovative mind blowing 3d interfaces....

    Stay hungry!
    Stay foolish!
     
  21. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
    Xamarin indie licence has the same feature as mono in unity3D + .NET 4.5 APIs and a better virtual machine.
    I only said that:
    x 3D app (game and serious app) -> use unity3D
    x 2D app (non game) ->use xamarin indie or phonegap or adobe air if you don't already have a unity3D pro license
     
  22. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,950
    Do you mean non-Graphical apps? Cause Unity is great for non-game apps with heavy graphics (see my sig for popular examples). It's the UI intensive stuff (listboxes, text fields, database work, ...) that'll get you in trouble. As much as I love Unity, If I were building a straight B2B app, I wouldn't use Unity.

    Gigi
     
    angrypenguin likes this.
  23. Marionette

    Marionette

    Joined:
    Feb 3, 2013
    Posts:
    349
    ultimately, if the tool works for you and does what you want, how you want it, who are we to judge?

    to be honest, i respect the folks trying to think outside of the box.

    shrug.
     
  24. casimps1

    casimps1

    Joined:
    Jul 28, 2012
    Posts:
    253
    Why do you say that?

    I'd agree with you if there were no 3rd-party alternatives and you had to build stuff in Unity's stock GUI system... but with packages like NGUI on the asset store, I haven't had any problems with that kind of stuff.
     
  25. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,471
    From the OP "I am considering using Unity for building a standard (not game) application. It is a rather simple B2B app (mostly listboxes and graphs) that should run in Windows Desktop and iPad."

    Unless the value proposition is "wow factor" 3D graphs then there is no reason to use Unity. Generally these apps require simple (albeit beautiful) UI's.

    All using Unity will do is increase development time and bloat your application size and loading time. Maybe if you only had Unity developers who were reluctant to upskill, and even that I would look at a new hire unless there was a major graphical component.

    There are free and paid cross platform charting libraries which make beautiful animated charts easy to create (http://www.softwarefx.com/chartfx/ios/). And there are a hundred and one data access frameworks which make the backend side of things a breeze.
     
  26. casimps1

    casimps1

    Joined:
    Jul 28, 2012
    Posts:
    253
    Glad that post helped!

    I'm definitely no optimization expert, but I'd be happy to try to give a little advice.
     
  27. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,048
    I think doing non-game apps in Unity is really ideal IF the business app is media intensive and can benefit from 3D or lots of custom animation in some way.

    Like doing an interactive story book in Unity would be way better. Doing some kind of 'car configurator' even if it's 2D sprites, I think would be superior in Unity. Doing some kind of like product brochure, where it could benefit from lots of cool animations, text flying around or something, would be better in unity. Anything that could be made more engaging through rich media that unity makes easier to do would be what you'd want to go to unity for.

    However if what you want to use unity for is just replicate list views and flat 2D page layouts of native UI frameworks. Then no Unity is not better. If all the functionality you need already readily exists in a native framework just use that. Only go to unity when you need something additional that unity allows you to do easier.
     
  28. Radagan

    Radagan

    Joined:
    Apr 23, 2014
    Posts:
    1
    @casimps1, Thank you for taking the time to give a through and objective response. I'm evaluating using Unity Pro for a business app that has heavy requirements for visualization. A lot of the app is standard UI, which is my concern, but when it's not standard the requirements are very much along the lines of a game engine.
     
  29. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    10,477
    Functionally it'll do everything you need. It's about efficiency. A decent windowing toolkit for non-3D apps only updates the things that are changing, where game engines typically render everything at 30 or 60 FPS. In other words, things in 3D game engines typically suck far more system resource (read: battery power) than things written in standard application frameworks.

    Game engines are designed for when dynamic stuff is happening all of the time, application frameworks usually aren't.
     
  30. Mike-Geig

    Mike-Geig

    Unity Technologies

    Joined:
    Aug 16, 2013
    Posts:
    146
    To be fair, I have only read the first post or two in this thread, but I figured I'd chime in.

    I have been seeing a lot of non-gaming dev done on the Unity platform recently. It is actually quite popular for a lot of the cross platform simplicity. That being said, I have also seen people make non-graphical apps with Unity, and I'm not so sure that is worth it.

    But yes, making non-gaming apps with Unity is viable and a lot of people do it. Obviously, it's not what Unity was made for, but if you do it, you will be in good company.
     
  31. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,549

    I gotta go with your opinion on this. There are graphs and there are whiz bang growing perspective changing graphs that bounce into place and explode into dollar signs when growing out of range. Most of the contract work I do in Unity is not games. I actually prefer them because they don't fart out and not pay what's owed like the wannabe game rockstar crowd does. For the OP he can leverage the engines graphics, sound and physics and make the app tell a tale of stats instead of just presenting 2D boring graph images with text.
     
  32. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,549
    Which puts me to wondering if you dial down the time scale so the framerate is near zero and then dial it up for transitions if this has any effect on what you are speaking about with energy consumption. Don't apps have to constantly check and redraw as well?

    -R
     
  33. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    10,477
    That'd be device and OS specific, so I'm not sure, but at the very least they're reducing workload by only updating the buffers when things are changing. Blitting a buffer to the screen, which probably is still happening constantly, is only a very small part of the overall workload.

    Also, turning down the time scale doesn't alter the frame rate. You can alter the frame rate directly if that's what you want, but that also has an effect on responsiveness. "Near zero" framerate in a game engine also means "near zero" responsiveness.
     
  34. S3dition

    S3dition

    Joined:
    Jan 6, 2013
    Posts:
    249
    I've made several non-game apps using Unity and NGUI, and they work perfectly fine. If branding is an issue, you'll want to purchase the pro versions of course, but there is nothing wrong with doing it this way.

    Here is an example of a GUI I was working on (it's not a game, just a reference APP) using NGUI. Note that it's unfinished here:



    I also used it to make a kiosk app that was really flashy and responsive. Tweening makes it easy to produce a very polished, professional, and impressive looking app with limited art skills.
     
    ramand likes this.
  35. kickassqc

    kickassqc

    Joined:
    Jul 7, 2015
    Posts:
    2

    Waw ;) you help me 1 years after you post!
     
  36. viniciuscury

    viniciuscury

    Joined:
    Dec 10, 2013
    Posts:
    2
    Hi guys,

    I have founded a startup for few months ago, a SaaS, we deliver quality and logistics control for construction waste (and general waste) disposal. We have a real small team and we are always making tests.

    We are going to test a track and collect app for the trucks that supply our clients. And as it is a test, I´m a Unity hobbist and we don´t want to diverge focus from our web development (where things really matter now). We probably gonna make the test version in Unity for Android.
    It´s basically a menu app that checks and send data to a webservice. The apk will be directly installed on our testers mobile.
    We are pretty sure that if the test succeeds we will have to go native to scale. I´ve just built the first version with only a few UI features and the apk file is 18mb, uncompressed goes to 35mb. While driver´s side e-hailing apps (that´s the most similar app I can use an example) are around 8mb.

    So, I think Unity can be pretty usefull if you know how to use, need to make a real fast MVP or Test and don´t want to spend extra money on it. And if we could decrease the app size to something around 12mb I would stay with Unity instead go native for a while. Battery issues aren´t a problem in this case since their mobiles will be plugged to the truck electric system.
     
  37. emills

    emills

    Joined:
    Oct 4, 2015
    Posts:
    1
    If you know C# and you are just getting your feet wet in the mobile app world, Unity for non-game development is the best option IMO. There is a small learning curve with Unity. But that's OK learn and learn. It's a great IDE and....IT"S FREE! :)

    Here are the two options I looked at.

    Xamarin
    $25/month and you still can't use Visual Studio
    Sorry, but I'm not going to rack up $25 a month while I'm developing an app that may or not may not be successful.

    Unity Personal Edition
    Free for your first $100k in sales and you can use Visual Studio
    Lots of non-game kits to help. And no risk.
     
  38. dougdodd

    dougdodd

    Joined:
    Apr 18, 2014
    Posts:
    31

    Hey casimps,
    thank you for your reply.
    I am looking at building some non-game apps too. I'm an avid game developer very familiar with Unity. We're on the same page (your requirements). Do you have any further suggestions for me?
     
  39. Nsingh13

    Nsingh13

    Joined:
    Dec 17, 2014
    Posts:
    9
    Thanks for this post! Made my decision a whole lot easier. Especially since the Asset Store does have plugins to connect to mySql databases or even import native android UI and such :)
     
  40. JustCallMeJ

    JustCallMeJ

    Joined:
    Apr 28, 2017
    Posts:
    1
    For anyone reading this in 2017, Xamarin is free now and it's been so a for like a couple o' years).
    :)
     
  41. mar-yam

    mar-yam

    Joined:
    Jan 14, 2018
    Posts:
    2
    what if app contains both like normal android app features and unity related VR games than whats the option ?? which platform can b used for this type of app?
     
  42. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,549
    Use Unity and mimic the Android system controls.
     
  43. Ellernate

    Ellernate

    Joined:
    Aug 25, 2017
    Posts:
    62
    Was intrigued with this post awhile back and have been experimenting with creating an efficient UI app in my free time.

    Anyways, reviving because there is some relatively new information that makes this more viable. The main issue with this, besides the Canvas performance, has been the game loop. Unlike a regular ui app, Unity is constantly checking the particle system, updating physics, updating analytics, updating legacy components etc. Stuff you don't use in a simple ui app. This all adds up.

    However, in 2018 Unity added the PlayerLoop and related classes, which give you some control over what gets done under the hood. Now you can essentially disable all of the things you aren't using like the physics system. From some experimenting I was able to increase performance a bit. I'm relatively new to this, but it would be interesting if you could decouple the main loop and rendering, such as only sending updates to the gpu if something has changed rather than at the end of every frame (PresentAfterDraw), using callbacks or something. I imagine that this would be ideal for UI apps.

    Anyways, just thought I'd share an update on this