Skip to main content

My CD Projekt RED story, part 4

My CD Projekt RED story, part 4

We left off right after I had a chat with my lead, which I’m calling Dave here. I hoped that chat would help fix some of the problems brewing between the two of us. Alas, that’s not what happened. The very next day I could see Dave’s attitude towards me change for the worse. He would avoid looking me in the eyes and generally stay away from me.

Hoping for the best

Regardless of all the negative interactions I’ve had with my lead, I was determined to not let the conflict influence my daily work. I’d been as helpful to other developers as I could, enjoying fruitful cooperation with all the developers I worked with - gameplay designers, UI programmers, sound designers, the engine core team. This translated directly into my monthly ratings, which were always above average. The monthly feedback at CDPR at that time amounted to your lead giving you a grade of sorts. From the worst to the best, you could get either a thumbs down, thumbs up, a star, a throphy or a red cardinal (there might be one other grade I don’t remember now). Up to that point, all my grades where positive, with the majority of them being either a star or a throphy. Our team had just been assigned a new HR partner around that time. She booked a one on one meeting with each of us to introduce herself and break the ice. I used this opportunity to confide my troubles with her and asked her for help. I handed her a list of issues I’ve had with Dave, which she promised to read and get back to me in case she needed more input. That list contained a lot more than what I mentioned so far. There were many other issues which I skipped here for brevity's sake. Many of them would require background information that would easily turn each of them into posts of their own. While waiting for the HR partner to get back to me, I’ve thrown myself back at the work at hand. At that point I’ve had mostly caught up with my coding skills and no longer felt behind all the other programmers. I was taking on big tasks and would drive them to completion on my own most of the times. Here’s a short list of the things I’ve been the sole programmer responsible for:
  • development and maintenance of the audio engine configuration data management tool,
  • R&D on the integration and usage of WWAPI (Wwise API) in the RED Engine 4,
  • implementation of the great majority of weapon, locomotion and interaction audio logic triggers,
  • creation of a system that would automatically trigger locomotion sounds for moving characters,
  • deployment of an audio interface that would take care of all UI audio triggering.
There were also other areas I was involved in, like support for the automated voiceover mastering system’s frontend or improving the new audio system to name a few. It’s been one of the most creative periods in my life, working closely with gameplay designers, the UI team and the sound designers. The vast majority of the developers I had the honor to work with were talented, clever and experienced people. I absolutely loved having the opportunity to work with them and felt there was nothing we couldn’t achieve together.

Shattered

Lost in the work, I didn’t realise when a month had passed since I met with my HR partner. Eventually I received an invitation to a meeting with her and Dave. I was very anxious about the meeting, but couldn’t help feeling relieved and hopeful. I thought that finally we could start addressing the issues and leave the bad emotions behind us. I entered the room with an open mind, sat down and immediately realized this meeting will not go along the lines I thought it would. The HR partner started speaking with a solemn voice and for a brief moment I felt like a tight band was tied around my head. She spoke at considerable length about them being sorry to have to give me a thumbs down and call for me to improve my performance. Dave was taking over from time to time to explain the specific reasons for why my performance was considered below expectations. He started off with saying it’s not about the quality of my code or architecture - those were fine and he appreciated the progress I was making. However, apparently I was terrible team player, very negative towards other people and straight up hostile to others. I asked for specific examples, but Dave was quick to point out this is confidential information that couldn’t be shared with me. So I asked how could I improve the relations with certain people without knowing who they are. Again, this question was brushed aside and the argument about my general attitude towards my colleagues was put forward. All that time the HR partner sat there with a puzzled expression on her face. I turned to her and asked her to talk to all the people I worked with on various different features at the time. I mentioned people from gameplay, UI, sound - all the people that worked with me and could actually judge my performance. This was immediately cut by Dave stating that their due diligence was done and that I should look at myself more critically. The HR partner seconded that opinion, pointing to me that this meeting might be a bit too negative for me to open up to the thought that I should accept the feedback. I was devastated after this meeting. I couldn’t believe the HR partner did not try to challenge my lead at all, instead taking his words at face value. At least I knew all of it was just a plot orchestrated by my lead to get rid of me (please bear with me here), so I went to talk to the senior sound designer and the principle composer - the two people driving the audio team with Dave. The senior sound designer was as dumbfounded as I was when I told him what had happened. The principle composer on the other hand… He was quite open in admitting he was not surprised by the news that my lead was actively trying to get rid of me. He also made me aware that this is how the game is played at the company. The quality of your work doesn’t mean anything if you cross the wrong person. That’s the point I want people to get out of this story - CD Projekt RED is no different than any other corporation. Inhouse politics is as horrible as it is in any other company. In fact, when interviewing for positions in different companies, most of them tried to convince me to join with promises that their projects are not managed as badly as RED’s.

Getting out

Soon after the meeting, I started thinking about leaving the studio. I really didn’t want to leave all of the buddies I had worked with, but at the same time, I just couldn’t see myself continue on like this. There was nothing I could have possibly done. I’ve tried talking to many developers I worked with to find out whether there is anything I could improve in our cooperation on my end. Not a single colleague could offer me any negative feedback. After two good friends of mine had left the studio, I finally decided to leave as well. When the people I worked with had found out, many came to me to thank me for my work and mentioned how it’s going to be much harder for them to continue without me helping on the audio tech side of things. It took me months to recover from this dreadful experience. I would constantly find myself thinking about how such things are even possible. To this day I cannot understand how a company like CD Projekt RED, so beloved by fans and gamers who see it from a consumer perspective, can be so mismanaged. What is the point of performance reviews and keeping a sizeable HR department if a single lead can destroy any person without any checks and balances in place? During my exit interview, which every leaving employee goes through, I’ve had the opportunity to talk to the Internal Communication & Culture officer who actually walked me around the studio during my onboarding day. She admitted they are worried about the state of the audio code department, which had bled 3 audio programmers in the period of 1,5 years. Each of those programmers, me included, mentioned Dave among the reasons they were leaving. She seemed genuinely concerned about it, but at the same time, I could feel her helplessness.

Summary

Most of the people I worked with at CDPR were aware of the ‘Dave problem’, yet nobody was able to do anything about it. What’s worse - there are more people just like Dave at CD Projekt RED. Most of them have lead or director positions and are practically untouchable. They are friends with the studio management, they cover each others backs and generally run a kind of a political force in there. If you come in there and cross any of those people - you are going to be pushed out sooner or later. Many people asked me whether I consider what happened there as mobbing. I find this question very difficult to answer, mainly because of how mobbing is defined in Poland. Here, in order for an activity to be treated as mobbing, there are a number of things that need to occur, and all of them must occur and be possible to prove. It’s nigh impossible to prove mobbing in this country because of those legally described requirements. However, I will say that I felt mistreated, misrepresented and lied about, without any way to defend myself. I know there were many people who were treated very similarly during my time at RED. Some of them were fired, some of them were forced to resign. In most of these cases, such a person simply disappeared from one day to another. People who worked with them closely would not be notified at all, which often brought a lot of chaos into certain feature strike teams. It was clear none of the higher ups really cared about the disruptive effects their actions would have on development. All they cared about, it seems, was whether they feel safe and unchallenged. If I were to sum up my experience with CD Projekt RED in one paragraph, it would go like this: it is a great place to start your gamedev experience, to learn a lot from other developers and be a part of something great. However, if you are ambitious and struggle to accept unreasonable workflows and management, you will reach a point where your career will get frozen. If you want to be successful in RED, you need to crunch a lot and either ignore the incompetence of the leadership, or be politically inclined and have a deep throat. Otherwise it’s going to be difficult for you to make a successful career at the studio. Me personally, I feel like I’ve learned a lot there. I joined the studio knowing practically nothing about game development. I’ve had the luck to meet some rare examples of good leadership, which afforded me the opportunity to learn and climb the ladder rather quickly. I’ve made some good friends and came to appreciate the work of others. In a sense, I feel like my experience at RED prepared me for the kind of work culture I can find at any big corporation, which can also be considered valuable. In a way, I was a perfect RED employee all along. Joined in cheap, worked hard, crunched heavily and learned a lot, only to be get ridden of and replaced with a cheaper substitute the moment I became more expensive to keep and confident enough to speak up about the problems.
So, here we are at the end of my journey. I might revisit this story in the future if there will be any interest to hear more, but for now I will get back to trying to forget this part of my life. Writing this story down cost me a lot. Some of the ghosts I thought I left behind came back and made it difficult for me to fall asleep at times. There were days I wished I didn’t start this story at all. But now it’s done and I can go back to living a happy life free of RED and its bullshit.

Comments

Popular posts from this blog

Float precision and Time in Unity

Float precision and Time in Unity Recently, I was tasked with addressing an interesting issue that occured in a Unity game. After the game run for about 2 days, it virtually stopped streaming in map assets during world locomotion. Assets were streamed in with a huge delay (up to x-teen seconds) and it simply wouldn’t do. After finding out what caused this strange bug, I thought it would make an interesting article to share with you. Both the problem, and the process of finding its origin were quite an interesting experience. Debugging Since the problem only occurred after at least 2 days of ‘soaking’, I knew time is going to play a role here. I started investigating the issue by looking at the custom streaming code used in the game. It consisted of a bunch of asset loading and unloading functions, called every tick. At the start of each tick, before calling the functions, the code would cache the current Time.realtimeSinceStartup, which is a timer managed by the Unity engine tha

Array property customization in Unreal Engine 4

With the drive towards as much data-driven gameplay as possible, there comes a need for easy to edit and nice to interact with data assets that can accommodate all that data. While Unreal Engine 4’s UI framework allows us to display a wide range of data structures, its default handling of nested properties can quickly result in deeply nested structures that need to be expanded in order to edit them. This can really hurt productivity in some scenarios. Fortunately, we have the ability to fully customize how our data is laid out. While there are nice tutorials all around the web that explain how to customize our custom classes and structs, I’ve not been able to find an article that would explain how one would go about customizing how collection types display their data. In this article I will describe how to customize the display of an array property in UE4. I will follow it with the one for customizing maps display in the near future. Defining the issue I intend to explain the pr

My CD Projekt RED story, part 3

My CD Projekt RED story, part 3 We are now 2 years into my CD Projekt RED adventure and so far, it’s been mostly smooth sailing. I got promoted to a QA Analyst position, an equivalent of a specialist position for developers. I was earning around 2600zł or $650 per month, which would sometimes go as high as 3500zł with additional crunch pay. At this point I felt fairly rewarded for my efforts and could even start planning my wedding. I also received the first bonus for my participation in the creation of both Witcher 3 expansions. This amounted to roughly 13.000zł or $4250, which was an amount of money I had a hard time wrapping my head around. I still lived in a single room in an apartment I shared with other people, but at this point it was mostly my own choice. I’ve had my own wedding on the horizon so I needed every coin I could save for the occasion. Getting out of QA It was during that time that I decided I want to transition away from doing QA work. I approached the audio te