Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set the environmental tools/guide for the project with dotfiles, possible a small bash install script #346

Open
4 of 11 tasks
studentutu opened this issue Feb 2, 2021 · 5 comments
Labels
enhancement New feature or request tool A PR that contains an Editor tool or custom Inspectors

Comments

@studentutu
Copy link

studentutu commented Feb 2, 2021

There is a lot of features currently in development, and they need to be properly merged.
One of the ways to mitigate the merges is to set up proper tools for the machine itself.

You can have a small collection of dotfiles, like .gitattributes, .vs, and such to set them up.
It is even better if there will be a bash script to run and check if everything is set-up correctly

Take a look into the VRTK 4 - Tillia/Zillia or a newly disclosed google's Tilt Brush.

  • .gitattributes
  • Smart merge - Unity Yaml Merge, with editor fall back to P4Merge/SVN
  • Preferable one of the automated Changelog.md generators
  • .editorconfig
  • .github for templates such as issue template pull request template
  • bash file to check the dependencies (if any) or set the solution to use editor configs from the project itself
  • explicitly lock some of the packages from being updated, lock unity version to LTS
  • if the project is getting larger - include the Library from one of the current working build. You can safely zip it and share it with people across the globe. It will mitigate the hours of reimport. (Probably unnecessary as new unity uses V2 cache server, but still something to be aware of).
  • explicitly set the presets, especially for audio (if larger - make streaming, if small - decompress on load). You can even make some automated relocations and renaming via custom import scripts.
  • the majority of the project will be the assets - so make sure to use the best compression on them (nobody wants to clone 10 gigs of setup project with a few hours queue of import). For audio - .ogg (best compression, without much of the quality loss). jpeg for image (if required in higher quality - png) and so on. A simple .gitignore rule will do the job, but again it can be explicitly stated somewhere in the guidelines.
  • just with any project - assets and contained parts of it can be packaged together in a strict way to be included in the project. This is also something that needs to be specified (naming, the path to mesh, materials, textures ...)

In general, when people use proper good tools, they will be more productive 👌

👉By the way, it can even include the list of packages to use within the IDE itself.
Rider/VS Community with Resharper/Code snippets, Shaderlab Support, VS code with a few required packages installed, etc.

👀 Please take a look into Microsoft's Code of conduct and related features -
https://github.com/microsoft/MixedRealityToolkit-Unity

@studentutu studentutu changed the title Set the eviromental tools / guide for the project with .gitattributes and dotfiles, possible a small bash install script Set the environmental tools/guide for the project with dotfiles, possible a small bash install script Feb 2, 2021
@ciro-unity ciro-unity added enhancement New feature or request tool A PR that contains an Editor tool or custom Inspectors labels Feb 3, 2021
@ciro-unity
Copy link
Contributor

Thanks @studentutu, there are some good suggestions. Some we already have in the project, like locking the Unity version or asset naming conventions. Some others we'll do of course, like compressing assets...

Some things I don't agree with. For instance, using .jpg in the project is a very bad idea. Same for .oggs. You want clean files in the project, then they will be compressed in the build. But if you include compressed files as sources, sure, the project size goes down, but what if you have to work on them to tweak them? It's kind of bad practice.

Same for the Changelog generator... you mean for eventual final release of the game? I feel like the changelog for a game (especially of this size) needs to be curated rather than automated. Although we could implement it anyway to have a reference, and then throw away some of the text 🤷🏻‍♂️

@studentutu
Copy link
Author

Completely agree regarding compressed files as sources.
Regarding the Changelog - you are basically doing the same thing in the Unity youtube channel, where each video is a Changelog.md. Would be nice to actually copy the main features from it and just paste it in.

@ciro-unity
Copy link
Contributor

Regarding the Changelog - you are basically doing the same thing in the Unity youtube channel, where each video is a Changelog.md. Would be nice to actually copy the main features from it and just paste it in.

Can you link an example of one? To understand the level of detail that you're thinking about, and whether it is useful.

@studentutu
Copy link
Author

@ciro-unity here is a good example (it is automated, created based on the specific tags in the commit message) https://github.com/ExtendRealityLtd/Zinnia.Unity/blob/master/CHANGELOG.md

@ciro-unity
Copy link
Contributor

Really cool.

I fear we don't have that kind of discipline here, for instance enforcing clear and descriptive Commit comments is not something I see happening on this project. Sure we could request it as part of the process, but it would only mean more work on our side to check that those requirements are met. We have guidelines in place for code and asset submission, but they are often ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request tool A PR that contains an Editor tool or custom Inspectors
Projects
None yet
Development

No branches or pull requests

2 participants