Keep up with updates, or stick to one version?

I’m trying to get my act together and really get a project shaped up with UE4. I’m finding though that I start what I’m doing over again, or port what I’m doing to each new engine version.
By doing this though although I get lots of great new features, I don’t make much progress.

I’m wondering if there are any people who have decided to stick to a particular engine version and then update again maybe once or twice much later, or do most developers here keep up with each release?

Every game has the siren call of just freezing a particular version, because “it causes less changes.”

And, everytime that happens, the game ends up having to pull extremely scary hacks and twisted logic to hide bugs that come up during development, but are fixed in later versions of upstream.

It’s worth it to plan for a few person days for each major engine version (and it’s OK to wait for the .1 update to the engine versions before you do this.)
If something in a version actually ends up destroying something you really need, then it’s time to think about forking or other workarounds, but the default option should always be to accept upstream, and convert whatever you’re doing that’s not compatible with upstream changes.

This is a lot like continuous integration. If you don’t merge from trunk every day, your branch will diverge, and the merge will become more costly, up to the point where the merge will be so different that scary, crazy, unpredictable bugs will happen. Meanwhile, doing smaller merges more often, makes isolating what the problem is much easier, and ends up costing less in the long run.

3 Likes

It comes down to how far along you are in your project. If you’re still in a relatively early prototyping stage, upgrading might not be that big of a deal. Once the game is in a playable state, upgrading the engine can become a nightmare journey of frustration.You’ll end up spinning your tires going over the same ground when you could be finishing up your project.

1 Like

The trick we use on our project is two fold.

1). We decide if the game will benefit from the features. There was one version that we needed a new feature for and so we took the plunge and did the migration. So if you are in this scenario then you would have to upgrade to the newer version.

2). If you answered no above and you are using a source code repository server, then the trick is to create a branch of your project and upgrade that branch. If it works and you don’t have to make any major changes to your project then you can merge the branch back and you are on a new shiny version … this will typically involve some extensive testing.

If you are unsure, then stick to a version and get the project done, the most importing thing is completing your project and not getting fixated on always upgrading. Remember that once your project is finished, you can always go back and upgrade it to the new version at a later stage.

1 Like

Its also depends on project size and complexity. If project is small and simple there is no reason stick to old version.

What is your objective? To make progress on your game, or have more features in the engine you’re using?

The only reason to upgrade is for critical bug fixes.

To be fair, update only if:

  1. Update contains a crucial bug fix
  2. Update brings in a feature, that you planned to implement anyway but yet haven’t started working on it

From the Support FAQ - Visit Unreal Engine Support for Help and Customer Service - Unreal Engine

Should I update to the new engine version?
This can be challenging to answer, and is up to each developer to decide. The benefit of each version update is new features, improvements, and bug fixes. However the risk is that there may be changes to code or features that may cause your functionality to break until you go back and make changes to account for it. Additionally, new bugs may appear that didn’t affect you previously. Generally, you should only update your project to the latest engine version if it provides specific features or fixes that you require to continue development. Otherwise, it is safer and more practical to remain on your current engine version and focus on completing your project. If you do choose to update, you should always update with a COPY of your project. This way, if the copy experiences any issues that may take a while to resolve, you can safely continue development on the older version. Always be sure to review the Release Notes to look for any changes that may affect you, and participate in the Preview releases to proactively identify any issues before the final release.

My experience has been that, until such time that you’re six months out from release, the time taken to upgrade is almost universally worth it, especially if you keep merging often so each change is smaller. Just because it’s “playable” doesn’t mean that software development best practices suddenly stop applying.

(This is with other tools, not UE4 – haven’t shipped anything on UE4)
Lots of people, especially those that aren’t yet very good at software configuration management, convince themselves that merging a new version is going to be this horrible, breaking, time-wasting effort, when most of the time, that’s not the case at all.
And, as I said: If you merge, and make the necessary adjustments, and suddenly something important becomes super broken, that’s the time when you can start thinking about whether to fork (stay on older version) or dive in to solve it and move forward.

Go in for it, look forward to it, spend a day or two each month to make sure you’re up to date, and look over your build system and backups and other support systems while you’re at it. Your long-term project (and long-term multiple projects!) will be much better for it.

Thanks for the replies guys. Totally missed that part of the FAQ, looks like I have more reading to do.

I think at this point I’m going to stay with v4.15 until something else I really need comes along.

This is going to be a game but it’s starting out more as a solo rendering project, and I am indeed delving into the source code quite a bit, so it would be a pain to update frequently.
Once I’m done laying the ground work and gather a team, then we can worry about updates.

Until 4.14 i always upgraded within a week, and i always ended up with 3 days of pure nightmare, updating code and trying to get the project to work again, sometimes it wouldn’t even start the editor without crashing right away.

Since then i learned my lesson. What i do now is downloading the latest source and keep syncing it until the UE4 Dev Team no longer publishes updates for it, then i usually use the issue tracker and apply important patches myself. Result is a VERY stable 4.14.4 Version now.

I would wait with Updating until there is at least 4.15.1 out. Initial releases usually slap you in the face.

2 Likes