Unite Now Q&A - Tips and Tricks to Develop in Unity with Visual Studio 2019

Unite Now Session
Visual Studio 2019 offers world-class debugging for Unity games and is our recommended IDE. In this session, we teach you how to get the most out of it. We also demo how you can collaborate better with Live Shares and debug faster with Attach and Play.

When
Thu, May 21, 9:00 AM PT

Where
You can watch the session here!
Make sure to sign up to get access to all Unite Now content.


Together with this Unite Now session we are also hosting a Q&A here in this thread to answer as many of your questions as possible.

A team of product experts from across Unity will be available starting after the session. Our Community team will continue to field questions to foster an ongoing discussion with the community. Please feel free to ask your questions in this thread.

Some basic rules

  • Don’t bundle multiple unrelated questions in one reply. One question/topic per reply.

  • Only questions related to the topics of the session are permitted.

  • All questions will be fielded by our Community Managers (@LeonhardP and @AskCarol)

  • Replies will have to be approved by the moderators to show up in the thread.

  • Once approved, the questions will be forwarded to the relevant experts.

We really look forward to hearing from the community.
Thank you!

Interesting quick dive.

Question about GitHub integration. Because Github is notoriously slow in handling the large binary files that Unity projects use, do you have plans to update Git into a more robust game-oriented version control system? (Now that Git is owned by Microsoft).

1 Like

What are the plans for VSCode? It appears that official Unity support has been dropped. Which is unfortunate as it forces those that relied on it to switch to the paying version of VS. Hard to see the drop of support as anything else than a move to force users to lose a free IDE.

2 Likes

What?

The version of Visual Studio you get with Unity is already free to use and VSCode integration literally got an update yesterday.

1 Like

I’ve asked Abdullah on the Microsoft side. Let’s see what he says.

Hello @KamilCSPS

Visual Studio Community Edition 2019 and Visual Studio for Mac Community Edition 2019 are completely free to use. It has all the features available in the Enterprise and Professional Editions too.

As for your questions about GitHub, I work with the Visual Studio team, but I will try to understand your pain points with GitHub and relay your feedback to them. I know they are very interested in making the experience better for game developers. Could you help us learn more about what you have in mind?

1- Which specific Unity binary file types specifically cause slowdown for you with GitHub?
2- How does a robust game-oriented version control system look like to you?
3- What features would you like to see?
4- How does work-flows you prefer looks like?
5- If you had a magic wand, what would be the #1 pain point you want GitHub to solve?

For a short term solution to make your experience with GitHub better, I use these recommendations here https://thoughtbot.com/blog/how-to-git-with-unity I hope that solves your issues in the short term, and we can address your issues in the long term by giving us more feedback by answering the above questions.

I am interested in doing a video like this that focuses more on the GitHub experience and Unity and diving deep into use cases relevant to game developers. So, please let us know what you would like us to cover.

1 Like

I’ll jump on the Github bandwagon and encourage you think about how the default file size limits with Github don’t fit with the average Unity project. I think those limits are something like 1GB for a repo and 100MB for a single file. So after you add a couple of FBX models to your Unity project you start hitting all sorts of issues with trying to make a commit.

I think there are workarounds, like LFS, that would probably make an excellent tutorial on how to integrate Github with an actual Unity project. But ultimately, I think there is a business model conflict where you can’t have >1GB of “big files” in a free repo, even though the repo can be bigger than 1GB.

So advertising that Github is free for Unity is misleading.

1 Like

You probably shouldn’t be pushing those assets to Github to begin with.

@solidd_swa @Murgilod
The license terms for VS community are quite clear, it is only free for individual developers, academia, and such other entities. It is not free for small studios (5+) or the public sector and other such entities. In before you say “just buy it”, you might be surprised how this is not that simple.

VSCode debugger for unity plugin, which is absolutely necessary, is no longer supported by Unity:
https://marketplace.visualstudio.com/items?itemName=Unity.unity-debug
https://github.com/Unity-Technologies/vscode-unity-debug/commit/9843cafa271595d435de3a23042dfd050c9317e3

VSCode is the only real free IDE here, not VS Community.

2 Likes

That’s exactly his point and he’s answering @solidd_swa .

@Livealot touched quite a bit of the points I would had bought.

More to it, I would invite you to look at different VCS such as PlasticSCM or Perforce (which I believe is what Unity is using internally themselves, at least last I heard).

Especially with the fundamentally multi-disciplinary aspect of game-dev, some solution vendors such as PlasticSCM have artist-friendly IDE’s with strong UX geared toward flexible workflows. The age of command-line VCS is long gone and I am quite happy about it. None of my artists will touch a VCS that requires them to memorize edge-case commands or depuzzle multi-branch merges / conflicts through a CLI.

In short, I understand how Microsoft is trying to make VS more friendly with Unity devs, but the core of the question is about setting up an infrastructure that support Unity projects. That cannot be accomplished through VS-Github integration alone, Github itself is a barrier - both from a usability point of view for artists and from a back-end performance point-of-view.

1 Like

Those points are notes. The reason why I asked you those fundamental questions was to understand the core problems so that we can solve the problems instead of just copying a solution that might not really solve the problem. I really do appreciate your feedback and I am sure the GitHub team will find them useful.

Every use-case is different but I can share some of my experience;

1- Which specific Unity binary file types specifically cause slowdown for you with GitHub?

  • In some of our projects we had hundreds of .max, .psds with a total project size of 2.5GB. Not withstanding that we versioned our compiled builds as well, which themselves took multi-GB too. Many files, especially texture atlas maps were > 50MB. Before we reached the size limit, any pull request, any commit, any merge, would take dozens of minutes. It was impossible to use.
  • This (https://help.github.com/en/github/managing-large-files/conditions-for-large-files) section in a VCS documentation is a massive red-flag that it shouldn’t be used for any game-dev project.
    2- How does a robust game-oriented version control system look like to you?
  • One that can handle any VCS action for a multi-GB projects, even large GB files, within seconds or a few minutes max.
    3- What features would you like to see?
  • A non-CLI IDE front-end for GitHub with good UX that can be used by both programmers and artists a-like.
  • No performance penalty when handling multi-GB projects.
    4- How does work-flows you prefer looks like?
  • Feature task-per branch. Including for artists. So that means multi-100MBs merges are frequent.
    5- If you had a magic wand, what would be the #1 pain point you want GitHub to solve?
  • Good performance, even at the free-tier, for a small (1GB) Unity project without requiring any special workarounds.
1 Like

I am making sure the GitHub team is aware of this thread here.

1 Like

Hello,

Is there a way to rename a class name from VS code and having Unity updates correctly ? So far if I rename a class name from VS code it will only rename the class name, the file name will remains the same and Unity seems to not understand that a class has been renamed, so scripts attached on GOs will be mark as “missing script” or something like that. I also tried to rename the the class file from VS project view and then the class name but still, Unity won’t understand what’s happening and script are not correctly updated on GOs.

Is that normal ? Is there a right way to do that ?

1 Like

We recommend using Visual Studio 2019 or Visual Studio 2019 for Mac as those are the supported IDEs for Unity.

Hello,

I wrote the wrong IDE, I meant Visual Studio 2019 for Mac. Using it there is no way to rename a class name/file and having Unity understand what’s happening. ie: script will be mark as “script missing”.

There was a bug in Visual Studio for Mac that’s been fixed in version 8.6 (https://developercommunity.visualstudio.com/content/problem/1019179/renaming-files-1.html)

If you still notice the issue after updating to 8.6, please report it via the Help > Report a Problem menu in Visual Studio for Mac.

If you are low on system resources go for VS code. I personally prefer VS code, because of the tone of extensions and customisation features.