game-ci / docker

Series of CI-specialised docker images for Unity.
https://hub.docker.com/u/unityci
MIT License
392 stars 122 forks source link

Add blender to base image to enable seamless FBX import from .blend project files #181

Closed aallbrig closed 2 years ago

aallbrig commented 2 years ago

Changes

Checklist

github-actions[bot] commented 2 years ago

Cat Gif

webbertakken commented 2 years ago

Hey @aallbrig,

Thanks for your contribution. We have discussed making this change before and decided against it.

Why?

We need to make our images suitable for everyone. Adding 250 MB on top of the already large image size would not be preferable for teams that do not use blender.

Now of course you could argue that most people use Blender, which is a fair point to make. However the same point applies for the other file formats that Unity Editor supports.

Different teams would need different combinations of tools installed, and the amount of tools really isn't limited to file types. SonarQube and other quality tools come to mind.

Solutions

Therefor we've decided to offer the user 3 different options:

Conclusion

Contributions are always welcomed - as long as they work for everyone. In this case unfortunately it would not, so this PR unfortunately will not be merged.

I hope the above solutions will help you move forward.

GabLeRoux commented 2 years ago

Since this has only been discussed in a few issues (I rememeber some older discussions on gitlab) or discord, it could be useful to add a section in the documentation on how to precisely customize images for different file support.

We had an idea of adding some overhead during the pipeline runs to inject (install) blender on each build,this is the plugin system from Webber's comment above. Until we have support for this (if we accept to go that way), I think including an easy to follow guide in the documentation could be helpful for many.

Right now, all we have is this:
https://game.ci/docs/docker/customize-docker-images

It is helpful, but I think it can be improved. Just another idea on top of this, we could use the power of mdx (react in markdown files) to allow people to pick their unity version, the tool they want and generate some ready to use scripts to publish what they need.

Example: A react component that generates a script from a form

result: a shell script that eases building and publishing customized docker images to docker hub.

Now this should be discussed and accepted in an issue before it gets developed to avoid wasting precious developer time 🙏

webbertakken commented 2 years ago

Nice idea. Added it to https://github.com/game-ci/documentation/issues/286

webbertakken commented 2 years ago

I've added this to the Roadmap for v3.0.0

webbertakken commented 2 years ago

The plugin part will be solved as part of https://github.com/game-ci/cli/issues/10

aallbrig commented 2 years ago

I appreciate it!!!

aallbrig commented 2 years ago

I solved this in my "virtual arcade bar" micro project. Here are the commits

  1. Customize game-ci Dockerfile with blender 5939206bf123a1bf790f5b09570e017385c19ca1 (thanks NY times engineers!)
  2. Add in a .blend file to my project 7985db80b2d88e81c0732fd213e596d912e21941
  3. Update my game-ci Github Actions yaml 269d368198c82b60d2df130fd99061f89b568a04

My build succeeded! Screen_Shot_2022-06-05_at_8 15 02_PM

webbertakken commented 2 years ago

Great! Thank you very much for sharing your solution with the community.

I'm curious, did this somehow end up solving your shader/lighting difference between local and CI?

aallbrig commented 2 years ago

@webbertakken Unfortunately, no not yet.