The random ramblings of a French programmer living in Norway...
← The OriclopediaFreeboot revisited →
  Half a Life in Video Games
Sat 4th January 2020   
Time flies.

We just entered 2020, and since I started working at Adeline Software in January 1995, it means I've been working in the Video Game Industry for 25 years, without a single interruption1... and since I'll be celebrating my 50th birthday this year, it also means I've spent half of my life doing it.

10 years update

I had written a short post for the 15 years anniversary, so I guess I could start by summarizing what happened at Funcom between 2010 and the end of 2019.

Age of Conan: Rise of the Godslayer
Age of Conan: Rise of the Godslayer

I think the word "Roller Coaster" is probably what comes to my mind:

We released an expansion for Age of Conan2, then The Secret World, the company expended with studios in Montreal and Beijing (in addition to Oslo and Durham), new teams started to work on new projects (Fashion Week Live, Pets vs Monsters), Funcom started to act as a publisher for some other studios (like Bloodline Champions from Stunlock Studios).

The Secret World
The Secret World

These were hectic times with inter-studio communication, struggling with internet line reliability over the Atlantic and through the great firewall of china, and then things started falling apart:

The company had grown too much, too fast, and neither Age of Conan or The Secret World performed as well as expected... Massively Multiplayer Online games were not the hot stuff anymore.

The following years brought a massive work force adjustment, investigation3 for stock market manipulation, replacement of the higher management team, emergency changes to business models, various attempts at strategy changing, until finally we reached the lowest point with the failure of the Lego game.

Lego Minifigures Online
Lego Minifigures Online

The End of Dreamworld 4

I personally think this was a great game in many regards, with a huge variety of characters and special abilities, some relatively interesting story line as well.

Unfortunately, it was not Lego Batman, or Lego Star Wars, or Lego Indiana Jones: It was "Lego Random Generic Character", and that did not sell well enough.

The failure of Lego was the final nail for the Funcom internal tech.

The new plans were to try to get on the big consoles, and we simply did not have the manpower to port the tech to run on PlayStation and XBox.

That's a shame, because if in 2005 the Funcom tech was a giant pile of spaghetti, by the time we started the Lego project we had managed to get something that compiled relatively cleanly and fast, we could run the game on Windows, OSX, iOS and Android.

We had a proper multi-platform export pipeline, with an efficient export farm able to reprocess all the assets for all the platforms as soon as they were modified by artists and designers, heck, we even had a working entity/component system and LUA scripting!

We took the best parts of Dreamworld 4, and morphed it into Dreamworld 5, a tech framework used to leverage the capabilities of the Unreal Engine.

Funcom 2.0

At that point it was decided to switch to the Unreal Engine.

A typical 2019 game
A typical 2019 game

In the original draft of this article I had an entire section about UE4, but for the sake of the new year spirit I decided to remove it: We already have dramatic fire events in Australia, some crazy people toying with the idea of starting World War III, and French people are in the street fighting for the pension system... no need to add more fuel.

Conan Exiles
Conan Exiles

Anyway, thanks to Unreal, we were able to release Conan Exiles on multiple platforms, and the game is performing well.

Actually, Exiles is the best selling Funcom game ever!

The company is now debt free and with cash in the bank!!

Conan Exiles is probably my favorite among the Funcom games I worked on:

The fact you can play offline, just with your friends or with complete strangers, manage your own servers, develop and install mods, etc... makes it ultimately a much better game (imo) than Age of Conan.

And on the personal side, players seem to be happy4 with the Dedicated Server Launcher5 tool, so that makes me happy :)

Conan Exiles: Dedicated Server Launcher
Conan Exiles: Dedicated Server Launcher

What about Me?

When I still worked in France, I was told that I should be seriously thinking about a career change, because nobody was expected to still be programming when they were 40 years old.

Well, guess what, I'm soon 50, and I'm still programming.

Working in Open Space
Working in Open Space

That being said, I'm feeling the weight of the years: I know that people love to share motivational pictures about "being young is in your head", but when your joints crack in the morning, the visits to the doctor get more frequent, and the need for multi-focal glasses become urgent, it's not just "in the head".

I'm trying my best to stay in shape, I walk as much as possible, I take the stairs, I try to valiantly resist the song of candies and cakes provided by our awesome HR team, so we will see how things go.

Statistically, I have to work 15 more years (give or take) until retirement, so the question is to know if my skills and abilities will keep up.

Which brings me to the final section of this post.

The state of the industry

The video game industry in 2020 is not the same as what it was 20 years ago, and if some things have improved6, some have gotten way worse.

What we've seen with the current generation of software is an incredibly poor track record in managing complexity.

There's never been so many programs released in a state where months or even years of updates have been necessary to make them usable, not only in the game industry, but also operating systems, middleware, languages, frameworks and development kits.

Early Access7
+ Pseudo Agile
+ Meeting Financial Deadlines
= Release Crap Earlier And Try To Fix It Later

The problem is that software development is now literally a software stack8:

When I write an Oric or Atari program, I take the entire hardware for myself, there are no drivers, no abstraction layers, no function calls, I have 100% control on every single byte of data or instruction that my program interact with, including on the physical media it uses to load.

Each new iteration of hardware and software adds layers, bring new9 revolutionary concepts and ways of doing things, and deprecates what was hot six months ago.

A typical 2019 application
A typical 2019 application

And that's the same thing on the back-end:

Monstrous web applications or services running on top of frameworks built on top of abstraction frameworks built on top of... all that running in abstracted hardware running on somebody else computers10 and when things fail people are surprised11.

Digital rot

It started by thin libraries you had to include in your program to interface with the hardware, then we got consoles able to connect to the internet and download updates, checks for things in the background, real operating systems with unpredictable and inconsistent memory and cpu usage...

Now we get SDKs12, tools and support forums which have been obviously developped by people seriously lacking experience, probably managed by people lacking common sense, releasing broken stuff that require specific versions of operating systems, tool-chains or compiler language extensions to run at all, and when six month later they realize that was not a very good idea, then they scrap it all and release something completely new and totally incompatible with the previous version!

An interesting side effect of all that, is that most of the previously useful knowledge repositories are now pretty much unusable, with still relevant information burried in search results by thousands of irrelevant questions and answers related to long discarded fads.

In the documentation world, some relevant documentation did not survive the restructuring of some websites. A significant part of the MSDN13 has been lost, with reference and blog articles pointing to nowhere, which is a real issue when you happen to have to maintain software written 5, 10 or 15 years ago.

Recently Microsoft decided to release Visual Studio 2019 with a new Agile development method with very frequent releases (weeks or days instead of months or years), but the problem is that they seem to have lost their QA team, so each version comes with new features... and a long laundry list of fixes for things they broke in the previous versions.

This is insane.

Let's all hope for the best, but please think seriously about your technical choices so they don't come back haunting maintainers down the road.

Thanks, and happy new year everybody :D

1. Other than holidays and some hospital time because of a car crash in 1996
2. Rise of the Godslayer
3. After a long Økokrim investigation, the courts have judged that no insider trading or market manipulation happened
4. Despite the occasional bug.
5. Available on this Funcom forum post
6. Globally, it seems that even the amount of Crunch in 2019 was not as bad as it used to be.
7. Conan Exiles was released in Early Access, but contrary to many other games, it was actually released for real at some point
8. Or the equivalent of the leaning tower of Pisa, but I guess that explains why we have "Full Stack Developers"
9. Generally recycled ideas from a long long time ago
10. "The Cloud"
11. Don't get me wrong, I'm not against frameworks and virtualization, but it's not because it's there that you have to use it: If a simple shell script or local web page does the work, why would you add dependencies that need to be maintained?
12. Software Development Kit
13. Microsoft Developer Network
comments powered by Disqus