Auto Desk Flip

Home

Tags:

Rant · Misc

After working on a project that required me to deal with 3ds Max for several months now, I can say without any hesitation that it is the worst piece of shit I have ever had the displeasure of dealing with by a long shot. Nothing else I have used before even comes close to the absolute atrocity that this steaming pile of garbage is. Anyone that has had to use it an extensive amount of time could probably write a book about how fucking bad it is. The best thing is that I have never even used it for its actual intended purpose. All I had to do for the project is open it and then test some functionality added by a plugin and yet that was enough to make me pray to god that I never have to deal with this gigantic truckload of shit ever again, although considering that this software exists I’m no longer sure whether there even is a god.

It all begins with the startup. It’s not uncommon nowadays for larger programs to take a hot minute to start up despite ever increasing storage, RAM and CPU speeds. But as with everything else 3ds Max takes the cake and outdoes anything I’ve seen before. When you start it up the first thing that happens is - nothing. The longer you work with it the more sanity you lose, eventually leading you to doubt whether you even started the program at all. Eventually you might check the task manager to make sure you haven’t lost it completely yet. Before that happens you’ll get at least some feedback that 3ds Max is, in fact, starting up: the icon shows up in the taskbar. After that a whole lot of nothing again. By now any self-respecting software company would’ve realized that the startup process of their application is in dire need of a refactor, but not autodesk, no, to them this is normal and everything is fine. After waiting some more you’ll finally be greeted with the ugliest most convoluted user interface you have ever laid eyes upon. Nothing makes any sense, there’s toolbars stacked upon toolbars and menus that have no order, rhyme or reason. If you think that Blender used to have, or maybe even still has, a problem then this user interface is the mother of all problems, but you’re not yet at the point where you have to deal with it because if you thought that seeing the UI means that the startup has finished you’re in for a surprise. The moment you catch a glimpse of that convoluted mess of controls, viewports and other indiscernible UI elements you’ll get a first taste of what 3ds Max does best: Freeze. An inexperienced user might think that it crashed, which is a fair assumption because that is also something that 3ds Max does well, but in this case it’s not what’s happening. The UI will just freeze for a little bit, after all you haven’t waited long enough already, but how does the saying go? “Good things come to those who wait.” In this case nothing but the worst is coming and it’s not worth the wait. After the UI finally catches itself you’re now ready. You can finally start doing what you’ve come here for. Be it 3d modelling or just pondering your life- actually that’s not true. Ha, fuck you, did you think that was it? Of course, after 3ds Max becomes responsive for the first time it’s all just a trick. Shortly after, this piece of shit freezes AGAIN for no good fucking reason. Alas, after having endured this monumental test of your patience and closing whatever stupid startup dialog you may or may not be greeted with you’re finally ready to suffer some more: 3ds Max has finally decided to allow you to start using it and you are free to bask in the greatness that is this torture- I mean “professional” 3D computer graphics program.

As I’ve previously stated during my time using it, I have not actually used, and hopefully never will, use the program for what it is intended for. That is to say I have not created any models with it beyond simple cubes and I do not for one second envy anyone that has to use it for more than that on a regular basis because even such a simple task is already excruciatingly painful. At least Blender gives you the first cube for free. From my exclusively negative experience I can say that even simple usage is more than enough to learn to hate 3ds Max. It has basically no redeeming qualities.

After successfully having survived the launch process and somehow managing to actually create something in this abomination of a program, you can now start to render things. Maybe. Except if it uses any textures or outside resources in which case you’ll have to deal with what ever the fuck “Xrefs” are supposed to be. I have run into scenarios where exporting a scene for rendering will randomly fuck up the paths for referencing textures and there’s nothing you can do about it other than pray. If you’re now thinking: “Duh, just pack the materials into the project file”. You can’t. You literally can not do that. You will have to suffer through issues caused by incorrect paths for all eternity. You might be able to sometimes fix it if the planets align and you save and load an ungodly amount of time. Don’t ask why. On the subject of loading you’ll also be pleased to find out that 3ds Max is incapable of releasing files it opened after you close them. That’s right, unless you completely close the application it will hold onto and lock any and all project files you’ve previously loaded. That means you cannot delete them. So just close 3ds Max. But also make sure that you’re manually closing certain docks before you do so, otherwise it’ll crash. Yes, there are some docked windows that will cause some arbitrary .NET exception if they are not closed before the main application. If you’re insane you might think that this is not a real issue, after all an application crashing on exit isn’t the worst thing. The problem is that this exception blocks the shutdown process which becomes a real issue if you’re doing automated renderings.

This brings me to the last issue that I can currently think of: There is no documentation. If there’s one thing that 3ds Max might have going for itself, it’s scripting. But there’s no documentation. You’re left to trail and error and calling macros with arcane IDs as names. Your best bet is to do scripting through python so you don’t have to deal with the abomination that is MaxScript, but the python interface is incomplete so you’re required to call MaxScript through python. Thankfully I have not had to deal with much of that, but while I’m on on the topic of MaxScript I might as well mention another one of the many ingenious user interface design decisions applied in the application. The program offers users to execute both MaxScript and Python through an interactive shell. Now since there’s options for two completely different languages there has to be some kind of way of switching between them. The user interface elements of choice for that are two radio buttons. Lord knows why.

screenshot of the dumbest UI you will ever lay eyes upon, if you can’t se this, be happy

Now that isn’t the biggest issue. You just click either of them and you’ll be shown either the interactive shell for Python or for MaxScript. The problem is more of how the interactive shell works. It’s not like a terminal where you type and then press enter, but rather like a normal textbox in a text editor, except that you can’t really select text. This also means that up and down does not switch between previous commands but rather moves the cursor up or down into the previous or next line. The best thing is that it doesn’t even have any use as you can only edit the last line, moving the cursor up therefore has absolutely no use, so not only can you not easily get back previous commands but the option has also been replaced by something utterly useless. Lastly there’s also a nice surprise for when you try to delete text. If you press backspace for a while to delete a long line make sure that you stop EXACTLY after the last character was deleted. Pressing backspace when there’s nothing to delete will, for some reason that I cannot fathom, switch from the Python shell to the 3ds Max shell. How on earth this kind of behavior makes it into a finished product is beyond me, but at this point I’m convinced that it was not on purpose and nobody wants to figure out why it’s happening.

Now these were just a few issues I had to directly deal with, yet they were enough to instill this lasting and utterly horrendous opinion. But here’s some other things that I’ve heard.

A render farm using 3ds Max has for the longest time had issues with some renderings turning out different for seemingly no good reason. Rendering them multiple times would give different results in color and contrast. The difference wasn’t big, but noticeable and obviously slightly annoying. After a lot of trial and error it was finally revealed that depending on the machine the rendering was processed on the results where different. After some more digging it became clear that the system locale was to blame. If the rendering was processed on a system using a language where a comma is used for decimal separations the rendering would turn out different. 3ds Max expected parameters to use the decimal writing style of the local system. Long story short all parameters where send using dots, i.e. “contrast=1.2”. On some systems 3ds Max expected the parameters to look like “contrast=1,2” and obviously did not throw an error, but instead just cut off everything after the dot, so a contrast value of 1.2 would turn into 1.0. This is the type of shit you have to deal with when using 3ds Max. I’m aware that the locale is a more deeply rooted issue that not only affects 3ds Max, but there’s ways around that. Not throwing an error, but instead fucking up the values is exactly the kind of shit you’d expect from a steaming load garbage like 3ds Max.

Another thing I heard is that there was at some point supposed to be a rewrite which would come with a macOS version. It apparently was also fairly functional and then nothing ever came of it. This just adds to theory that the software is a gigantic irreparable mess that has no hope of ever being fixed. Generally the user interface seems to be biggest problem. It’s probably why it takes to fucking long to load, it looks like shit and on top of all of that it also seems to be completely impossible to detach it from the rest of the program. I have also heard that 3ds Max has a “headless” mode, i.e. it’ll run it without the user interface and just does what it is told via command line arguments. This idea probably manifested once autodesk realized that their software is irredeemably fucked up beyond all recognition and that there was no way of saving it. So the next best way is to try and remove it. Makes sense, especially when your program takes forever to start and customers are starting to become pissed off at the fact that they have to waste computing time on expensive cloud hardware for loading a user interface that is of absolute no use on a render farm (or in general if you ask me). So now there’s a headless mode, right? Right? Well yes, but actually no. Somewhere along the line they must’ve realized that 3ds Max and its user interface are completely entangled and can not be separated from each other, i.e. if you try to remove the UI it just blows up and stops working altogether. So what you do when you have to deliver a headless option, but can’t because you’re working on a piece of software that can only be described as a humongous trash fire? You do the next best thing and fake it. That’s right, from what I’ve heard the headless mode does the following: Start the application like normal and then - drumroll please - just fucking HIDES all the windows. Ignoring that this is utterly fucking insane it also COMPLETELY misses the point of why the headless mode is even necessary.

This is just scratching the surface. One can only imagine what unimaginable crimes against humanity hide in the depths of the source code of that monstrosity which has accumulated multiple decades worth of tech debt. It is probably for the best that I’ll never find out.

I can not fathom how anyone would willingly want to spend even a single dime on this or any autodesk software. It is completely beyond me why anyone would not only subject himself to this torture and then on top of that pay horrendous monthly licensing fees. There is no way that switching to something like Blender would be more costly in the long run. Also Adobe is frequently shat on for being a garbage company. Which is true, but autodesk also is a shitty company and they somehow fly under the radar when it comes to this.

Tags:

Rant · Misc