Hello to all the amazing Unity 3D community. Mahindra here. About me, we are a design and visualization studio based in India 3dsculptors.co . I and my other team doest come from any kind of programming background and nor do we have any technical and practical knowledge of Unity 3D. I have done quite research on interactive solutions and so far Unity 3D has been the best choice.
As the title says, I need a lot of help from you guys. We want to start working on an interactive interior design project.
So here’s what I am figuring out currently.
On the Unity 3D front.
We will have an interactive floor planner with drag and drop furniture items. Lots of customisations in the room as well, like wall colors and flooring material.
The tool to work right on our websites
There will be an app for iOS/Android with the same asset database.
On the team front.
Need in house team
What kind of Unity expertise programmer should we hire. (like experience by openGL, prog-languages, game engine, web server etc)
No of programmers for this kind of project.
Salary bracket of the programmers.
Best hiring portal to find suitable programmers (I’m guessing I’ll find programmers here and on Linkedin)
On Hardware
The best preferred computer configuration by Unity developers.
Best preferred OS for Unity Dev and CG asset artist to work in sync. (OS X or Windows)
I totally understand, I may have asked a lot of information. But I’m sure i will be able to construct a strong Unity Development team with any kind of information and suggestion from you guys here.
Right, I will add the commercial opening once I understand the technical experience required to hire the developers. Until this is the general discussion on how do we go ahead with the setup.
It’s wise of you to get this information before looking for employees and hardware. It will save you a lot of frustration in the future. Here are some recommendations:
Plan to use the Unity Asset Store heavily. It’s much cheaper than paying someone to write a bespoke component that does the same thing, especially considering that Asset Store products are usually heavily tested by other customers already.
Be aware that graphical web applications are going through a big shift right now. Some browsers (e.g., Chrome) no longer support the NPAPI architecture used by Unity’s web player. To support these browsers, you’ll need to make WebGL builds, and eventually WebAssembly builds. Other browsers don’t yet work as well with WebGL, so you’ll also need to make traditional web player builds for them.
You do not need an expert in these areas:
NO: OpenGL
NO: Other game engines
NO: Web servers
NO: Multiple programming languages
Your programmer only needs to be proficient in C#. Beware programmers who only work in UnityScript (Javascript). This isn’t a knock against UnityScript, but it may be an indication that they have a less formal understanding of software engineering practices. Your programmer must be very familiar with the Unity programming API. More experience (other game engines, other languages, etc.) is of course better, but other factors such as personality compatibility are more important.
Your ideal development team will have at least one experienced Unity programmer and one experienced Unity level designer. Level design (arranging models, lighting, etc., in scenes) is a separate discipline. The quality of level design will make or break the appearance of a product. An experienced Unity level designer will know how to work within the Unity editor to get the best results.
As LaneFox mentioned, the Commercial Job Offering forum is your best source. Check prospective employees’ portfolios, and of course make sure their work habits and personalities are compatible with your own.
If you’re going to be building for iOS, develop on at least one OSX (Mac) computer. Desktop PCs are less expensive than laptops. If you buy desktops, you’ll be able to get more processing and graphical power for the same budget. If electrical power is not stable, consider using uninterruptible power supplies rather than spending more for laptops. Your modeler and/or level designer will need a machine with a powerful graphics card, lots of RAM, and peripherals such as drawing tablets. You’ll also want to set aside budget for target platform hardware such as an iPad, an Android tablet, etc., as well as services such as web hosting, version control repository hosting, etc.
Wow, that is really a lot of information. Thanks a ton for such an elaborate reply and extremely valuable suggestions. I have lots of things sorted by now.
I feel the need to address some of the things in TonyLi’s post. I agree with most of it, but he overlooked something extremely important when talking about third party assets. Something I think you should be aware of.
I have to warn you about using the Asset Store. The reason I am not very fond of it is because using the Asset Store means making the success of your project depend of third parties. This is very risky. An asset being supported good in the past, doesn’t guarantee good future support.
I had this happen with an asset called “Unity Serializer”. It’s there to save/load games and was extremely good when I used it with Unity 4. Unfortunately it broke with Unity 5 and the developer isn’t active anymore. Due to its very nature, the asset was deeply integrated into my project. You can see the problem.
This brings us to the second thing people tend not to think about when purchasing third party assets: the license terms.
Sometimes you’re allowed to use an asset for free, even commercially, but not allowed to redistribute modified versions. This means that, if it breaks, you’re not allowed to fix it yourself. If the developer isn’t active anymore, you’re fucked.
Using closed-source libraries or open-source ones where you aren’t allowed to modify the code, is an unpredictable risk you’re taking. Don’t, unless you absolutely have to!
This doesn’t only apply to code. If you’re purchasing 3d models, textures or whatnot, always clear up the situation whether you can modify them. If the license terms don’t say anything about modification, reach out to the developer and ask.
Ideally, your level designer will know his way around a 3d modeling application like Maya or Blender. The reason for this is that the Unity Editor itself is terribly, terribly bad for more sophisticated environments. There are third party assets that make it suck less, but they’d have to turn Unity into something as powerful as a full fledged 3d modeling suite to even compare.
Everything from the viewport-navigation to object placement quickly becomes an absolute pain in the ass. I do as little as possible (gameplay scripting, audio, lighting) in the Unity editor. The rest is done in Blender which, while having a much steeper learning curve, is superior for anything geometry related (creation, placement) in every conceivable way.
Do not get laptops as your main development machines. They’re expensive, they’re slow and loud when under load. I used a high-end laptop as desktop replacement for about 1.5 years. I’ll never, ever be that stupid again.
Make sure that you have a good way of creating backups automatically. Code should be under version control (for example git) anyway. Other assets need to be backed up too.
I’m pretty confident that simply means you’re not allowed to redistribute the source form of the asset. Actually making adjustments to the source and compiling it into your project shouldn’t be restricted.
If the license terms state that you’re not allowed to modify the asset, that’s pretty unambiguous. You aren’t allowed to touch it. The right to use, the right to distribute and the right to modify are completely separate things.
A very good example of this is the MIT license. It’s about as permissive as it gets and has a very short text. Go read the first paragraph:
All those rights were explicitly mentioned, because they had to.
If you take an asset you were merely allowed to use and modify it, the original developer can take legal action and will win.
Think about rented cars. You are allowed to drive (use) them. However, you are not allowed to swap the radio, get new seats and a new paint job (modify).
If the terms don’t say anything about modification, you absolutely have to get in touch with the developer. If he doesn’t update his terms to clear that up, at least get written permission.
If the developer doesn’t respond, don’t touch it either.
I don’t think that’s correct. Even with the MIT license, you’re allowed to modify the software for your own internal use. Modification for internal purposes falls under the definition of use. You can’t modify distribution copies, however.
Perhaps @caitlyn or someone on the Asset Store team can clear this up before it makes people unnecessarily afraid to use the Asset Store?
About the asset store discussion, I am more keen on purchasing advanced shaders. I am guessing shaders won’t have a major impact even if theres is a major shift in future Unity versions.
We are planning to design something based on below references
So I am guessing the Designer will be mostly working on modelling 3D furniture items. Yes, he will need to optimise the texture and shaders in Unity. But apart from that I doubt there will be any preconfigured levels since technically the levels (Rooms) will be procedural.
I was actually Googling on what is the best backup solution for Unity projects. (Cloud and Offline). So thanks on that part as well.
That’s correct.
You’re allowed to do pretty much whatever the hell you want for your own internal use, because nobody will know. As soon as the asset is part of the shipped game however, it’s not internal use anymore.
You need to differentiate between assets like editor-extensions that are not part of the shipped game, and, say shaders, that are.
The asset creator could argue that he merely allows to use and integrate the asset into other games, because modifications by third parties cannot be controlled in a manner that guarantees that they do not damage the reputation of his name/brand/business due to not meeting the quality standards he has. His name/brand/business are attached to it after all.
You cannot argue against this, because he’ll just point at the license terms you agreed with.
@Ryiah seems to be arguing with common sense. “It shouldn’t be restricted.” However, arguing with common sense gets you absolutely nowhere when it comes to legal issues. All the related laws (patents, copyright, IP, whatnot) are from times before the Internet. They are old. So old in fact, that they are so completely out of touch with the current reality, that there are companies (patent trolls) who get by, merely by suing other companies over the most trivial things they shouldn’t have the right to.
Look at the complete clusterfuck between Oracle and Google regarding Android. Apple patented beveled edges for god’s sake.
I’m not saying that anyone should be afraid of using the asset store. I’m saying that if you start a legitimate business, you shouldn’t take such things lightly. The asset store isn’t really attractive for this kind of exploitation (what are you going to sue a small indie/mobile dev for), but there certainly is room to abuse there.
As far as I know (I could be wrong), the asset creators dictate the license terms of their assets on the asset store. There are licenses that are not allowed due to being incompatible (GPL), but outside of that, the creator gets to say what you can and cannot do.
If that’s the case, it can be abused. It’s as simple as that.
You should be wary of this. Don’t ever assume that you have the right to do x.
Firstly Thanks to all of you guys, I am almost sorted out with most stuff. There is one important query I would like to understand before we start the project.
Since the whole Unity application will be running on a browser, and the assets will be called from the cloud server, what kind of servers do I need to host the application and assets on?
Like a friend of mine from IT suggested Amazon EC2 servers. But I would like to understand from you guys which kind of server is best suitable for this project.
Amazon EC2 offers various server to choose from like mentioned below:
General Purpose Server
Compute Optimised
GPU Instances
Memory Optimised
Storage Optimised
Link to Amazon EC2 website.
EDIT: You guys can point me to any other better server solutions, if any. Thanks for the awesome support.
Unless you’re sure that your clients will use browsers that support NPAPI and the Unity webplayer plugin (Internet Explorer, Firefox) , you’ll also want to build for WebGL, which is required for Chrome and Edge. See this post for tips on WebGL and Amazon Web Services.
You just need a web server. You don’t need a processing server, so no Compute Optimised, Storage Optimised, etc. You could start with something very inexpensive like Bluehost virtual private server hosting, and then transfer your domain name to AWS later if you need to.