Improve support for Unity3D / 3D Development with different features
The idea is to improve support of Unity3D and also 3D Development (Games, Architecture, Design, etc.) in general, through looking at a range of new features, feature improvement, documentation, blog posts, etc.. In general the version control support for game development is quite complex, Unity by example has their own Asset Server (https://docs.unity3d.com/Manual/AssetServer.html , quite expensive), some people use Perforce or Plastic SCM. In Unity you can set the file format to text based and with Git LFS support you can handle especially large assets. Especially for indie dev teams, improving the complete creation cycle, which involves especially in Game development a lot of different areas (Programming, Game Design, 3D + 2D assets, audio, etc.) would be a great thing in a so far under supported area overall.
Use Unity 3D with Git : https://stackoverflow.com/questions/21573405/how-to-prepare-a-unity-project-for-git Plugins/Assets in Unity Asset stores : https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=relevance/query=git
Feature suggestions
File support
As a starting point I took the example project of Unity (https://www.assetstore.unity3d.com/en/#!/content/32351) and analysed the file types that are used in the Project. I also added Substances as they are quite a huge thing in Unity. I would then in the future take another look at more example projects and analyse them also.
File Type | File Count | Supportable in the Browser? | GL Support | Comments |
---|---|---|---|---|
.meta (U3D specific meta data per asset, text based) | 875 | |||
.mat (U3D specific material, text based) | 134 | |||
.cs (C#) | 110 | |||
.js (Javascript) | - | |||
.prefab (U3D specific meta data, text based) | 106 | |||
.png | 99 | |||
.fbx (3D Format) | 55 | |||
.tga (Image Format) | 49 | |||
.anim (Animation Format - Text based) | 25 | |||
.shader (GPU Shader - Code file) | 21 | |||
.psd (Photoshop) | 20 | |||
.wav (Audio file) | 14 | |||
.unity (Unity3D Scene files - text based) | 14 | |||
.txt (Text File) | 12 | |||
.tif (Image Format) | 12 | |||
.physicmaterial (Unity 3D Physics Material - Text Based) | 12 | |||
.ttf (Font) | 5 | |||
.spm (Speed Tree Binary) | 4 | |||
.controller (Controller Scheme Unity3D - Text Based) | 4 | |||
.controller (Controller Scheme Unity3D - Text Based) | 4 | |||
.jpg (Image Format) | 4 | |||
.flare (Unity 3D flare definition) | 4 | |||
.asset (Unity 3D Binary) | 3 | |||
.mixer (Unity 3D Text based audio setup) | 3 | |||
.physicsMaterial2D (Unity 3D Physics Material - Text Based) | 3 | |||
.swatch (Unity 3D Binary) | 3 | |||
.bmp (Image Format) | 2 | |||
.sbsar (Substance Painter) | - |
No Count = Not in Example project
-
POC of a web based 3D Files viewer based on Unity itself (WebGL)
CI/CD
Very interesting area as there are a lot of multiplatform projects (biggest advantage of Unity 3D) and you can build from one source base to many formats from mobile to consoles (https://unity3d.com/de/unity/multiplatform)
- Unity is having their own build solution called Unity Cloud Build , might make sense to take a look if it can be integrated with our CI/CD flow. There is an API for it https://build-api.cloud.unity3d.com/docs/1.0.0/index.html
- Own Docker solutions https://www.projects.science.uu.nl/DGKVj16/blog/gitlab-ci-with-unity3d-in-docker/
- Github / TravisCI Example : https://jonathan.porta.codes/2015/04/17/automatically-build-your-unity3d-project-in-the-cloud-using-travisci-for-free/
Pages integration
Could be interesting to have an integration which automatically publishes the Unity WebGL build directly. Also interesting to try it out with other engines.
General Features
Supporting materials
As there is not that much information so far on Unity + Git it would definitely make sense to create material which would generate traffic and make the setup process with GitLab easier
- Currently on the Unity Tutorials there is a tutorial with BitBucket https://unity3d.com/de/learn/tutorials/topics/cloud-build/creating-your-first-source-control-repository (Maybe contact them ?)
- It simply lacks in that area nice tutorials and i am pretty sure they could get a lot of traction soon