Closed studentutu closed 3 years ago
I don't get the list. Are these issues that you see on the project?
There are many solutions that we cannot adopt. FMOD, Zenject, etc. This being an open-source project, we can't use third party tech whose license is not compatible with ours. Some others we already have (Addressables). Some are not applicable (prototyping? we are not doing that)
For these reasons I'll close the issue, the list generates a lot of confusion for people who read the issue and think that maybe we are going to use these tools or implement these features/solutions.
Here is an ideal place to mark everything that can go wrong with the project when it scales rapidly. This place could also serve the role of the solution center for all of those issues. Please join and share your experience with large projects.
[ ] Too many assets. Most of the project when upscaled will look something like this (70% assets,15% scriptable objects and resources along with them,10% plug-ins with huge libraries inside, 5% text assets - code, documents, json, cvs, and other text files ) From the assets, we have textures, meshes, audio/video -clips,
👌Solutions :
assets with uniform naming, folder structure. (Updated assets are never directly removed from the project, only constructive behavior).
asset management - there are a number of ways to look at which assets are used and which are not.
asset bundles to store/retrieve large chunks of data for the specific places inside the application
addressables - for ease of use and convenient retrieval of the asset from different places (+ async requests)
UI atlases to store the textures in one
for the runtime texturing - virtual texture from one of the preview versions of the render pipeline
for the audio - there is an F_Mod library that helps to create multiple audio banks, which can store the original data in a more compressed format. It is ideal for the simulations and such, where the sheer number of audio clips is overwhelming.
for video - you can use smaller sized video clips, even remove the audio from the clip, but then upscale it and do some of the trickery with it using the ML packages like barracuda to upscale it nicely (if it even needs to be so)
👉References :
https://www.fmod.com/ or similar commercial products for battle royal style games. There was once a Unity blog one of them.
https://assetstore.unity.com/packages/tools/utilities/find-reference-2-59092 asset managment
[ ] Complexity of the dependencies. Hard to debug. Maintainability of the project The project is so complex the bugs are nearly impossible to debug, or takes weeks to be found (release QA) or worse to fix them. One of the huge problems in the rapidly scaled application - is the quality of it.
👌Solution :
👉References:
the MRTK way of testing Unity in AR/VR/MR - https://github.com/microsoft/MixedRealityToolkit-Unity
[ ] Design choices are different everywhere. Colors are not from the target pallet. Non Uniform features.
The constant issue with prototyping a new feature - is a lack of general consent of the others. At the later stage, everything must be uniform, and someone will redo all of the work once again.
👌Solution:
👉References :
the MRTK way of re-using the prefabs, data flow for the actual presentation layer - https://github.com/microsoft/MixedRealityToolkit-Unity
[ ] Miscommunication. The feature is not properly declared. Too much manpower for a single feature. It is a common issue when there is a feature to implement - developers/designers can overkill it quickly, or even worse - completely misunderstood the feature required by the app.
👌Solution:
👉References: