Comments (10)
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.
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.
Hi @lesley29
thanks for your information! I hope you'll update soon, because it prevents building :)
from teamcity-unity-plugin.
@ManuelRauber We've just updated the plugin version for you. Please check how the builds are going now :)
from teamcity-unity-plugin.
@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.
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.
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.
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:
- 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)
- 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.
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:
- Airport CEO, ~200k-700k owners, EA release date on Sep 2017, 1.0 release date on Mar 2021 runs on Unity 2019.4.40f1
- Escape from Tarkov, no public available owners, started on Unity 5, announced 8 months ago they will transition to Unity 2021. On 10 Nov 2021, they switched from 2018 to 2019. On 27 Oct 2019 they switched to 2018 (no info what the old version was, possibly from version 5 where they initially launched)
- City Skylines II, ~400k-1.3M owners, release date on 24 Oct 2023, runs - according to a crash log - 2022.3.7f1 (released 8 Aug 2023) which is pretty new but not the latest 2022 one. I could guess, that they possibly can upgrade to the latest 2022, but I don't think they will upgrade to 2023 anytime soon, if at all.
- Beat Saber, ~1.3M-3.9M owners, released May 2018, runs on Unity 2021.3.16f1, they updated on 3 Mar 2023 to this version, so they seem to keep a bit up to date with latest Unity 2021 versions, but they are behind 16 versions now, latest Unity 2021 is 2021.3.32.
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:
- JetBrains has a mirror of all Unity versions.
- In the TeamCity Plugin you can select any version that is mirrored by JetBrains.
- 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.
@lesley29 Sorry for the ping, just want to make sure, you've seen my post above. :)
from teamcity-unity-plugin.
Related Issues (20)
- Build log blocks HOT 2
- Plugin Does Not Build HOT 1
- Can't fix Unmet requirements: Exists=>unity\.path\..+ exists
- Unity 2020.3.18f1 not getting detected on openSUSE Linux HOT 4
- Teamcity agent not detecting any Unity versions HOT 3
- How to "Automatically activate and return Unity Editor license"? HOT 1
- License Activation not working with Plus License + Team City Cloud (teamcity.com) HOT 1
- error CS2011: Error opening response file
- More platforms HOT 2
- How to specify multiple test categories? HOT 1
- Is this project abandoned by JB? HOT 1
- TeamCity picks up old Unity version HOT 1
- Unity plugin cannot startup on agent side HOT 3
- Unable to locate tool unity in system, despite tool being installed HOT 1
- Is there a way to parameterize unity version if using the Tool installer? HOT 1
- Installations list is unsorted thus returns "random" version and not the latest HOT 2
- Feature Request: Activation / Deactivation for any build step HOT 3
- Linux Build Targets not working anymore after latest TeamCity 2023.11 Cloud update HOT 16
- Unity Buildstep fails although failure condition is disabled HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from teamcity-unity-plugin.