Builtin Versioning System

Unreal Engine might crash while saving asset and corrupt that asset which completely disable it to lunch again. (Only today happened to me four times) For novices this might mean lost of the whole project if they didn’t think of that possibility beforehand and didn’t make backups by hand. That lead to major inconvenience and loss of time and passion for their projects. Setting up Perforce or Git is unproportionally complicated for people that want just learn and work on their small hobby project at home. Still there is no system in Unreal Engine that prevents this situation.
I think it’ll be a good feature to have Unreal to be able to determine what asset causes it to Crash at startup, and offer user to revert it to one of the previous versions of that asset or the whole project. It might be some simple single user system. If one need something big powerful and that’s support multi user workflow they can use third party solution for that. But it’s very important For any software not to say a game engine to not to have a situation when the current state of the project prevents the whole thing from loading and working properly or at least having opportunity to fix the problem with minimum effort.

For what’s is worth, you can find older revisions of a file in /Saved/Autosaves folder.

Yes, may be I can find it there. But it doesn’t work in 100% cases. And what I’m trying to say that there’s must never ever be such a situation, when user get a constant crash on startup of the project and have no instructions how to easily fix this situation and get it to work again.

Use git and commit often. Once you get used to git it’s not hard to use. I like the tortise git ui.

It’s not about me or what to use. I personally prefer Perforce, and if I’d use git, I’d use gitkraken actually. But I don’t understand why people exactly “must” use third party tools to fix broken parts of other tools. Isn’t it better to fix whats broken in the first place?

Nothing is broken here.
If somebody didn’t use backups or version control yet, he should after the first encountered issue with corrupted asset. The are very different reason for crashes (not only during startup) and most often is caused by code bug, asset is fine. There’s no way magical way to guess if asset is corrupted - since application using asset just crashed.

Actually there’s plenty of ways to guess if asset is corrupted as it starts to load before application crashes. So it’s possible to check the file for consistency before actually load it in to the system. It’s also possible to rewrite loader so it wouldn’t crash, if it gets whatever data, as many of the normal programs do. Just display a message on loading error and link to broken asset. Loosing one asset might be not so big deal after all. Also, it’s possible to just write a name of the asset to some kind of log before loading each of the them, and if editor crashes there will be a name of the asset that causes the crash, so on next startup application might suggest actions to fix the problem like just not to load it, or revert to previous version, or whatever. And this just a couple of examples that comes to mind first. I believe that people, who’ve been able to make a game engine, can think of even better ways to do so.