Original Post — Direct link
about 2 months ago - /u/ekimarcher - Direct link

Yea, the texture for the smoke used in the particle effect animation is missing from the current live build. It'll be fixed in the engine update patch.

about 2 months ago - /u/ekimarcher - Direct link

Originally posted by Techie4evr

Why don't you just post the texture for us to download and tell us where to put it? Unless of course you pack it into a file of which case make that file available to download and tell us where to stick it. Or flag that file as a hotfix and kick off an update event that just replaces the file. 1 minute fix to make thousands happy. profit?

TL:DR Can't do it that way and it's a way bigger total time investment to fix than it seems.

Oh if it were only so. This isn't something that can be sent out individually for people to manually add to their files and have it work. So a hotfix would be required.

Let's do a deep dive into what goes into the 1 minute fix that this seems to be. The live build is currently made using Unity 2019. Our entire development team has moved over to Unity 2021. In order to replace the file, we first have to get someone to revert their project back to the 2019 state. This is a 6+ hour process. So we're over the 1 min mark by several hours and we haven't actually made the change yet. The build machine also has to be reverted along with the staging servers. This can happen simultaneously but it does require someone to actually do it and it takes each of the dev, dev machine, build machine and server out of the normal development pipeline so we're slowing down 1.2 at the same time.

Now we fix the issue, which probably takes about 30mins to properly check in the editor because it appears in a few zones. We've gotta track down all the zones and check each of them. Let's be nice and call that 1 hour. That's good, so now we make a pull request, hand it to QA for testing and another dev for PR approval. Two more people are taken off their normal work to check it. The QA needs a build made to be able to test it in steam across multiple platforms so let's assume that's another hour at least. Now QA can test each zone, another hour.

So assuming nothing goes wrong at all, we're at roughly 8 hours of dev time. PR gets approved, passes QA and the branch is merged into the release branch. Now it gets handed to release and QA for regression testing to make sure that no other textures or random bugs have snuck in.

Several more QA hours testing later and assuming it goes as smooth as possible. This is a very sneaky cost because it slows down the fixing of other random bugs that probably get skipped. These are the random little things that get overlooked and are so frustrating. Then it gets released, community team writes patch notes and we push it out. Finally, all the systems that were switched back to 2019 need to be switched back to 2021, that's another 6+ hours and even more downtime.

I've skipped over stuff and probably forgotten some steps that I'm not involved in along the way. It doesn't really matter but the point is that it's a WAY bigger time sink than 1 min. The frequent response to this is "well just add in some more fixes at the same time to increase the value ratio". Yup, and before you know it scope creep has burned a couple weeks and 1.2 gets pushed back again.

Now, we have a 2021 update that is just going through final checks to be pushed out to live next year which will fix this. I think it's a lot more efficient for us to leave it in the game until that patch goes out. Frankly, even without the engine version issue, it's still probably not worth it at this time.

Sorry for the meandering rant but I really want to stress that while something might seem like a very quick fix, if it were, we probably would have done it already. We have producers whose job it is to evaluate all of this and decide if it's better to spend all that time fixing other bugs or developing new content instead. Given that we get this fix almost "for free" next hotfix, I very much agree with their decision.

about 2 months ago - /u/ekimarcher - Direct link

Originally posted by Techie4evr

I can't begin to imagine your environment and how you've implemented unity in it, but I know on a basic level, Unity does allow you to have more than 1 version installed and working and that Unity Hub is where you go to create new projects and load existingproject. It also lists what version of Unity the project is created from.

That being said, backups are a great thing and you should have them. If you were wise, once the conversion is done, make a backup of the 2019 project.

Now, the way I have unity setup, I could load the 2022 version of the project, go to folder that contains an asset I need and look at the thumbnails and whatever asset is Pink is the asset I need so then I would load the 2019 version and go to the same location to ensure that asset was not pink, right click and select "open location" which would bring up file explorer opened to that location. Close the 2019 project and bring up the 2022 project. In file explorer copy the asset (right click > copy) navigate to the 2022 project in file explorer to where that asset should exist and paste. Go back to the unity window and it should detect a change and update itself and once done, it should no longer show pink for that asset, then in unitys "scene" window, locate all the instances where it's used (because all instances should be pointing to 1 file or shader graph) to ensure its no longer pink and once satisfied build the project.

In short, if you had a backup of the 2019 project folder as it existed the final time you built upon it, you would have access to earlier files immediately without needing to revert any machines back.

Now, the above assumes the flame in your game is only broke because it is just a missing texture file. If the problem exists because Unity made a big enough change to the shader graph system that one of the nodes you used changed significantly (Example: no longer used and doesn't exist in 2022 or does exist, but under a different name) then of course you just update the shader graph making changes where needed within it.

Now again, I have no idea how you have unity deployed in your environment so maybe it's not feasible to have 2 versions existing on a machine at the same time, but on a home user level it is just that easy. But still, I would keep a backup of each project that gets approved to go live.

There are people with two installed. The version of the project they have in 2019 is the version just before the engine update so it has a ton of changes that aren't on live. So they still have to do a massive import which is where the big time investment is.

It's all going through asset bundles so those have to be rebuilt. It might not even have anything wrong though. Actually fixing the issue is the fastest part. Most of that 10 mins is actually just waiting for it to compile and load in to test. It might have just been a git issue on the build machine. It's possible that nothing actually has to be done other than rebuild.

The biggest part of the time required is still the testing of the entire build before it's able to be released.

Also the size on disk of the project files makes it extremely cumbersome to have two versions of the project. Not impossible, I sometimes have two versions going.

about 2 months ago - /u/ekimarcher - Direct link

Originally posted by salohcinzero

As a software dev on websites, I feel this response in my bones. Nothing is ever a 1 minute fix. When I started at Amazon, I wrote my director the 23 steps it took me to make my first 1 line big fix. Good times!

Love it when the paperwork takes longer than the bug fix itself.