• 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.
@podcat asked me to prepare a Dev Diary from a Project Lead perspective...
Quick background on me: I came on as Project Lead for HOI4 shortly after the game was released, last summer. That’s my perspective. I speak from a expansion-development point of view, and our work going forward.

The purpose of today’s Dev Diary is to give you a little insight into our development process.
Why we fix some bugs and leave others... How we decide what goes into the next expansion... and more.


Imagine, if you will, a crowded bar
Imagine all the customers screaming out their orders at once, to a single hard-working bartender.


How many words do you think the bartender will be able to make out, over the collected noise of the crowd?
How many drink orders do you think he will he be able to get right?

If you answered “none”, you’d probably be close to the truth.

My job, if I’d been working in that bar, would be to to organize a queue-system that works.
To move things along and make sure that people get what they want, as quickly as possible.

As project lead at Paradox; it’s my job to make sure that our players get what they want.
Best possible value in the game, within the shortest possible amount of time.

Here is a super condensed version of how the team and I go about making this happen.


The Design Process
First, within the team; the designer speaks for the players. They’re the one that decide what the team should do.
(Game director @podcat and game designer @Pallidum , in our case.
Continuing with the bar analogy; they’re the people who have a feel for the market and decide what goes on the drinks menu.)

New content to keep players engaged and happy... Weaknesses in the game that needs to be addressed... A balanced mix of all that good stuff is collected together in a “design document”.

The document explains the vision for each new feature, or fix, that goes with a new expansion. It essentially serves as a specification, or commission for work to be done, for the team.


How do we decide what new features and fixes go into an expansion?
The designers base their decisions on what goes into the design document, on, for example:
  • Do the features fit into the overall theme of the expansion?
    (This also goes for bugfixes where we prefer to work by theme. For example Air or Naval).
  • Do we hit a good mix of paid features and free features?
    (A lot of this is decided on how difficult things are to implement and their impact on the game’s balance.)
  • Data we collect on player behavior.
    That data is analyzed and lead to new features or fixes.
  • We have a database full of suggested improvements.
  • Not to mention bugs that we prioritize and work off, in priority order.
  • We also closely monitor mainly this forum, and (to a lesser degree) other HOI-communities, in case something pops up. Both bugs or inspired posts in the suggestion forum.

lumbergh-hawaiian-shirt.gif

(For the love of God, YES! We saw the forum bug report.)


How do we choose which bugs to fix? (A bug’s journey from the bug forum to being fixed)

As I mentioned; we have a big database with bugs, improvement ideas and feature-suggestions.
(Really big. You just won't believe how vastly, hugely, mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist, but that's just peanuts to our database.)

A lot of entries in this database, however, are related to the same underlying system. Doing an overhaul on that system will get rid of a whole bunch of bugs. These are things we prioritize.

A bug often starts out coming onto our radar by being reported, here, in our bug forum.
(I really want to stress this point, because we occasionally see people posting bug reports on reddit or other places. The odds of someone from Paradox stumbling over those reports and carrying them forward into our database are slim.)

The bug is transferred from here into our database. And we start looking into it, by analyzing it.
We need to know how frequent the problem is. How serious, and how quick it is to fix.
The more frequent or serious it is increases its chances of getting fixed. Soon.
If it also happens to be quick to fix… well, that’s just a win-win.

yes_data.gif


If a bug is serious, frequent and quick to fix and it’s still not being fixed… The most likely explanation to why we’re not fixing it ; is because we simply couldn’t fit it into our schedule.

It might help to understand this, if you…

Think of the development process as a single work day...
Serious things you hear about, before lunch, will get fixed before the day is done. For sure.
Then you might work on something else, with lower priority, for a while.
Until the next big problem pops up.
But, by then, you can’t start on it. Because you can’t get it all the way done, before you have to go home. It’ll have to wait until the next day.
So, in order to not waste precious time, you squeeze in something else that will fit.

This is how our development cycles work. Sometimes we simply can’t start on something and get it fixed, or improved, before the expansion has to ship.
(This also illustrates how sometimes things with lower priority get done when some higher prio stuff are left for later.)


Difficult judgement calls
Other bugs or suggestions are more up for debate.
Doing something that will make one group of people leap for joy - might seriously anger another group. We have to stay on top of that.


The big time-stealers
Not to mention that some requests, like improving AI, is a perpetual job that can’t be rushed.

As obvious as it is that an area needs work; some things are like hatching an egg. It takes the time it takes. No matter how many bodies you throw on the problem.

vtSueQywDwn2U.gif

(Btw, this is how I imagine a Steam Summer Sale going. If Steam was a physical store.)


The Breakdown & Estimation process

Moving on: Once the design doc is complete… The team takes the design and breaks it down into bite-size tasks for coders, content designers, art, UX-design, sound etc.

When we have everything broken down into a list of tasks; we sit down together and “estimate” each task. Giving us an idea of how long the full feature will take to develop, once you add it all together.


How are deadlines and release-dates determined?
Paradox has a plan for how many expansions/DLCs we should release per year.

HOI4 release dates are determined based on: 1. that plan, 2. how quickly we can reach the desired sell-value of the release, and lastly 3. coordinated with specific dates that our marketing team have selected.
(More on this subject in next week’s Dev Diary.)


Can we make the expansion-design happen within the deadline?
After all features have been estimated; I can figure out if what we want to do is possible within the deadline. With the people at our disposal.

If yes: Huzzah!

If not: This is where I have to crush the designer’s hopes and dreams.

DHzBZxSU0AAQzXL.jpg

Splat!

We need to cut something in order to be able to finish on time.
This is something we discuss and agree on, together. While I gently pat their backs and hand them tissues.


What gets cut?
When cutting something I have to consider, for example:
  • The desirability and priority of the feature.
  • What people we have available.
    • How much, and what, each person can work on.
    • While not being blocked, or blocking, someone else.
  • What features tie into other features.
    (If there is anything independent enough to cut cleanly.)
Sometimes laying this complex puzzle, trying to fit high priority pieces together, is trickier than trying to nail jello to a wall. Things slip and change constantly. This is the very essence and nature of development work.

projectcartoon.gif


In closing

Speaking of the nature of development work… While the example above mostly serves illustrate problems with communication, which is always a factor when people with different perspectives discuss something… I think it says something about how frequent certain development problems are; that a site exists where you can create your own project cartoon, like this one.

The issues that Paradox and HOI4 struggle with are the same problems that all IT projects, everywhere, grind their teeth over. It’s terribly complex work. Which is why, although the problems and risks are well known and can be anticipated and planned around, to a degree… they remain.

The silver lining, I think, is that while our problems are the same… we at Paradox have a hell of a lot of fun while working on them.

Next week, our Brand Manager will write a Dev Diary. Before handing the baton back to podcat.

Don't forget to tune into World War Wednesday today at 16:00CEST on https://www.twitch.tv/paradoxinteractive! To see podcat run Germany in massive co-op, with the other devs as generals.
 
Last edited by a moderator:
I missed this dev diary :( Are you still online to answer any questions ?
Hi Neigel,

We monitor the forums continuously, so shoot away and we will hopefully be able to respond to your question(s)!
 
Last edited:
giphy.gif

No. No. I'm fine. I got this. What? No. I'm fine. What? What?
 
What's your next sprint look like?

Do they use Sprints? I'm not sure they do, but I could have missed something.

Do you also have a continuous build process? At what point does QA get involved in the dev process? Do you use automated testing? Maybe Game development doesn't lend itself to that - I don't know, but I would be interested to know how the code is tested and reviewed before it gets to QA.

FishEye is ok by the way. Not brilliant, but its not bad either. We've used it for years and are currently looking for an alternative, but can't find anything else we like better so far.
 
Last edited:
Do they use Sprints? I'm not sure they do, but I could have missed something.

Do you also have a continuous build process? At what point does QA get involved in the dev process? Do you use automated testing? Maybe Game development doesn't lend itself to that - I don't know.

FishEye is ok by the way. Not brilliant, but its not bad either. We've used it for years and are currently looking for an alternative, but can't find anything else we like better so far.

It's discussed earlier in the thread, around page 2-3 I think.
 
I missed this dev diary :( Are you still online to answer any questions ?
I thought the thread died, so I let it go. But yeah. Shoot away.

It's interesting to see they use Agile. I wonder if Scrum works for them. We started off with Scrum but swapped to Kanban as it suited our development process better.
Before I started; HOI4 development was basically waterfall. About as agile as Niagra bloody falls.


When I came in; I transitioned us into ScrumBan. As a way to introduce the team to agile methologies. It worked well for us.

Right now, we are running our own Paradox-version of Scrum. Which is what all the other development projects here at Paradox are using.

I'm partial to Scrumban and Kanban though. So we might go back to it once this expansion is done. Take what we learned from both methods and fuse it into something that works best for HOI.

everyone switches to Kanban in the end to spare themselves all the meetings and overhead
(just my experience after 10+years in SW development/product ownership)
It completely depends on the project, I would say. (Not to get into a pissing contest here, but I'm speaking from my 20 years of experience in development both as dev and project manager.)

For example; for a project with tight time- and budget constraints, as well as frequent deliveries/releases; Scrum might be the only way to go. It gives you a lot of control.
 
Thanks. How does QA fit into your process? - By that I mean at what point are your test cases determined, how do you document them and how are they executed? Do you practice any form of BDD\TDD? Do you make use of any automated testing other than unit? Do the devs have unit test suites? (I have no idea how applicable this would be to game development, which is why I'm interested)
 
Hmm... how to answer this without giving you a hideously long wall of text?

Put simply:
We have two embedded QA in our team. They are an integral part of our daily work.
We also have a larger group of QA that give us extra muscle power whenever there is a release.


What QA spend their time on is determined via:
  • For day-to-day activities: What is in the JIRA-ticket (we use “acceptance criteria/definition of done” as a way to let QA know what’s new and what they need to test)
  • For longer-term planning: What has popped up during the design process or during the development process as extra risks to keep our eyes on
For extra tricky new features; scenarios/test cases are created.

They are typically created when each feature is nearing completion. Or even towards the end of the entire project, as features tend to tie into each other. For example: one new feature’s impact on the game can’t be fully tested before another new thing is also in there.

The tests themselves often take the form of huge old-school spreadsheets.

Some scenarios are formulated as a simple yes/no question. “Does country X invade country Y before year 19XX?” (Type A)
Other things require the QA to evaluate the feel or fun-factor of a certain feature. (Type B)

For Type B tests... we prefer to get those done early. That way we can make adjustments early and test again.
(We work with "Minimum Viable Product" in mind. Which means developing something small that works in a first step. Then adjust and make it better in iterations. Here's a fun video on the MVP-concept, from Extra credits. In case someone reading is unfamiliar with the term.)
For Type A; we can do that closer to release. As it's often a case of simpler bug fixing rather than having to redesign an entire feature.

As for the methodologies/tools you asked about... and if they’re applicable in game design:
The quickest reply I can give you is that game design is no different than any other complex software project.
Paradox is an ambitious, modern and mid-sized company. We follow the same standards as any other company of the same type would. The challenges we face are very similar, so the tools we use to tackle the situation are the same.

Hope this helps.
 
Yeah that's interesting, thanks.

So from what I can gather, QA is mostly manual verification of Development Jira's and exploratory testing of Risks. And QA is largely a manual process.

However you haven't mentioned anything about unit tests or any form of automated testing or whether or not you use a continuous build process. Do you practice any of those, or BDD\TDD? How do you perform Regression Testing?

For example the company I work for is medium sized and produces various products for the financial Industry. We have a continuous build process which is underlined by a large suite of unit tests, automated integration tests and automated acceptance tests. Those serve as a solid regression test suite whenever a developer commits a code change. However it takes a lot of time and investment to develop those suites, but the investment makes sense because the product has a continuous life-cycle and as the product matures, so do the tests.

We then have a manual QA Team that perform manual test runs through a set of tests that they build from the JIRA Story (and are involved from the very beginning). Both Manual and Automated QA'ers are embedded in the respective Dev Team.


So anyway, I'm not trying to pick holes, I'm just interested to see how you go about things. You don't need to continue the thread if you have better things to do.
 
How do we decide what new features and fixes go into an expansion?
The designers base their decisions on what goes into the design document, on, for example:
  • Do the features fit into the overall theme of the expansion?
    (This also goes for bugfixes where we prefer to work by theme. For example Air or Naval).
  • Do we hit a good mix of paid features and free features?
    (A lot of this is decided on how difficult things are to implement and their impact on the game’s balance.)
  • Data we collect on player behavior.
    That data is analyzed and lead to new features or fixes.
  • We have a database full of suggested improvements.
  • Not to mention bugs that we prioritize and work off, in priority order.
  • We also closely monitor mainly this forum, and (to a lesser degree) other HOI-communities, in case something pops up. Both bugs or inspired posts in the suggestion forum.

Sounds really informative but it still makes no attempt explaining why crucial National Focuses from typical Death or Dishonor countries were left out of the last expansion even though they were first planned in (f.e. Bulgaria wich was declared not interesting from the devs) and others like Finland (also typical DoD) were not included because of plans for Scandinavian DLC. The first decision may only be explained as arrogant ignorance the latter with corporate greed. That decision-making funnily enough did not make it into your list of consumer-enlightenment. The result of that decision making process is an overpriced and underdeveloped dlc. Not to mention how the fools like me who bought the season pass were ripped off for paying even more for that very same lacklustre content.
Instead of educating the consumers about the virtue of your Decision making try to change it radically according to the most acute complaints your customers have. Otherwise you will alienate all of the Paradox HOI fans.
 
Not to mention how the fools like me who bought the season pass were ripped off for paying even more for that very same lacklustre content.

As far as I'm aware the season pass was promised to include at least 50€/$ worth of DLCs for the price of 40€/$, so how do you draw the conclusion that you are paying more for it?
 
As far as I'm aware the season pass was promised to include at least 50€/$ worth of DLCs for the price of 40€/$, so how do you draw the conclusion that you are paying more for it?

Maybe where you live. In EUR it was 40 EUR and the two DLC were around 30 EUR together. As far as I know there will not be anymore DLCs included in the season pass.
 
Last edited:
Maybe where you live. In EUR it was 40 EUR and the two DLC were around 30 EUR together. As far as I know there will not be anymore DLCs included in the season pass.

The devs have confirmed the Expansion pass will cover three packs, due to DoD and TfV being smaller than usual.
 
As far as I know there will not be anymore DLCs included in the season pass.

It was updated to include 3. From the steam store page:

"Buy Hearts of Iron IV: Expansion Pass #1
Includes Sabaton Soundtrack, Together for Victory - 2 more expansions to come!"


I can understand you being frustrated if you thought it was just the two small expansions, but it seems we will be getting a large 3:ed 25 EUR expansion as well included in it! ( Since TfV was 15 EUR and DoD was 10 EUR ).
 
The devs have confirmed the Expansion pass will cover three packs, due to DoD and TfV being smaller than usual.

Interesting if it is true (I am beginning to doubt everything that comes out of paradox). For me that is even worse - it sounds they will make another DLC for a limited price and very limited content because of the need to match the expansion pass price. It will probably be like DoD again - lacking in quality and quantity. Most people are not only unhappy about the expensive prices but also for what they are getting for those prices. And if HOIIV team continues with that pacing the game will probably be done in 2030 and cost over 200 EUR. I deem the current version of the base game boring and bare bones almost to the point of being unplayable in single player without mods. And paradox tries to drop feed us DLC-content like EUIV. EUIV does not suffer the same replayability issues like HOIIV though.