Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by Hamesh81 · Sep 28, 2012 at 04:24 AM · playernetworkdownloadmulti

How to approach DLC for standalone and web build games?

Ok, say I have an online multi player game where players can download/purchase content (textures, clothing, hair etc) for their characters from a web store. The web store allows any registered user to upload content they have created to this website so that other users can download/purchase and use it to customize their players ingame.

I'm trying to understand exactly how a setup like this would work in Unity for a multi player environment. For example, if the game were single player, a player could easily download content from the web store, save it to their local computer and then access it via the Unity standalone game build. They could then easily save and load this content. But, in a multi player environment how would this work? Since other users can not access content that is saved in another user's local computer (as far as I understand), how would other users be able to load/view this user's custom downloaded textures, models etc? I recently created my first IMVU and Second Life account in order to try to understand the approach they are using for this, I'm still having trouble working it out though. Any suggestions?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
4
Best Answer

Answer by MarkFinn · Sep 28, 2012 at 07:21 AM

This is a massive, massive question, and you are unlikely to get much response directly here. The question of handling DLC is one that generally involves large numbers of experienced developers and designers. When you add user-created content to the mix it becomes truly gargantuan.

However, for an overview... There will be multiple distinct areas of development involved.

  • Displaying/combining visual additions to characters

  • Determining the need for specific add-ons and downloading them

  • Versioning of content

  • Tools for creation of content by users

  • Security and censorship of user-created content (Unless you actually WANT every second player to have a penis for a sword).

  • Storage and deployment of downloadable content

While working with a previous employer (Mechanist Games) the requirements for the game included what you describe. After months of effort we had most elements functioning, but in the end abandoned user created content as it was impossible to ensure reasonable optimisation. And that was with months of effort for half a dozen experienced c# coders.

The storage and deployment solution we used was using assetbundles downloaded as needed by standard WWW class means if they were not found in the locally stored libraries (on standalone builds) or in memory (on webplayer builds). Assets which were found to be in heaviest demand during testing were moved into the main app deployment (in both standalone and web). Versionning involved adding public attributes to scripts attached to the Prefabs, being an integer derived from creation date, which could be used as a check against updated versions on the server. Where an updated version is found the standalone overwrites it's locally stored version, while the webplayer simply replaces the assets stored in memory.

(In general, where I have used the term asset you can consider it to be a prefab)

I know this is far from a full answer, but the full answer would be writing your system for you and depend significantly on what exactly you want it to be able to do.

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image MarkFinn · Sep 28, 2012 at 10:25 AM 0
Share

The tools to do the vetting/approval would be simple enough, a week or two's work to get them up to initial usable spec, but we did some estimates on the man-hours involved in actually doing the checking and it turned out that if the feature was even slightly successful on a popular game it would (optimistically and assu$$anonymous$$g the really bad submissions could be rejected automatically or based on "crowd-sourced" opinions) be full time work for at least half a dozen people per thousand players, and potentially a lot more.

These numbers are based on what we were considering for City of S$$anonymous$$m (New Epoch) at the time, and obviously would vary significantly from game to game. We just ditched the whole idea of user-created wearables, and opted to focus more on user-created quests and maps.

avatar image Fattie · Sep 28, 2012 at 10:37 AM 0
Share

One of the most knowledgeable answers ever seen here! :)

avatar image Hamesh81 · Sep 28, 2012 at 11:50 AM 0
Share

Thanks a lot for your responses, I wasn't actually asking for someone to tell me how to reproduce I$$anonymous$$VU, Second Life etc in Unity :) I was simply asking how can multiple players access/load DLC that any other online player may be 'wearing' at any point in time ingame. I tried to illustrate this with my example above, but never the less from $$anonymous$$arkFinn's response I believe the answer is something along the lines of "store all DLC on a server (not locally) so any player from anywhere can access the content at any time ingame".

In fact I was actually thinking of starting with something a lot more simpler: initially using only textures as the DLC. These would be used to customize the clothing, skin, hair etc. The reason is because of the potential optimization problems already mentioned above. For textures, both the texture size(dimensions/resolution) and the file size can be limited on upload with any good C$$anonymous$$S, which makes it a lot easier to control user uploads. Censorship is another issue, but not one I am concerned with at the moment.

I think it's always a trade off here between asking a general question and getting less specific answers back, to asking a question so specific that no one has ever done it before :D I'm glad you guys took the time to attempt an answer even if it wasn't obvious exactly what I was asking, since it ended up answering my question anyway. Thanks heaps

avatar image Hamesh81 · Sep 29, 2012 at 05:09 AM 0
Share

Sure, thanks a lot for contributing, every opinion adds value imo. This question is probably better suited for the forum, but I have never had any replies on the Unity forum yet.

Co$$anonymous$$g from a web design background I have to say that these days it is quite straight forward to create the website side of this. For example there are many open source C$$anonymous$$S solutions that enable you to create clones of user contribution sites like Flicker, Youtube and with a little more effort even Facebook. And you do not have to be a php guru to do this. Of course adding communication with a game engine (such as Unity) on top of this does still add some complexity.

In relation to your comment, yes storing these assets on a server seems to be the way to go, however the other side of the coin (and what I see as the real challenge) is how players will be accessing/loading this data. If every player is accessing the server at the same time I think this would be either very slow or potentially crash the server. I am having a more open discussion about using caching to tackle this problem here: http://forum.unity3d.com/threads/141101-Amazingly-Easy-Free-Save-Game-$$anonymous$$anager-Unity-Serializer-now-on-Version-0.7?p=1047410&viewfull=1#post1047410

Feel free to add to the discussion there as well :)

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

11 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

multi game network 0 Answers

Network view not attached 0 Answers

Make priority for players 1 Answer

Mix unity Network Manager with own network script 1 Answer

Multiplayer| Attaching camera to player (if i am the owner 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges