Git Product home page Git Product logo

Comments (10)

lesley29 avatar lesley29 commented on August 17, 2024 3

Hey @ManuelRauber!

Oh, I'm sorry, I lost the issue after closing it. Thanks for pinging.
And yeah, my bad YT issues of that type aren't meant to be public, as it turned out :)

A huge thank you for this clarification! It all makes perfect sense.

The approach you described is definitely the one we should eventually come to. As it provides the most flexibility. I'm not sure I can share how things are set up behind the scenes, but I can only say that this would require some changes from our side. I'll discuss it once again with the team (will keep you posted).

Yeah, we're aware of GameCI Docker images; we've actually used them in some of our demos. I would say, for the moment, it's kinda "okish" workaround if you need a specific version, the time of pulling the image is still billable though. Except that there is also an option to set up a custom cloud profile & image, but that's far from being user-friendly as well.

And again, thanks for your input on this! I mean, that was really precious. We understand that the current solution might not be usable for more or less serious projects and are currently looking at ways to improve the situation.

from teamcity-unity-plugin.

lesley29 avatar lesley29 commented on August 17, 2024

Hey @ManuelRauber

It seems that you have an older version (1.0.2) of the plugin installed on your TeamCity Cloud instance for some reason. This older version experienced intermittent issues with not returning a license after a build. We will update it shortly and I will let you know when that's done.

P.S.: You will probably need to return those acquired licenses manually via Unity site after that.

from teamcity-unity-plugin.

ManuelRauber avatar ManuelRauber commented on August 17, 2024

Hi @lesley29

thanks for your information! I hope you'll update soon, because it prevents building :)

from teamcity-unity-plugin.

lesley29 avatar lesley29 commented on August 17, 2024

@ManuelRauber We've just updated the plugin version for you. Please check how the builds are going now :)

from teamcity-unity-plugin.

ManuelRauber avatar ManuelRauber commented on August 17, 2024

@lesley29 Looks good so far! i can at least see that the license has been returned and the next platform is building. Finger's crossed!

By any chance: Do you know when JetBrains will update which Unity Version is available on the Cloud Agents, also that Windows/Linux/Mac have the same versions available?
Windows does not have latest LTS and Mac is "far behind" :)

from teamcity-unity-plugin.

lesley29 avatar lesley29 commented on August 17, 2024

Glad to hear that!

We're planning to update all the instances to the latest LTS approximately next week or so. Additionally, I'll look into why versions vary depending on the platform; they should be aligned. Usually, we try to catch up with the latest LTS ASAP. However, apparently, that hasn't been the case for some reason lately :)

If you'd like, you can share your vision/opinion on how you would like to see this process. Will the approach with an ASAP upgrade to the latest LTS work for you? Do you have any concerns?

from teamcity-unity-plugin.

ManuelRauber avatar ManuelRauber commented on August 17, 2024

Glad to hear that!

We're planning to update all the instances to the latest LTS approximately next week or so. Additionally, I'll look into why versions vary depending on the platform; they should be aligned. Usually, we try to catch up with the latest LTS ASAP. However, apparently, that hasn't been the case for some reason lately :)

If you'd like, you can share your vision/opinion on how you would like to see this process. Will the approach with an ASAP upgrade to the latest LTS work for you? Do you have any concerns?

Hi @lesley29

Thanks for your information, sounds good regarding the update to LTS :-)

Regarding a vision for how it could work, it would be great, if it would work like Unity Cloud Build: You can select any Unity Version available to use for the build, possibly as soon as there is the download for it.

For the hosted runners that should be easy, because the one hosting the runner is responsible for installing that Unity version.

For JetBrains hosted cloud runners, I'm not sure how it could work. Installing the correct Unity Version per build will cost a lot of build minutes. Having a runner per Unity version also does not seem feasible, will require a lot of storage, possibly maintenance on your side.

Also in the long run, I don't know how many customers are using the JetBrains hosted agents for building Unity project, a lot of game studios do not switch their Unity version anymore after a certain point in development.
So, if you start with a certain version on a JetBrains agent, it would be nice, that this version will be available for years.

If JetBrains updates to LTS asap, that would be a biweekly update, according to the Download Archive. In my case, since I only built a small hobby project where JetBrains sponsors the hosted agents (❤️), I can upgrade the Unity version easily.

But for the bigger picture, it seems to be a challenge on its own (if you don't want to spend build minutes for installing the correct version).

from teamcity-unity-plugin.

lesley29 avatar lesley29 commented on August 17, 2024

Hey @ManuelRauber,
Thanks for sharing this!

We've checked out Unity cloud build services, looks interesting. Unfortunately, with our current setup it seems complicated to provide anything close to it. Given that our agents have many different kinds of other software preinstalled. Probably, we will reconsider this approach in the future if see the urgent need in this or customers' pain :)

After some discussion we decided to stick to the following policy with Unity on JetBrains hosted agents for now:

  1. Provide 3 latest major LTS versions of Unity (e.g. 2022.X.Y, 2021.X.Y, 2020.X.Y) on every OS with the appropriate SDK pre-installed. (We actually do that right now, but they aren't aligned and Unity is missing on Linux agents, but it will be fixed in the near future)
  2. Keep up with the Unity minor/patch version releases for those LTS. Though, not on a bi-weekly basis, maybe on a monthly or so.

It's kind of a compromise, which we believe should cover the majority of use cases. You can keep track of the progress here TCI-452, feel free to comment.

a lot of game studios do not switch their Unity version anymore after a certain point in development

That's interesting. Could you elaborate please? Is it getting too difficult to update?

I'll close the issue in the meantime, if you don't mind, as the original problem has been resolved.

from teamcity-unity-plugin.

ManuelRauber avatar ManuelRauber commented on August 17, 2024

Hi @lesley29,

thanks for your insights!

I have to answer your question here, because your linked issue, TCI-452 is not visible to the public. I get a 404 when I visit your link. :)

Yes, you're right, that UCB is kind of different because they have any version available, no idea how they manage it. :-)

At first sight, your policy looks fine to me.
At second sight, I have some concerns.

Let me give you a real-life example that I currently have:

I've shipped a little mobile game on Unity 2021.3.5f1. After shipping, I didn't plan to develop it further. Meanwhile, someone found a little bug and reported that to me. Fixing the bug is easy. If I used TeamCity Cloud to build the game, I would now be required not only to fix the bug but also to upgrade the game to the latest 2021, which is 2021.3.32f1. This makes me need to verify if the whole game works overall as expected because I cannot know if I worked around a Unity bug that was resolved from my initial version to the latest version. That leads to much more work to do for fixing a little bug.
Also, the game uses some third-party things for managing native mobile things. Sometimes they also work around a Unity bug and the engine update could lead to the fact, that I need to update the third-party asset as well.

You see, upgrading the engine version can easily lead to an unfortunate chain of things you need to consider.
And I only have a small game, for bigger games it could be another story.

That's interesting. Could you elaborate please? Is it getting too difficult to update?

A part of the answer is in the text above. Let's take some games that shipped some time ago and still get regular updates:

As you can see, published games are super slow in updating their engine version. If they would use TeamCity, you will force them to upgrade their version, and I guess, that will not work.

For a game that is in early-to-mid development, I could guess, that upgrading the engine version is easier possible than a game that is near to release/QA phase and/or launched.

I'm not sure if the following would be possible - I'm not a "cloud build engineer", so I have no idea how such things like TeamCity Cloud works behind the scenes to manage all the build machines:

  1. JetBrains has a mirror of all Unity versions.
  2. In the TeamCity Plugin you can select any version that is mirrored by JetBrains.
  3. Upon Agent start, the TeamCity plugin will install the selected Unity version.
  • If possible, free of charge for the user?
  • Otherwise you would need to manage an enormous amount of pre-stored images.

That way, the user can use any selectable version without the need to upgrade.
Sure, it won't be as easy as those three bullet points, because at some point some versions may not work on latest OS versions anymore etc. So I guess the real solution will be more complex. 🙈

If you take a look at GameCI they have tons of images for each unity version. Since TeamCity can run Docker things, maybe it's something you can consider as well.

Also please keep in mind, that I do not represent any big game development studio. :-) My daily work was development consultant from small to enterprise business companies, nowadays product development, and solo game dev on the side. I've used JetBrains tools for years now, so I'm highly interested in improving them.

JetBrains did outstanding work with Unity and Rider, providing the best development solution. I hope you can figure out a plan so TeamCity Cloud can follow. <3

from teamcity-unity-plugin.

ManuelRauber avatar ManuelRauber commented on August 17, 2024

@lesley29 Sorry for the ping, just want to make sure, you've seen my post above. :)

from teamcity-unity-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.