• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Showing developer posts only. Show all posts in this thread.

Meneth

Crusader Kings 3 Programmer
153 Badges
Feb 9, 2011
10.056
5.388
www.paradoxwikis.com
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Holy Knight (pre-order)
  • Crusader Kings II
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: The Republic
  • Hearts of Iron IV: Expansion Pass
  • Steel Division: Normand 44 Sign-up
  • Stellaris: Digital Anniversary Edition
  • Crusader Kings II: Way of Life
  • Mount & Blade: With Fire and Sword
  • Mount & Blade: Warband
  • Magicka: Wizard Wars Founder Wizard
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: El Dorado
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Field Marshal
  • Surviving Mars: Digital Deluxe Edition
  • BATTLETECH: Flashpoint
  • Crusader Kings II: Conclave
  • Surviving Mars
  • Cities: Skylines Industries
  • Stellaris: Galaxy Edition
  • BATTLETECH
  • Hearts of Iron IV Sign-up
  • Stellaris Sign-up
  • Hearts of Iron IV: Cadet
  • Stellaris: Humanoids Species Pack
  • Prison Architect
  • Crusader Kings II: The Old Gods
  • Cities: Skylines - Campus
  • Hearts of Iron IV: No Step Back
  • BATTLETECH - Digital Deluxe Edition
  • Crusader Kings Complete
  • Cities: Skylines - Parklife
  • Europa Universalis IV
  • Age of Wonders III
  • Hearts of Iron IV: Expansion Pass
  • Europa Universalis IV: Cradle of Civilization
  • 500k Club
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Mandate of Heaven
  • Europa Universalis III Complete
  • Cities: Skylines - Mass Transit
  • Europa Universalis III Complete
  • Cities: Skylines - Green Cities
  • Teleglitch: Die More Edition
  • Europa Universalis IV: Rule Britannia
Good afternoon, all. I’m Magne “Meneth” Skjæran, the programmer on CK2. In the past I’ve written dev diaries about modding, optimization, and quality of life improvements.
Summer has started, and most of the office is gone until the end of July, including the majority of the CK2 team. However, the show must go on, so for these four weeks I’ll be writing all the CK2 dev diaries.
Since most of the team being on vacation means that little development is happening, that means that these four dev diaries will be pretty light on info about the upcoming expansion and patch, but I hope to provide you with some interesting insights, info, and tidbits regardless.

For today, I’ll be writing about the different roles people on the team have, and what each such role is responsible for.
At the time of writing, the core CK2 team consists of: one creative director, one project lead, one designer, two content designers, one programmer, one artist, and two embedded quality assurance testers.
Beyond the core team, we also have the support of our central quality assurance unit, a 3D artist, and a number of external contractors, as well as a number of publishing roles.

So let’s start from the top, with the creative director.

Game Director
Person: Henrik “Doomdark” Fåhraeus

Our creative director has since CK2’s inception been Henrik Fåhraeus, though at the time the role was combined with the Project Lead role and Programmer role, and simply called Project Lead.

The role of the Creative Director is to provide the overall direction for the game. The main way the director does this is by writing the overall vision for each expansion, and provides guidelines and a framework for the designer to work with, which is collected in a vision document. This document outlines each feature the expansion and patch is supposed to have, with descriptions of what each feature entails, its purpose, how important it is, whether it’ll be free or not, and what professions will be involved in implementing it.

The game director then monitors the state of the game to ensure that it is staying in line with their overall vision and concept; that features are implemented in a way compatible with the needs they wanted to address, and working in the manner they expected.

Designer
Person: Alexander “rageair” Oltner

Next, we also have a designer. While the game director focuses primarily on the overarching vision, the designer focuses more on fleshing out the details, though there’s significant overlap with the game director sometimes fleshing things out, and the designer sometimes being responsible for parts of the vision.

The designer turns the vision document into a design document; a document fleshed out enough that it can be implemented by the programmers, content designers, and artists without having to constantly make assumptions about how something is meant to work.

The designer also serves as the primary point of contact between the people implementing the design, and the design team (the creative director and designer). If the design is unclear, ambiguous, or the implementer sees a potential issue, the designer is the person to ask in order to resolve such issues.

Project Lead
Person: Anna “Anona” Norrevik

While the design team decides what the goal of an expansion/patch is to be, the project lead figures out the “how” in order to make the release as good as possible, and to ensure the schedule is kept. As part of this, the project lead keeps track of the progress made towards the release to ensure that it is kept on track, and ensure that new features don’t creep into the project plan without good reason. If the project is lagging behind schedule, the project lead is also responsible for getting it back on track. There are three main ways for the project lead to do this:
  1. Ask for more resources. For example, if the code is lagging behind, a programmer might be loaned from another project. “More resources” will in some cases simply be more time; plan the release for later so that more can be done
  2. Reduce the scope of tasks. Often, it is possible to scale a feature down to some extent if there’s simply not enough time. For example, if a new feature originally was intended to have six related event chains, reducing this to five might be a way to get the project back on schedule
  3. Cut features entirely. Every design initially starts off with a number of ideas or features that aren’t core to the overall design. If the project is lagging behind, features like those are the first to go. As an example, during Monks and Mystics we implemented a large number of quality of life features, but there were some that ended up cut for time before implementation. However, features cut from one patch or expansion often end up in a later one
To keep the project on track, the project lead runs a number of activities:

Estimation meetings
At the start of each expansion, the project lead meets with each implementation profession (art, content design, and code). In these meetings each point of the design is gone through, and the profession identifies any tasks that relate to their job, and how long it is likely to take to implement.

Based on this, the project lead can see from the start if it is actually plausible to complete the project on time, and determine if anything needs to be cut already.

If new features are added to the design later, shorter estimation meetings or estimations by the profession lead will also be undertaken for these features so that they can be fit into the project plan.

Task sprint distribution
Based on the estimates and the time available, the tasks are distributed across a number of sprints. Each sprint is four weeks long, with the first three being dedicated to new functionality, and the fourth week being dedicated to fixing issues introduced during the first three weeks. The tasks are split so that each sprint has roughly the same amount of work, but with tasks with more significant risks scheduled early so that the team can eliminate the risks as soon as possible.

Task distribution and prioritization
When a profession has more than one member, the project lead is responsible for assigning individual tasks/bugs to each member, or delegating this responsibility to someone within the profession.

The project lead is also responsible for assigning priorities to tasks and bugs so that the rest of the team is aware of what order they should work on the tasks.

Scrum meetings
As the CK2 team uses the development methodology Scrum, there’s three Scrum meetings: standups (AKA “morning meetings”), sprint reviews, and sprint retrospectives.
  • Morning meetings - Each morning, the team meets to briefly summarize what they’ve done in the previous day, and what they’ll be doing today. This helps keep everyone aware of what’s currently going on in the project
  • Sprint reviews - At the end of each sprint, each member of the team shows off some of what they’ve done in the sprint. These meetings generally also involve a few people outside the core team, so that they too can see how the project is progressing. This is also an opportunity to give feedback on the work done
  • Sprint retrospectives - At the end of each sprint, the team identifies what aspects of the work itself could use improvement, and what went well. For example, the team might identify that communication between two disciplines has improved, or that parts of the design aren’t quite clear enough. The most important issues are identified, and a plan made to address them so that the team will do better in the future

Content Designers

People: Milla “IsakMiller” Isaksson, Joel “Divine” Hansson, and until recently, Drikus “Bratyn” Kuiper (who is now on HoI4 instead).
Joining us for the summer, we also have Matthew “blackninja9939” Clohessy from the Game of Thrones mod team


Content designers are part of the implementation team. In the old days, this position was simply called “scripter”, but the name was eventually changed as while “scripter” does capture some of what a content designer does, it leaves out quite a lot of it.

Content designers are essentially responsible for creating the actual content of the game, as opposed to code functionality and art. What is to be added is determined by the design team, but the details are generally delegated to the content designers, which is why they’re no longer called “scripters”; content design entails not just implementing a specification, but creative writing, research, game balance, narrative design, and so on.

For example, the design for the actual artifacts to be included in Monks and Mystics was quite vague. One bullet point for example was: “Add 10-20 Major Christian relics. To make it more interesting, these are unique and can never be destroyed”.

The content designers then had to come up with what historical artifacts to include, descriptions for each, ideas for what the art could be like, effects for each, and acquisition methods. A single paragraph of design turned into hundreds of paragraphs of event text, and thousands of lines of script.

What content designers create includes:
  • Individual events and event chains
  • Decisions
  • Societies and other systems
  • Artifacts
  • Flavor text
  • Characters
  • Titles
  • Religions
  • Cultures
  • Much more
While design says what to do, content design turns it into a finished product and decides on all the details. Content designers also often improve on old content, such as by fixing event bugs, spelling mistakes, or making event chains more expansive.

Artist
Person: Bjarne “Grimjotun” Hallberg

The artist is responsible for creating new art for the game. This mostly manifests in a large variety of interface icons, but they’re also responsible for the overall layout of each interface, as well as providing sketches and similar so that the interface itself can be implemented before the art is completed.

For example, here is a sketch of the society interface from the Monks and Mystics design document:
image1.jpg

As you can tell, a number of things have since changed, but the overall idea is recognizable in what’s in the game today. Sketches like this are invaluable when it comes to ensuring that early versions of the system can be implemented and iterated upon.

The artist also helps outline what’s required from artists external to the team. For example, if 3D art is needed, the artist might make a 2D sketch of what it is they want so that the 3D artist has something to work with and the result ends up fitting well into the game.

All told, the artist has significant impact on the overall art direction of the game, while making sure that new interfaces don’t look out of place.

Programmers
People: Magne “Meneth” Skjæran, and until recently Gwenael “Moah” Tranvouez (who is now on Stellaris instead)

The programmers’ main responsibility is to create new systems based on the design document. For example, the society system introduced in Monks and Mystics was created by the programmers, while the societies themselves were created by the content designers, and the art for it by the artist.

For some systems, no content design is needed. One example of this is the ally orders in Monks and Mystics. However, for most systems the job of the programmers is essentially to produce a foundation that the content designers can build the actual house on. In these cases, when a system is to be implemented the programmers will usually meet with the content designers to discuss what they require from the system, and agree on the syntax the content designers will use to interact with the programmed system.

Once implemented, content designers will often discover functionality that they require that was not provided by the first implementation, and based on this the programmers will iterate on it further.

Beyond creating new systems, programmers maintain the old systems by fixing bugs and making improvements. Most of the quality of life changes made in the 2.7 patch for example were implemented by the programmers, though often with significant assistance from art.

Another aspect of maintenance is ensuring the game stays performant. This is done both by trying to implement new functionality in a way that doesn’t significantly impact performance, and by spending time optimizing existing systems to make them faster.


Overall, programmers and content designers work closely together; the programmers ensure the core systems work, while the content designers make sure that the systems are actually varied and fun to use.

Quality Assurance
People: Arthur “[Arthur-PDX]” Bialecki and Daniel “Tuscany” Moore

The design team figures out what to do. The project lead figures out who should do it, when, and how to stay on schedule. Implementation creates it.

Quality assurance makes sure it actually works and is fun to play.

Quality assurance has a number of tasks. The most well-known is simply to find bugs, but this is far from all they do. In short, quality assurance’s responsibilities include:
  • Verifying that new features work
  • Verifying that bugs marked as fixed have actually been fixed
  • Identifying new issues introduced for old features
  • Identifying issues for old features that have not previously been found
  • Giving feedback on game balance
  • Giving feedback on whether new features are actually fun to use
  • Giving feedback on whether there are annoying aspects of the game that could be improved upon (E.G., quality of life improvements)
  • Monitoring the stability of the game (crashes and out of syncs)
  • Monitoring the performance of the game
  • Bringing problems to the attention of team members who can fix them
  • Monitoring the forums to collect bugs that have not been found by internal testing, and to inform reporters if an issue is already known
  • Monitoring the forums to identify what concerns the playerbase has
  • Identifying risks, such as an increasing number of open bugs, degraded performance, decreasing stability, and so on
  • Determining whether patches can be released or not
Beyond the embedded quality assurance testers on CK2, PDS as a whole also has a central quality assurance unit. This unit is brought in for certain types of testing, such as testing whether patches are ready to release, and participating in internal multiplayer to help identify issues that only occur if there are a lot of players in a game.

Contractors
Beyond the internal team, there’s also a number of contractors that do a variety of tasks on the game that are more limited in scope:
  • Localisation - We have several contractors who translate the game into German (shokii), Spanish (kgw), and French (zimxavier)
  • Portraits - Our portraits have long been created by an external contractor, CrackdToothGrin. You might also know him from the CK2 modding forum
  • Event pictures - We generally have an external company create a number of event pictures for us each expansion
  • Music - While we also create music internally, we do at times outsource some of it
Contractors help fill out areas where the amount of work varies a lot over time, or where the work is outside our core competencies.

Summary
I hope you liked this introduction to what the people on the CK2 team does.

Next week, I’ll be talking about the lifetime of a bug; from initial discovery to release of a fix.

As an added bonus, here’s five changelog entries from the 2.8 patch chosen at random:

- The society member list now includes a member count. Hovering over it will give you a breakdown of how many members hold each rank
- The 'All' Gender Equality rule no longer prohibits Achievements, though you will not be able to gain the 'Empressive' achievement while the rule is enabled
- Fixed piety giving an opinion bonus with anyone who can hold temples, not just theocratic governments
- The AI now checks to see exactly how many liege levies it'll deny its liege by revolting, rather than going "eh, half my levies I guess?"
- Fixed the end date given for settlements in the settlement construction confirmation window not always matching the actual end date even if all build time modifiers remained the same throughout construction
 
Last edited:
Do you use flipcharts, whiteboards or write on glass windows?
We have some whiteboards, but we don't use them much on CK2. I think on EU4 they have one where they track task progress, while on CK2 we just use Jira (a project management tool). All projects at PDS do use Jira, but some also make use of whiteboards.

I think people who work on art tend to use the whiteboards more than I do (read: basically never) though.
 
But who makes the coffee?

Everyone CAN make coffee, but if you asked around you would probably get that Fido makes the good coffee
 
A few questions (some of which might be better suited for other members of the team):

- Is it frequent or rare that members of other PDS teams infuence the design of a specific game (e.g. Would it be considered perfectly normal for an EU4/HoI4/Stellaris/[Secret Project] team member to go "Hey, could you add an event about X? I think it would be nice!", or would that be highly unusual?)?

- How common is it that something not on the original bullet point list gets added? How common is it that something gets entirely removed?

- How much would you say that feedback/suggestions from the community influences the development before/during/after the development of a DLC? I know it has some impact (based on various dev replies in dev diary threads ranging from "I'm changing that now!" to "We might do that, yes, if we have time" and the fact that many things are changed to account for various complaints), and I'm not implying you are poor at taking feedback, but I'm curious to know if it is common for someone to go "I read this forum post about X, and I think that we perhaps should make some changes in accordance with (parts of) it/implement mechanic Y" or if it is a rare thing.

- How much input does the rest of the team have when it comes to the vision for a DLC prior to the game director writing it? Is there some kind of open brainstorming/suggestion process, or is it generally not something that the majority of the team is part of?

- Given that the mechanics for different religions/governments/cultures are rather different and that the start positions for different characters/realms are quite different, how do you approach game balance? I understand that some things can be fairly easy to balance (e.g. the opinion modifier from holding a feast should be in line with its counterparts, and none of them should be extremly large), but how do you determine if a particular religion/character/realm/etc. under-/overperforms and what is causing it?
1. We talk a lot, which sometimes results in ideas. The designers also get together from time to time, which has spawned a number of ideas
2. Pretty common; often by implementing something we find something that should be there but wasn't considered in the design. Cuts happen pretty often too
3. The biggest thing is trying to gauge the overall community opinion, but we do from time to time get inspired by individual ideas as well
4. It's largely the game director doing it, but we do get some input on it. Especially once implementation starts, but also some before
 
How often are features/events inspired by mods?

Are there mods at the office that are popular? What's your (Meneth) favorite mod to play?
The initial work on Tibet was done by one of our betas, so that's sort of fits the bill.
Other than that I can't immediately think of anything we've done while I'm on the project that's been inspired by a mod, but I might be forgetting something. Besides, I'm not a designer so Alex would know better.

I don't currently play any mods. There's one graphics mod that's relatively popular; some graphics mod that makes the borders thinner and the terrain different. Its name eludes me though.
HIP and CK2Plus I know a number of people have played.
 
Quick question, the beta patch right now is 2.7.2 and you're talking about 2.8, will 2.8 be the next patch or will 2.7.2? (kind of wondering because if the patch is going to break my save games I need to get back on it)
I mean 2.8, yeah. 2.7.2 is unlikely to get any new additions before release unless we were to discover some critical bug. Possibly some tweaks to one of the fixes that we've discovered isn't quite working as we want (Black Death now burns out a bit too quickly. Big step up from never ending though).
2.7.2 will release fully before 2.8 is released.
 
Wut ? Since when ?
Has he got permission to talk about it ?
Asking, as he didn't reveal himself yet in the german subforum.
cool.gif

Cheers
What Xavier said.
To what extent he's allowed to talk about it isn't my area.
What about the bug (in 2.7.1) for Republics when the doge has no heir ( or somesuch) then some patrician dynasties get kicked out on succession ?
Sounds pretty critical to me. I didn't play Republics my self recently, but i read several threads on it.
Is that fixed ? It's not in the patch log for the Beta.
I don't think I've heard of that one. Is there a bug report on it?
 
4-week sprints! What a luxury. At my job we are forced into two-week sprints and the pace is quite frantic and we frequently almost don't have enough time to do even single tasks.

How do you get along with only one programmer? Or do you often get support from other teams?
One programmer is enough for the expansion we're currently working on. We did have another until about a month ago (though a month before that again I was only 50%), and will get one more in August, though at that point I'm also going back to 50% since I'm going back to uni.
Highest number CK2 has had recently is 3.5 briefly during Monks and Mystics. That was reduced to 1.5 soon after though, as it was a bit excessive with that many, and other projects definitely needed the programmers more.
I think Stellaris or HoI4 has 5 programmers. AFAIK no project has more than that.

Do you have any long-term development plans for CK2?

Is it true that the next DLC will be the last?
Best to direct those questions at @Doomdark.
 
Are u going to university? And working on paradox at the same time? that awesome! How did u achieved it?
Yep, starting my 5th and last year of university in fall.
I got my foot in the door with the PDX Wikis, and then managed to get a summer job as a programmer last summer. That went pretty well, so a few months after the summer I started working 50% as a programmer from home while attending university.