Search Unity

Making a Simple Business app with Unity. (Would it be bulky?)

Discussion in 'General Discussion' started by ExCx, Jul 8, 2013.

  1. ExCx

    ExCx

    Joined:
    Feb 7, 2013
    Posts:
    7
    Hi, I'm currently working in a 2D animation/gaming company and I've been using Unity (w. 2d Toolkit) for half a year now. So I'm pretty much experienced on making 2d apps with it.

    Last day, a friend of mine found me a freelance job for extra cash. And it's just a simple database checking software, getting, setting, searching values and such. So there will be only UI elements (textboxes, tabs and buttons). The software will be primarily for Android tablets (and also for iPad in the future).

    So, what I'm asking you guys is, would it be plausible to make this kind of app on Unity? I mean, it is a 3D game engine after all. Should I expect it to be slow and bulky for such a simple app? I'm so got used to this engine, I could do this task easily in a week. I don't want to learn and use some other boring app making tool. Also I'm using C# and all Cross-platform C# using IDE's I found have expensive full version prices and crippling free version limitations.
     
  2. DexRobinson

    DexRobinson

    Joined:
    Jul 26, 2011
    Posts:
    594
    Yes it is going to be bulky...well more than a standard 2D engine. Like you said you can get the product done quickly in Unity so that will payoff and if your client is demanding something like 5-10 seconds start and load time, it shouldn't be that huge of a problem. Plus with Unity you can add in cool 3D features or maybe push that you are using a 3D engine and you can do more unique features that wouldn't be possible using a 2D framework...for extra $$$ of course ;). Overall I would say to use Unity, but yes there are faster options. Also Unity is multi platform so you can explain that to your client as well to get an android and iOS version out quickly.
     
  3. lmbarns

    lmbarns

    Joined:
    Jul 14, 2011
    Posts:
    1,628
    It's a piece of cake to work with databases in Unity. Grab the "server side highscores" off the wiki and hack it up. You can make a 2d interface that simply passes parameters to php scripts on your server, which communicates with the db and you can return the info back to Unity.

    For a standalone app Unity would be great, can port to diff platforms and have a nice standalone app...
     
    duartejuca likes this.
  4. Pelajesh

    Pelajesh

    Joined:
    Dec 7, 2009
    Posts:
    363
    I have thought about the same thing, and I here are the pros and cons I came up with:
    Pros:
    +Easy multiplatform functionality
    +You already know the software - will be quick to make
    +Possibility to add 3D content (tho probably not needed)

    Cons:
    -Long load times (5-10 sec load time, whereas a simple text app can be nearly instant)
    -Big file size (even tho you probably won't use the 3D functionality it can't be turned off and thus even an empty app takes some space)
     
  5. Tanel

    Tanel

    Joined:
    Aug 31, 2011
    Posts:
    508
    I'd probably look into phonegap or other similar solutions for stuff like this. But if you estimate a week of development for the app, why not just do a few tests with Unity and see for yourself how much of a problem its overhead is?
     
  6. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    More cons:
    - Battery drain
    - Non-native UI
    - Increased memory usage
    - Will need to use plugins to get to any native functionality

    And one more - it won't seem particularly professional. Sure you might be able to use a hammer to get a screw into a hole, but is it the best way to do the job?

    Edit, June 2023: A few weeks shy of a decade after making this post, someone just 'liked' it. While the above still generally stands, specifics have changed in over the last 10 years, so please look up current info that's specific to your use case.
     
    Last edited: Jun 13, 2023
  7. Cartographer

    Cartographer

    Joined:
    Mar 19, 2013
    Posts:
    78
    I like that saying. Going to write that down somewhere...

    I myself wouldnt use unity for what you want to do, why not look into the google Android SDK?
    I had a mess around with it once, and it didnt seem too dificult to create simple apps with it.
    Of course you would have to lern more things to be able to use it...
     
    CrandellWS likes this.
  8. eskimojoe

    eskimojoe

    Joined:
    Jun 4, 2012
    Posts:
    1,440
    Visual Studio Express ASP.NET for website, Xamarin Starter for Mac, Android and iOS development.
     
  9. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    From the customers point of view the 3 last is not something they will notice anyway, but the increased battery drain might be a problem for the portable platforms. As long as the customer is happy with your software the focus should be in using a tool that lets you develop efficiently to increase your throughput.
     
  10. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    My question - why do you want to use a game engine to build a business app? Sure, you may have the toolset already, but just standard windows forms - better still ones that can be made in Visual Studio - are a tried-and-true solution, where the problem set is well-known, well-understood, and where most of the problems have already been solved somewhere, at least once.

    In my opinion, just building a winforms app in Visual Studio to check your database would be a much easier solution to your client's problem.
     
  11. MarkrosoftGames

    MarkrosoftGames

    Joined:
    Jan 5, 2012
    Posts:
    442
    it sounds like you should just make it as a web page.
     
  12. mada

    mada

    Joined:
    Jul 2, 2012
    Posts:
    53
    You shouldn't have accepted the job. It sounds like a simple web page.
     
  13. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    The big problem with using Unity for any kind of business app type thing is that when entering text into GUI.TextFields you can't edit the text directly in the textbox. For any kind of form that has a bunch of textboxes and things to interact with, you need to do it in UIKit.
     
  14. DougMcFarlane

    DougMcFarlane

    Joined:
    Apr 25, 2009
    Posts:
    197
    I wish Unity would offer built in native UI support. This would solve most of the above issues. In the editor, it can use whichever build settings you have to display a relevant 'looking' UI, or just a generic UI for all builds to be replaced upon publishing.

    I understand of course this isn't Unity's target market. (Don't bite my head off!)
    This is just a wish list to enable you to use Unity for all multi-platform development.

    Hey Unity, want to increase your market share? You can charge extra for this feature if you want! Ha, David, are you listening?
     
    Shizola likes this.
  15. ExCx

    ExCx

    Joined:
    Feb 7, 2013
    Posts:
    7
    Thanks for the feedback people. I think I got the point now.

    Ok, let me put it like that. This is not a "job" in the usual sense. It is kind of a project my friend personally created and aimed at the governmental institutions, town halls, state hospitals, etc.. Let's say, a new system for organizing bureau inventory. The thing must be mobile, because organizing stuff is a mobile work (they get barcode and picture of the inventory, etc). They're still using stone age handheld terminals for it. I saw the machine and the program, they are both slow as hell. Most of the time you find yourself looking at a hourglass icon in a 256 color 640x480 screen. Also the database is not central, they are using Excel tables for it (yea lol). So, it won't be a big issue to have a 2 sec waiting time. These guys are all +40 aged clerks and bureucrats. Tablet technology alone is like a sorcery to them. So, I don't think they would even notice or care about small issues.

    This must be for Android or iPad or both. So, I think I'll make it on Unity. Xamarin is a popular tool, but it's free limitations is really annoying and the actual issue with me is the WYSIWYG interface that Unity offers, I'm simply confused without it. I'm aware that it's not professional, but well I'm not a pro programmer either. And I must use this opportunity as quick as possible.

    So okay, I will make this on Unity. Now, the question is: Is Unity's own UI gadgets are enough for this job? Or is there some extra assets that I can use? Someone wrote about a textbox problem, can you explain it please? Thanks.
     
  16. mada

    mada

    Joined:
    Jul 2, 2012
    Posts:
    53
    It sounds like you already knew the answer to your question.
     
  17. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    Please refer to the bolded sentence - as Mada is suggesting, a web app will do just fine for this (you can even create a shortcut from the app menu for a web app, we've done it for something I'm working on at my day job). I honestly don't understand - still - why you want to use a game engine to build a business app. Perhaps I am merely missing the point. I look forward to your elucidations.

    As far as technical limitations go, a web app based even on an MVC architecture would be vastly superior to building some distributed Unity app, not only for security considerations but also for data assurance - with a central server that knows how to control the data, you can have far better control over concurrency, levels of access, and other necessary aspects for building a medical/government application.

    As far as legal concerns go, a distributed Unity app - you still haven't elaborated on what you'll do about the Excel database problem - is a horrible idea. Even for warehouse control, in the medical and government industries, not all users should be privvy to all information in most circumstances. Assuming that you're not providing users the ability to order against the inventory your app would be managing, you would want to hook into some kind of Employee database at the very least to ensure that even if a device is physically compromised, that an attacker still would have a very difficult time accessing the data and obtaining information that could be harmful.

    If you refer to the second bolded part, I would like to tell you here and now that I am a career programmer - I work with MVC 4, .NET 4, CSS3, JavaScript + JQuery, and HTML5 on a daily basis (I'm trying not to think about the few ASP.NET projects I touch; we don't talk about those.) I am not saying 'you can't do it', I'm saying that there are very specific technical and legal reasons that you totally shouldn't do it this way. Unity is simply not the right tool for this job, and these established technologies that already solve the problem set you and your friend are addressing will be a vast upgrade to ancient terminals, just as you intend.

    If the problem is having to learn new languages, concepts, and solutions to existing problems, I honestly don't know what to tell you. Perhaps taking this failure now, and after that the time to learn about what's out there for business applications, your next venture would be more successful.

    EDIT: Thanks, eskimojoe, I knew I was leaving out a technology or two!
     
    Last edited: Jul 10, 2013
  18. eskimojoe

    eskimojoe

    Joined:
    Jun 4, 2012
    Posts:
    1,440
    jQuery* + ASP.NET MVC4* + Visual Studio T4 templates* to generate Add / Edit / Delete / Grid FTW :D



    * free
     
  19. XGundam05

    XGundam05

    Joined:
    Mar 29, 2012
    Posts:
    473
    @ExCx, Asvarduil is right. Also think about the target devices, are they going to have powerful devices that can handle Unity's GUI system? Because Unity's built-in GUI system, from all reports, can be quite abysmal on mobile. Learning web development with MVC 3/4 and .NET is quite simple, especially if you already know C# from using Unity (albeit .NET 4 is going to have some additional functionality).

    +1, I had to take a VB.Net winform and turn into an ASP.NET application once -.- Most painful experience of my programming life.
     
  20. Pelajesh

    Pelajesh

    Joined:
    Dec 7, 2009
    Posts:
    363
    knowing that the target devices are really slow is enough of a reason not to use Unity.
     
  21. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    Ok, I'm going to break my own rule just this once and talk about it.

    What makes ASP.NET a poor choice is the fact that your code is ugly and unwieldy. Your server-side markup will be filled with attributes of all kinds, you'll have to use user controls to make an even bearable user experience, and even that is quite limited. The API is equally as limited; in one of the projects I've seen, an effort is made to circumvent that by creating a base class that exposes common properties (a good approach even outside of web development, when you have common parts of something), but even then, MVC does exactly that way better...could be because MVC is sort of built on top of the ASP.NET stack to a limited extent, could be because it's just better-designed.

    Thank goodness MVC has arisen to remedy most of those issues and give a nice architecture for both the server and client to work with. The fact that it works well with more modern JavaScript libraries like Knockout and JQuery is also helpful.

    Back in on-topic land, I'm not sure if there's grounds to close this discussion or not. While the OP seems sincere, this whole idea seems quite bizarre and like a failure waiting to happen. Of course, I honestly don't feel the OP to be trolling, at least on purpose - they seem genuinely, and horribly, poorly-informed about the choice of tools to use for a business app. But, this is so absurd, I can't quite discount the possibility of Master Trolldom, either. I just don't know.
     
  22. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    It's not an absurd idea, IMHO. I don't know, creating something quickly in C# in a tool you know and that offers cross-platform compatibility is nothing to sneeze at. I don't see how diving into a bunch of JavaScript-based web stuff is somehow automatically a superior approach.
     
  23. DougMcFarlane

    DougMcFarlane

    Joined:
    Apr 25, 2009
    Posts:
    197
    I agree with Steve. Sometimes the right tool for the job isn't the right tool for the job.
    Personally (also a 'career programmer'), I would choose a different tool. I like the web approach the best.

    The OP stated that this is a one time opportunity, and has very simple requirements.
    Do it in Unity, get it done fast, and using a tool you're familiar with (which helps for future support).
    Your runtime will be bloated, agreed, and understood by the OP.
    Your runtime will be slower, more prone to bugs, etc.
    The customer shouldn't complain, as it sounds like a great upgrade from where they are now.
    As long as the OP understands this, I don't see a problem.

    And if you are so inclined, start learning these new tools. The next time (if it happens) you may reconsider which tool to use.
     
  24. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    Ok, I got carried away - sorry about that folks. As I said, I don't think the OP is trolling.

    Seriously, though, I think if you want to create a revolutionary business app that makes medicine and government function better, do it. The reason I keep on about the tools is they do matter, and there will be impacts in terms of security, maintenance, and performance down the road. Even if you're not a pro programmer, I still think you have the right to at least know that there's a better path out there. Still, your app, your party, thus your decision.

    Whatever road you take, I hope it pays off and your one big chance proves to be big enough. Good luck! And, if Unity proves too tough, there's always MVC 4...

    @SteveTack - First, it's not fully JavaScript-based. There's a lot of C# that goes into an MVC web project; in fact, that's where your data-access, business, and checking layers should live. That way, the JavaScript only has to worry about the behavior of your front-end, which your CSS (or LESS, if you so choose) alters to be visually appealing.

    Second, I claim the MVC approach to be better, because other people have already solved these exact same problems before. For a game, I feel experimenting to be fine, and a great way to potentially push the boundaries of what our industry does; if you can figure out a way to get Unity to run on something crazy like a Raspberry Pi, I say go for it, I'd be anxious to see the results. If you figure out an economic way to implement a neural network (and, no, I'm not talking perceptrons) for AI, again - great.

    When you start talking business - especially important stuff like government or medicine, you may have to do some experimentation depending on some specific problem domain; that's a given. But, I doubt this will turn out well for the OP because as far as I am aware, few others if anyone has come at business software development from Unity, which sports tools presumably not suited to doing the kinds of massive operations that government and medicine need to do. It's not that Unity can't, it's just that it would be faster and more reliable for the OP to take other routes; they could be hitting StackOverflow quite a bit, but that's not a sign of weakness, that means you're trying to grow and evolve better software techniques.

    Whatever the OP chooses to do with the client, there's still scalability, concurrency, and security problems to be addressed at the server layer; the client will be a pretty simple matter to get taken care of. Where the real engineering tends to take place in this situation is the server, and I truly wish the OP luck with that part, given the info they have given us.

    I didn't originally intend for that kind of response, but having to do this sort of work as my day job, I don't think it's helpful to lead a young developer astray with unproven technologies that may well fail, and cause harm to that developer's reputation. Sure, the OP will always be cool with us for trying to solve a business problem with a game engine, but it could have more serious repercussions for them, or worse, convince other developers that you can just throw a game engine at anything, and that's a perfectly good substitute for established technologies that are used the world over. Interesting though this is, my professional opinion is that this thread is at least a touch dangerous.

    Hence, I will say no more, and wish the OP luck. But please, at least consider my warnings. I don't forsee this going as glowingly as the OP speaks of, and ultimately the OP will reap whatever consequences come of this attempt.
     
    Last edited: Jul 11, 2013
  25. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Sure, but in this case it's only the pseudo-"right tool" because the developer lacks the experience and/or confidence to properly evaluate other potential tools and solutions. To me this whole thing is being done backwards, because the question being asked is "Can I shoehorn this solution onto this problem?" rather than "What is the best solution to this problem?"

    Yes, but...

    The last three might not bother the customer, but if the developer here wants to avoid manual cross-platform handling then one of them kind of shoots them in the foot if native functionality is required, and another could be a significant issue if it needs to operate on low-spec devices. And if native stuff isn't required then a much simpler, lighter and more flexible solution has already been suggested by at least two separate people.
     
    Last edited: Jul 11, 2013
  26. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    The abysmalness of OnGUI on mobile is greatly exaggerated, as far as performance goes anyway. A little while ago I did a sort of "business-type" app for mobile using Unity, because that was the fastest way for me to get it done, however it was for my own use only and I wouldn't suggest that anyone do this professionally. It uses OnGUI heavily and performs great on my iPod touch 5th gen, although I'm sure the battery usage is quite a bit higher than it should be, since an immediate mode GUI system is fairly absurd for that sort of thing. I think a lot of received wisdom regarding Unity on mobile comes mostly from the original iPhone, which really doesn't apply at all anymore since it's hopelessly obsolete these days, not to mention the OnGUI system was rewritten in C++ with Unity 4.

    --Eric
     
  27. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    In 3.x we wrote a game where the GUI was initially prototyped in OnGUI, and we ended up keeping it that way because performance was actually not a problem. That game ended up working on an iPod 4, too, and while there were some challenges getting it down to that (because it was originally iPad 2+ only) the GUI was never touched as a part of that process.

    Having said that, it was a pretty lightweight GUI, with only a few dozen widgets.
     
  28. ExCx

    ExCx

    Joined:
    Feb 7, 2013
    Posts:
    7
    Wow thanks for the deep discussion going on here guys. I'm enlightened with each post.

    @Asvarduil OK man, you got me now. Especially I'm concerned about about the legal issues, because I'm totally clueless about it. And yeah, it is just "wrong" on many levels, I get it now.

    Good thing is, I don't actually have a deadline on this, we can introduce the project whenever we want. I would eagerly learn a new IDE but, I personally don't have enough time in my hand to pursue for a new language at my home alone. I'm working on a part time job (using Unity) while studying at the university. So, show me the path guys. These are the stuff I know: C#, .NET, HTML5, CSS, Lua and a little bit of PHP and VB. Yeah, the missing thing here is Javascript ( jQuery), have never been into it, I actually can edit it by looking at code pieces and stuff. But at times I'm really lost in the notation. So I can't see it as an option (if it isn't the only one).

    So, what may I use other than Unity? Like I said the device will be an Android based tablet (or iPad in the future). So, it will be more than enough to carry a simple app like this. The tablets are actually the part of the project (it will be sold in bulks by the other guy).

    What are my options then? Is there a good, visual, WYSIWYG kind of IDE out there that I can use, which also let's me do this kind of work without annoying limitations on free version (after I made the app, it won't be a big deal to get the full version -they'll pay it for us-). And could I get to work with my beloved language C#? I tried googling this MVC 4 thing you talked about and whole search page is full of the word "ASP" so I just freaked out and clicked the x that instant :p
     
  29. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,821
    @ExCx: Here is a great intro to MVC 4. They walk you through the architecture pretty much step by step, complete with adding data access layers, the whole nine yards. It should be enough to get you started and expose you to the basic ideas driving the architecture (which, aren't too tough. Pretty much, MVC enforces separation of concerns by separating things into layers: view is presentation, controller is routing, and models relate to storage, transformations, and operations on data. In many models, people elect to call 'repositories', which implement the data access side of things. But, I'll leave it to you to discover, and offer what help I can.)

    Still, MVC is a very server-centric approach, and I strongly advocate it for this one, because that's what I see your primary problem being, based on your description. In theory, if you're adamant about using Unity (after all, business types do love pretty pictures...), you could set up the Controller to have a bunch of exposed AJAX methods, and pass JSON blobs back and forth from your Unity clients to the server (ideally, the models lying underneath would strongly encrypt sensitive data.) But, that would be removing the Views from the equation. Because Razor markup is so versatile, it would actually be more labor for you to be building Unity-side code than just to throw some HTML beefed up with Razor model references (and, as you mention, HTML 5 is one of the languages already in your toolkit!)

    I say, start with a small prototype based on the MVC architecture first, probably just a single screen (you'll ideally have a View, Controller, Model, and Repository by the end of it, but the more I think about it, there are some intriguing possibilities with a Unity client...) Surely that small prototype would be enough to convince the industries you're targeting that A) you're serious, B) you produce results, and C) your take will help them solve their problems in a pretty way.

    People love pretty pictures!

    Addendum:
    JQuery is presented as this baby-eating beast, but it really boils down to a way of using CSS selectors to 'get' elements on a page, and as an event mechanism. I'm looking for a good, simplified tutorial without all the huff, puff, and fluff that is usually stated as surrounding it. I may even write my own if there is no such tutorial.

    Razor Markup isn't at all scary - it's how you inject server-side C# into some HTML. It looks like this:
    Code (csharp):
    1. <span id='some-id'>@Model.SomeProperty</span>
    ...to use control structures...

    Code (csharp):
    1. <tbody>
    2.   @foreach(var current in listing)
    3.   {
    4.     <tr><td>current.Title</td><td>current.SomeValue</td></tr>
    5.   }
    6. </tbody>
     
    Last edited: Jul 11, 2013
  30. XGundam05

    XGundam05

    Joined:
    Mar 29, 2012
    Posts:
    473
    I haven't actually used it myself (tablet was recently bricked by Accuweather), so I was going off what I've seen. Thanks for clarifying though, as it makes me a lot less leery about using it.

    @ExCx, jsFiddle is a good place to mess around with different Javascript frameworks such as jQuery. And the w3 Schools Javascript Tutorial is a good place to start with for plain Javascript. Stackoverflow and the jQuery Api docs will be your best friends through this process as well. Most of the questions you'll run into have probably already been asked and answered over at SO ;)
     
  31. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    Will you have a UI? That is where you will struggle. I understand the desire to use Unity - it's doable and developing the UI will crush you.

    Gigi
     
  32. Shbli

    Shbli

    Joined:
    Jan 28, 2014
    Posts:
    126
    There are lots of options out there for multi platform app development, that incldues:

    - PhoneGap
    - Xamrin
    - Qt SDK (That my preferred option, cause it gives native performance everywhere)
     
  33. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    Use LIVECODE. You can "code" in simple english. Its very easy to learn, free and multi platform.

    http://livecode.com
     
  34. Roderyk

    Roderyk

    Joined:
    Mar 5, 2015
    Posts:
    75
    You could try sencha touch (http://www.sencha.com/products/touch/). It's free for commercial apps, and with a plugin you can build the app to android, ios, and others.

    You can download sencha architect too, to build the GUI; you can use a trial for 30 days, and create new users when that time end. It's mainly javascript.
     
  35. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,199
    This thread is almost two years old. :p
     
    bigdaddy likes this.
  36. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
  37. Shbli

    Shbli

    Joined:
    Jan 28, 2014
    Posts:
    126
    Sorry guys I found that thread on Google I guess and replied right away!

     
  38. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    no prob :) its good that people try to help
     
  39. Correalf

    Correalf

    Joined:
    Jun 13, 2015
    Posts:
    2
    The most important piece of deciding on an IDE and programming language when starting a new project is the community support. After all, if you're not coding for the reader, you're not doing a good job. There are hundreds of documents on best practices, thousands of people willing to collaborate, and millions of repos in C# and Java that are open sources. I think Unity is a brilliant choice for this.
     
  40. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,199
    Have you actually used Unity for this purpose?
     
    zombiegorilla likes this.
  41. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Using a hammer for a screwdriver is rarely a good idea, no matter how good the community support for the hammer is. Unity is not a brilliant choice for a standard business app, for reasons already clearly explained. It's an excellent choice for games and "game-like" apps (simulations etc.).

    --Eric
     
  42. brandoncluff

    brandoncluff

    Joined:
    Jan 23, 2016
    Posts:
    4
    Bump:

    I think a few things have changed since 2013-2015.

    I'm in a unique position to create a business app for my current employer and I would like to do so in Unity. I have searched, but can't find too many resources on making non-game apps with Unity -- are there resources anyone can point me toward?

    I would like to disable all non-essential features in the engine (such as 3D, physics, lighting, etc) as the primary functionality will be serving images and videos. I'd like to make the app as small, light, and battery efficient as possible. I'm not even completely sure what features can or cannot be disabled, but I would like to cut out pretty much everything but the 2D UI.

    I know that there are better tools for doing this type of app, but I want to attempt it with Unity for the professional experience.
     
  43. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    The unity UI is in 3D, and in some cases uses physics. You can certainly not use any advanced lighting, but disabling that stuff isn't really on option, just not using it is the method. You can get is running fairly efficient for those purposes, but it wouldn't more efficient that using native or something built specifically for apps of that nature.
     
  44. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847

    You're probably better off using something other than Unity. As already mentioned, you pretty much can't "disable" features, just not use them, but they are still in your build and may still be using memory and a bit of CPU.

    Additionally, Unity doesn't implement every API available on mobile platforms. Unity only implements what they see as of interest to game developers. Depending on your app you may need to implement native plugins to do things that games are unlikely to need to do.

    https://docs.unity3d.com/Manual/PluginsForIOS.html
    https://docs.unity3d.com/Manual/PluginsForAndroid.html
     
    Ryiah, Kiwasi and zombiegorilla like this.
  45. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Trying my hardest to put aside my default reaction of "this is the wrong tool for the job"... if these are your criteria then what makes Unity a good choice?

    Unity are working on shrinking build sizes, but as far as I know there's nothing major completed in that area yet. It involves running a full 3D engine when all you seem to want is images and video, so it's not what I'd call "light" or "battery efficient" in that context.

    Have you looked at alternatives? If you're looking to broaden your "professional experience" in this area then would you not get greater benefit from learning tools designed for this kind of application?

    I'm just struggling to see any reason for using Unity for this kind of thing other than existing familiarity allowing you to get started more quickly (and thus, for a trivial project, perhaps also finished more quickly).
     
    Joe-Censored and Ryiah like this.
  46. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Part of being professional is using the best tool for the job. I've sent companies packing because they insisted on using the wrong tool set for the job.

    You can use unity for this. But you won't meet your targets. More specific thoughts follow:

    Its not possible to turn off 3D. Unity is 3D. Even if you only put in 2D stuff, Unity is going to render it in 3D.

    This one you can actually cut out. Set the right code stripping level, don't touch the physics engine and Unity won't include any physics code in your build.

    Unsure on this one. I'm pretty sure if you only use simple shaders in your build that nothing else will be included. But the graphics folk might give you a better idea.

    Unity is built around a game loop. Game loops make it really hard to be battery efficient. Your app is going to render at 30 fps, even when nothing on screen changes.

    This Unity can do well. Displaying images downloaded from the web is a piece of cake.

    This is going to be much harder. I honestly haven't checked lately, but Unity's video renderer used to be very buggy. And its not built for streaming videos at all, requiring you to load the entire video first.

    You might be able to make this happen. But it will be a lot of work. And you will end up fighting the engine the whole way down.
     
    KAYUMIY, pippo_unity and Joe-Censored like this.
  47. king_opping

    king_opping

    Joined:
    Jul 28, 2017
    Posts:
    1
    wow im suprised this discussion still alive. :D

    kiwasi make it clearer, thank you.
     
  48. Raeion

    Raeion

    Joined:
    Jul 5, 2016
    Posts:
    38
    I'm working on a business project where pretty much all the processing and data is going to be loaded from AWS DynamoDB and AWS S3. so only the most "primitive" things will run on the web app , iOS and Android. I feel like using Unity for its easy to use UI and UI animations and its cross platform capabilities is a good choice. so I guess the difference between my app would be having everything happen in the cloud and with the right UI optimisations we should not have memory problems on older devices and what not. the battery isn't an issue as the app is only run when needed. Push notifications are a huge deal though.
    Also can someone offer a WYSYWIG alternative?!!?
    Any thoughts?
     
    Last edited: Jan 19, 2019
  49. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Consider how a game engine works compared to how a general purpose UI framework works. Also look into what UI optimisation means for games and what can be done in Unity, compared to what it means in business apps - the concerns can be quite different.
     
  50. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,363
    I'd say HTML5 is a good front end for designing UI. Maybe you could do the back end in python.