Recently, CD Projekt RED technical specialists spoke at the Digital Dragons conference. They shared their experience in game development, talked about the problems encountered, and the lessons learned.
When CDPR first started making games, no one expected the company to become so successful and expand. Developers relied on "oral" knowledge transfer and did not systematically maintain documentation.
This became a big problem when working on the remake of the first "The Witcher". According to Adrian Fulnechek, the old knowledge is essentially completely lost:
The studio was very small, hungry for success, and extremely ambitious. But success was by no means guaranteed, and, frankly, no one was thinking 20 years ahead then. We learned our craft as we went along, built processes, and dealt with technologies [...] The team was closely knit, so knowledge was not stored somewhere in a database — it was passed on to each other [from older to younger] over a cup of coffee. We have nothing left from that period, or at least nothing in our centralized knowledge base.
Adrian admits that some materials might have remained on old servers, but finding them would require a lot of resources:
Perhaps some documents remained somewhere on old forgotten servers, but if we wanted to find them, we would have to spend a huge amount of resources — time and money, which we do not want. So, when your documentation is a kind of "black hole", you have to reverse-engineer, essentially re-disassemble and restore your own legacy.
In the case of Cyberpunk 2077, a different problem arose: there was documentation, but it was enormous — over 8 thousand pages accumulated (due to many development iterations). The storage of necessary materials was not organized in the best way: the necessary things were stored in different places.
Adrian Fulnechek recalls:
Cyberpunk was a new beginning, but with it came new problems. It was a huge project. The expectations and hopes associated with it were colossal. Within the company, we had a documentation tool — Confluence, we already had a prototype of "live" documentation, so we thought we were ready for it. However, it turned out that this was not the case, because Cyberpunk was our first project of such a scale that we documented, and its development also took a very long time.
The developer explained that as work progressed, maintaining documentation took a back seat. At a certain point, CDPR decided to store newer files separately, which further complicated the development of the Phantom Liberty expansion and the correction of the base version of the game:
We left the documentation for the base game on our server. At the same time, when we released patches for the base version, we did it in the cloud version, and, for example, when we created the version for macOS, we worked on the server version again. As a result, there was chaos: we had two workspaces, two instances of the project.
The developers at CD Projekt RED have taken into account the experience gained, so when working on Cyberpunk 2 and The Witcher 4, they meticulously develop documentation at each stage:
We have new requirements, in particular a new definition of "readiness". Any project goes through development stages, and now each such stage ends with a check. One of the requirements for passing it is the availability of documentation — this was not the case before.
In addition, both teams have access to a common "knowledge repository" — if someone proposes a solution to a specific problem, other specialists will immediately be able to see it, study it, and implement it in their code.