I am a big fan of Ubisoft games. Especially the Far Cry games. I have played 6 out of 8 of those games. There’s something about the big open-world that these games puts you in. It feels great to wreck havoc and cause chaos in them; great escapism! Ohh and it applies to the Assassin’s Creed games too. However as I kept playing through Ubisoft games, I soon realised that they all have very similar qualities, in some cases it feels like same game. I have thought about writing a post on their games from a software engineering perspective for a while now. Hence, since I am dealing with some personal problems (relationship) right now, the timing couldn’t be any better for this i.e. it’s a great pass time. In this post, I will talk about my theory on Ubisoft engineers and how they maybe creating these open-world games. My theory involves them using some ingenious template for open-world games that cuts their development time by at least 30%.
Getting into Far Cry
Ubisoft (and their game dev studios) got involved from the second game in the series i.e. Far Cry 2 and while I played that game, I never really got into it. I got into the franchise from Far Cry 3 onwards. To me that game was simply amazing! The sense of how the game world was your sandbox to play in was just unreal. Causing chaos and wrecking havoc in the world was simply unparalleled. I mean sure, Grand Theft Auto gave you a similar level of freedom but there was something else about this. Maybe because it was a first person shooter (FPS)? I grew up playing FPS games, so to me I would always prefer an FPS to a third person action game. I am not a completionist i.e. a player who tries to do everything a game has to offer. When I play a game, I generally stick to the main story and try to finish it without getting too distracted by everything else. However with Far Cry 3, I finished every single side-quest it had to offer. I know it’s not my sort thing but I felt compelled to do so. I give credit to the game’s open-world, the weapons and the moderately challenging enemy AI.
Next Far Cry
FYI, I was a bit late to play Far Cry 3, so by the time I finished it, I had finished a few of the Assassin’s Creed games too. I played Far Cry:Primal next and this too was incredible. I mean, it’s a game where the player can ride a Sabertooth tiger and fight? If that doesn’t sound fun, then not sure what does! Once again, it was an open world full of side quests or as they call it, full of “open-world activities”. Before playing it, I had a few concerns about how much fun would that game be? Primal is set in the stone age where you fight with spears, bows and arrows, no machine guns, shotguns or grenades. However, somehow Ubisoft managed to make this a lot of fun too.
Far Cry 4
By the time I played Far Cry 4, I had played Assassin’s Creed: Unity as well. I started playing Far Cry 4 and soon, I had a feeling of Deja Vu. It felt very similar to 3 and Primal but somehow less fun? Not sure how, because it had all the same elements that made the other games so great.
- Large open world – YES
- Lots of side-quests and activities – YES
- Great weapons to play with – YES
Yet it wasn’t as enjoyable. It was fun none the less and I had a great time playing it.
Far Cry 5
By now I have played Assassin’s Creed: Syndicate and Origins as well and, I have only just started playing Far Cry 5. This is my least favourite of all Far Cry games. Again, it has the same great stuff and really really incredible graphics. I cannot stress enough of how good the graphics are!!! Yet, I don’t like it. Is it because I feel these open-world games are too similar? Actually yes so let’s do a delve deeper into it.
p.s. Assassin’s Creed games is another one of Ubisoft’s long running game franchises.
As of late, the Ubisoft open-world games (Far Cry, Assassin’s Creed etc) or the Ubisoft open-world are almost a genre of it’s own. They all have,
- A large world map that presents a massive open-world
- Lots of side-quests and activities to do
- A ton of items to collect. They are either weapons, trinkets or other secrets to unlock
- Little hunting mini-games that take up your time
- Open-world events that you can engage in. These occurred at lower frequency in Far Cry 3 but saw a major surge from Far Cry 4 onwards
I have experienced the above things from both Far Cry and Assassin’s Creed games that I played. So given the similarity in these games across their 2 game franchises, it makes me think,
Have they built a world generator?
Ok moving away from playing games, let’s think about this from a software engineering perspective. One of the things we want to achieve in software engineering is code reuse. Software engineers are expensive to hire and can easily get bored if they have to write the same thing again and again. Therefore to keep the costs low and continue challenging the engineers, maybe a smart architect or engineer at Ubisoft (one of their game dev studious) came up with a world generator. This world generator would just take in a bunch of parameters and return an open-world. This way, the engineers can focus on newer problems instead of writing the same world generator code for every game.
I understand that building a game is harder and more involved than any other kind of software. However, I think a world generator concept is entirely possible. Think about it, you can have a world generator function, that takes in as input a map and a set of parameters on what to generate. This function, can go through the input parameters and randomly generate a bunch of stuff. It can then consider the geospatial information and randomly place items on the map. This way, the core of the world generator remains the same but the static assets (character models, sounds etc) change with each game.
Don’t mistake this with the main story of the game, that will be original to each game. However, the world in which it takes place is generated via some brilliant software engineering that involves code reuse. Even with the world generated, there’s still a ton of work for game developers and testers to do. Fine tuning, balancing and refining the gameplay would take a LOT of time. That’s part of the reason why a game developer job is not a 9 – 5 job. You are expected to do all nighters close to a game’s release date.
Re-use evidence in Ubisoft games
There’s plenty of evidence to think support my theory of code reuse, let’s look at some of it,
- Hunting wild life: Hunting animals was always in Far Cry Games but with guns. In Far Cry: Primal released in February 2016 you hunt with bows, arrows and spear. Assassins Creed Origins released in October 2017 has it too. It was the first Assassins Creed game to have hunting
- Fishing: Ubisoft first dabbled with fishing in Fishing Planet in 2015. Have a look at this video from Fishing Planet and compare it with this video from Far Cry. There are similarities in the mechanics aren’t there?
- Uncovering world locations: In Far Cry 5 (Early 2018), you (as a player) discover the world locations by talking to other characters. This was something new to a Far Cry game. Now, their most recent release (Late 2019), Ghost Recon: Breakpoint, one of the trailers showed that “here you discover map locations by talking to NPC’s”. See what I mean?
- There are other examples but for the sake of keeping this post short, I won’t mention them
My theory of this code reuse by Ubisoft across games has increased lately. It’s almost like, every game they release now has elements from every other game. I may not enjoy playing the game as much but as a Software Engineer, I love it. I absolutely love this concept of smart code reuse architected by their team of brilliant engineers. Actually, observing this influenced how I make my iOS apps. Now more than ever, I identify each business functionality (feature) and bundle together the code for it. This way, I am re-using features across my apps. Of course there are some app specific tweaks are needed but having a pre-built feature does reduce development time by 30-60%.
Why would Ubisoft do this?
A few things,
- To keep up with their rapid release cycles for games (1-2 years)
- To stay profitable and reduce development time
It all boils down to keeping the operational costs low while staying profitable. Software development is very expensive, especially for games. For every new game, their entire team gets to work in creating new art, story ,character models, gameplay mechanics etc etc. Given how good the graphics have become, gamers have come to expect a certain quality from their AAA games i.e. big budget games from established studios. They expect it to have bleeding edge graphics, persistent online functionality and updates for the months to come. For a company as big as Ubisoft, it’s simply too hard to stay profitable, hence the use of such tactics.
A few things to note about this post,
- It’s just my theory
- Do you agree with me? answer in comments
- Whatever the consensus, one sure thing is, Ubisoft game development studios have brilliant engineers and software architects! Good on them!
As usual, if you find any of my posts useful support us by buying or even trying one of our products and leave us a review on the app store.