1. Diplomacy is Not an Option
  2. News

Diplomacy is Not an Option News

On how our game works


Good Lords, Fair Ladies!

Today we are here to talk to you about what's under the hood of our game.

At times, community members ask things like:
"I've lowered the graphics settings and the performance is almost the same! How come?" or "I have an RTX 3080 and DiNaO is only giving me 40 fps! Care to explain, why?". These questions are usually followed (quite rightly) by the requests addressed to the developers. You ask us to figure out the architectural issues of the game and fix the obvious defects.

Let us make it clear and tell you how Diplomacy is Not an Option works, and finally give you some answers.

[h2]Let's start with the graphics[/h2]
As you may easily notice, visually our game is far from... being high-detailed. It can be explained by the stylistics (low-poly design and the scale of combat actions in the game limit graphical solutions).

But to be honest, we chose the style taking into account the capabilities of the team (a reminder: our team is pretty much small). On the one hand, this is an unconditional win. At the concept art stage, artists don't need to draw anything complicated. The processing of the large number of objects on the screen doesn't crucially influent the game's performance. (What is called "bottleneck" effect) On the other hand - this solution becomes an Achilles' heel. That is correct, reducing graphics settings can help some potato pcs, but this is more likely a special case, for the majority of hardware configs changing the settings has no effect on FPS rate.

It is worth mentioning the fog of war, or rather, its refresh rate. If Diplomacy is Not an Option runs slowly, you should try to reduce this setting. It is quite possible that it will give a noticeable performance boost for you. (As a consequence, visually the game will not change for the better - the borders of the fog of war will be dissipated step by step, without proper smoothness. Those of you who remember the strategies of the 90s-early 2000s, understand the difference).

"Why does DiNaO runs slowly then?" - you may ask and this is another question to answer. The main resources that our game consumes (as well as many strategies, citybuilders, simulators, and games with a large number of calculations) - come to the work of the CPU. You have understood everything correctly, CPU work is the very "bottleneck" of DiNaO.

To summarize, we can say the following. If you have a powerful video card, but an old processor with just a few cores, FPS will be low. But even if your video card is not top-notch , having a modern processor will give you high FPS rate.
[previewyoutube][/previewyoutube]
[h2]How the power and number of threads of your processor affects the game[/h2]
For many people, it's no secret that DiNaO is made on Unity. In particular, we use DOTS (Data Oriented Technology Stack), and the main features of the Stack are Entities (Essentially a kernel built on the ECS architectural pattern), Job System (Secure Multithreading), and Burst Compiler (Pure Magic. A compiler that requires code to be written in a certain style, which imposes its own limitations, but still allows ILPP to turn IL/.NET code into high-performance native code (in other words, for each processor architecture, it builds exactly that version of code that will maximize performance on that particular hardware architecture). Thanks to all the above, we can optimize all the capacities of modern multithreaded processors. As a result, we can make DNO exactly as we intended it to be!

"And what exactly did you have in mind?" - you might ask. Here comes the answer. We wanted to create a game with crowds of warriors on the map. With the flight of each projectile processed by the game engine. With a complex system of economy and a realistic model of disease spread. Well, and with wild animals change their behavior depending on circumstances. All this (Another reminder about the number of entities on the screen) requires a lot of calculations from the processor. Even despite all the wonderful tools we have, a direct approach to implementing all these features would still not give us a satisfying performance. And would not allow us to fulfill all our ambitions.

In particular, each warrior in the game is a full-fledged, independent entity. Thanks to this, the player can control his behavior at any time, just like in old-school strategy games! (And even civilians that players don't control are also separately calculated by the game). We wanted the battles between tens of thousands of people in Diplomacy is Not an Option to not be a trick that strategy game creators sometimes use. The essence of the trick is that it is actually squads that fight, and it is the squad, not the individual warrior, that is the minimal unit in the game. To make our design work, and work convincingly, we wrote many of our own software solutions based on the basic tools that Unity provides. For example, our navigation system combines many approaches such as A* and Flow Field. We made navigation layered and as cacheable as possible so that all the many in-game entities can "travel" across the map. (At the same time, the processing of their movement must still not burn players' computers). Combining these approaches allowed us to have those very crowds of enemies moving autonomously on the map, maximizing the re-use of "paths" already traveled by other entities. For example, if one enemy from an attacking wave has already traveled a route from a certain area A to area B, rest assured that the other warriors (including those from subsequent attacking waves) won't try to re-find the path. They will reuse the one they already had unless the state of the map changes. (A new obstacle appears or what was an obstacle is destroyed). But even if the route is changed, only a small part of the way is "discarded", which again allows us to save precious hardware resources. We've written our own physics in the game, maximally optimized for strategy, with the main simulation in 2D space (XZ plane of the ground) with the "connection" of the third dimension if necessary ( projectiles, explosions, thrown enemies). And we have listed only the most significant of the solutions applied. In fact, there are many more.

"But since you've got everything so cool optimized, why is the CPU still sucking up a ton of resources?" - you may ask again. That's a very good question. The answer lies on the surface: even with all our tricks and techniques, we are not wizards. If we were wizards, we would have a lot more stuff in our game ;) Anyways, hardware resources are not infinite, and we are literally pushed to the limit of performance. Even considering the maximum usage of each core of your processor, certain algorithms have certain boundaries. Not everything can be done "simultaneously", on all CPU threads. In the image below - each green block is some kind of work that our game is doing on different threads. It could be finding the nearest targets for the warriors or finding the nearest tree for the forester, it could be the movement of an animal on the map or the production of stone at the mine. As you can see, almost every CPU thread on our test machine is actively used.


See the blocks highlighted in red? There is a lot of empty space above and below them, unoccupied by any work. This is a clear example of a situation when not everything can be processed simultaneously. Some calculations in the game rely on previous work and the processor must wait for this work to finish before making a specific calculation. Similarly, if another part of the game relies on that particular calculation - it has to "wait for the right moment" as well. The image above clearly shows how "densely" we are using each thread of your CPU, while also illustrating why CPU usage is never at 100% mark. Each CPU core cannot be fully loaded every second you spend in our game. After all, certain tasks require calculations performed by other cores. In addition, it becomes obvious: if a game has such a large number of calculations scattered across all CPU threads - their number directly affects how many tasks can be solved per one frame. The more of them, the faster it will happen (and vice versa), respectively, the higher the game's frame rate will be (and vice versa).

"Ok, now I see why many people reduce game performance, but what does this have to do with the map size? Why not make super large maps, say 9999x9999 cells?". A fair question. Once again, it all comes down to CPU resources. Let's skip the obvious point that a larger map takes longer to load - to calculate the location of resource sources, to analyze all enclosed areas, to define environment objects, etc. Until recently (before the 0.9.94 update) the maximum map size was 200x200 cells, but we've figured out (once again) how to optimize the processing so that players could have a larger map at their disposal (we increased the maximum size more than twice! (by 125%), up to 300x300 cells) and did it without any noticeable changes in gameplay. As mentioned earlier, the game features our own navigation system responsible for the movement of game entities through the map. In particular, besides the obvious task of finding a way from point A to point B, this system deals with a whole bunch of other tasks, one of which is checking if the path search is necessary at all. For example, in the case when the endpoint is in direct line of sight and you can just move straight to it. It would seem to be an obvious solution. If you don't need to search for a path and can just go straight to the goal, you don't need complex calculations. This should make the game run faster for sure! However, in reality, it's not that simple. This feature (the direct path) is made for aesthetic and gameplay purposes in the first place. From a technical point of view, (again, do not forget that we are talking about TENS of thousands) this functionality - on the contrary, requires a lot of computing. The processor is not a human brain, it cannot determine at the snap of its fingers whether the path is free or not, it relies on pure data (it doesn't have eyes, it can't just see the target). And the data must be processed one way or another. The algorithm itself is very simple, the map is divided into cells, and each cell is either free or blocked. We need to construct a line between the entity and its goal and check every cell on the path of the drawn line until the calculation "gets" to the end point of the route (or finds an obstacle, which means that there is no direct path). This is a very simplified description of the algorithm (We don't just check cells along the line, we check them on several levels, using various tricks to reduce the resources required for the calculation. There are many other calculations involved in this process). But in general, the point is clear to you. For each entity in the game, you need to check a lot of data at a certain time interval (sometimes several times per second). You have probably already guessed how all this relates to the size of the map. As the size of the map increases, so does the number of cells between points A and B. The further the points are apart, the harder the calculations become. And when it comes to our favorite point about tens of thousands of troops (and not only troops), the amount of resources required from the processor starts to grow by leaps and bounds to make it all work!

That's roughly how Diplomacy is Not an Option is set up.

Thank you, and see you soon!

Yours, the Door 407 dev team

On the August Update

[previewyoutube][/previewyoutube]
Good Lords, fair Ladies!

Let the feast begin.

Steam Strategy Fest kicks off today! As a promising representative of the genre, DiNaO is also taking part in the event. We believe this is an opportunity for our game to find its way to the hearts of new fans. And to celebrate it properly we've prepared a gift for you. Would you, please, welcome the August Update which as always comes alongside a short story about its key features?

[h2]Take positions on the rooftops![/h2]
~ Community Suggestion ~


We have all been waiting for this and, finally, the day has come! From now on, in DiNaO you can place troops on the rooftops of the Townhall and Barracks. Apart from the fact that it looks great and apart from the fact that in an urban battle, the shooters actually should take the height, this feature allows you to organize the very last line of defense if the enemy has broken into the settlement.

Rooftops in our game have different shapes. So for you to know exactly who and where to place, we made a separate window, with which you determine the position for each trooper.

[h2]New enemy buildings (And new mechanics)[/h2]


The Door 407 dev team is busy with the story campaign right now. This work brings with it some gameplay changes you can already check out. Previously, in the Campaign, the enemy attacked you with small forces from time to time. These attacks were not displayed on the wave counter, making some players confused, and most importantly, annoying a lot of people.

We've completely redesigned these mechanics. With the August Update, the Rebellious Peasants and the Royal Army get new buildings that spawn units. Once appear, these soldiers will immediately rush into battle and march towards your Townhall.

The new buildings can already be seen in the missions in the preview of the story campaign. But we plan to add them to both Challenge Mode and Endless Mode in the future.

[h2]Pause in cutscenes[/h2]

Another innovation directly related to the work on the single-player campaign. From now on you can pause the playback of clips you watch between missions by pressing Spacebar. (Just in case an important matter prevents you from fully enjoying the story of our game).

[h2]The new message box[/h2]


One of the few tools for explaining what's going on in missions from a narrative perspective is the messages from the Advisor. (Those who played the campaign preview know that some of the enemies talk to you via this box as well.) This is one of the key interface elements when it comes to the story. In the August Update, it gets an improvement. The box became more compact, it looks nicer and no longer blocks the map view so much. (Comes in handy for players that value gameplay more than storytelling).

[h2]The crystal clear mission objectives[/h2]


Even now, when DiNaO is still in Early Access, we try to diversify mission objectives. Even now they are not always about to withstand attacking waves or about to kill all the enemies on the map. For this reason, we consider it significant to give you an additional indication of mission objectives. You can now see them in the top left of the screen. That's where the story messages appear. (Previously, you had to go to a separate window to check the mission objectives). Of course, this option can be turned off. However, this is a useful feature at least in the early stages of the game. Especially for those who are just getting to know DiNaO.

[h2]Winds of Change[/h2]

An exceptional visual improvement that adds realism and scenic beauty to our game. With the August Update, the wind system debuted in DiNaO. Accordingly, from this day on, our grass sways and smoke spreads wherever the wind blows. Shortly, we will also apply this system to flags and banners. For them to spectacularly flutter instead of statically hanging.

[h2]A clarified amount of 'requisitioned' stuff[/h2]


As you may know, one of the options for resource replenishment is to collect carts scattered around the map. You always could see how many resources you find in such carts. But there might have been misunderstandings if your storage couldn't hold everything you grabbed. You still don't receive, say, more wood than you can stock. But, starting from today, when you collect a cart, an image briefly appears indicating how many resource units you actually add (not the amount that a cart contains).

Since we're talking about carts, there's another thing worth mentioning. A little visual improvement. Previously, there was only one cart model in the game, and it looked like a shabby pile of junk (which was a great way to show the everyday life of rebellious peasants). However, such carts are not quite appropriate if they belong to the King's army (before you requisition them, of course). From now on, the Royal Army has its own cart models, sturdily built and pleasing to the eye.

[h2]The front of the attack is displayed on the mini-map[/h2]


The essence of this innovation is perfectly summarized in the title. Just in case, we clarify. Minimap shows the width of the front of the large-scale enemy offensive even before the attack starts. This gives you time to prepare your defense and redeploy your forces if necessary.

[h2]A few words in conclusion[/h2]

As you can see, many of the things we added to the game illustrate a vector of development. And this vector is the story campaign. But it doesn't mean that we have forgotten other promises we made. We remember about the map editor. About the fact that it wouldn't hurt to add new content to other game modes. And we will definitely implement all this and much more in the upcoming updates.

[expand]
Update 0.9.97

Features
  • Player troops can be placed on the rooftops of the Townhall and Barracks.
General
  • On the minimap, you can see the front of an upcoming attacking wave (if the front is large);
  • When selecting a Barrel Mine or a “Burrdam Chimera” their explosion area is displayed;
  • Cutscenes can be paused;
  • Updated message box (a window where you can read texts from your Advisor and from some enemies);
  • When collecting carts, an image is shown indicating the type and the amount of resources that go to your storage;
  • SFX improvements (including longer intervals between notifications about attacks);
  • UI and UX improvements;
  • Some visual improvements (including new cart models for the Royal army).
Balance
  • “Wooden age” Challenge: difficulty increased;
  • The number of Soul crystals has been reduced in many Challenges;
  • Barrel mine:
    1. Damage area: 1x1 -> 3x3 cells
    2. Damage: 200 -> 90
    3. Price (iron): 1 -> 2
  • Trebuchet:
    1. Damage: 40 -> 45
    2. Price (iron): 4 -> 5
  • "Summon" spell (after completing the "Power of Darkness" research):
    1. "Power of Darkness I", number of summoned Dark knights: 10 -> 15
    2. "Power of Darkness II", number of summoned Dark knights: 15 -> 30
  • "Boiling oil":
    1. Cooldown: 40 -> 50 sec
Bug fixes
  • A bug with not attaching unemployed workers to buildings under construction (when the game is paused, the number of unemployed may not have decreased properly);
  • A rare bug that caused a closed area to appear near the Townhall during the map generation;
  • Some crash fixes:
  • Multiple localization fixes.
[/expand]

Thank you for your attention, See you soon!

Yours, the Door 407 dev team

Bring the screenshots!


Hello, guys!
One of the latest updates brought the Sandbox mode to the game. And you gained an opportunity to build cities that won't necessary be attacked. No doubts you've built many tremendous castles! Please, share screenshots of your creations in the comments section. Let everyone see the images of DiNaO urban planning!

The Door 407 dev team

... yet another little announcement


Good Lords, Fair Ladies!

Our audience is expanding, and we are very grateful for your feedback and suggestions. It is through constant communication "Diplomacy is Not an Option" reveals to us fresh, and sometimes, unexpected sides. For instance, there is no common opinion about the difficulty of the game. Some people find it unbearably challenging, while others consider it too easy. Moreover, receptions differ among both, strategy lovers and newcomers.

Therefore, we ask you to share your best tactics that lead you to epic victories in the comments. Or, on the contrary, tell us about the goals you set for yourself to make the game even more fun. Maybe you can give some tips for beginners? Or have you already experienced some particularly vivid moments and would like others to value your achievements?

So why are we writing this now, you may ask? Because it is essential for us that you exchange your experiences, thus developing the game community. Also, because apart from the Story Campaign, Diplomacy is Not an Option is getting Steam achievements on the full release. (That's right, guys, the achievements will appear in the game once it leaves Early Access). Yet the work on them has already started. So we came up with the idea that your unexpected tactical solutions and unusual strategic challenges could become a great basis for what players will get Steam achievements for.

For a dessert - one more thing to look forward to. A week has not passed since the Summer sale on Steam, and Diplomacy is Not an Option is once again discounted. If you wanted to buy our game this summer, but something stopped you, here's your chance. The offer is valid for one week, until the 24th of July.

Yours, the Door 407 dev team

Features to come... Someday



Good Lords, Fair Ladies!

We again want to give you an update on what's coming to Diplomacy is Not an Option before it leaves Early Access.

As you may know, not all the foes and not even all the enemy factions are currently presented in the game. However, as time goes on, the nature of each of them is shaping clearer. This allows us to find solutions common to all factions and unique, applicable only to one of them. As we proceed with the story campaign, we decided to rework the mechanics that we call between ourselves "micro-waves" or "mosquitoes". With the next update, the Rebellious Peasants and the Royal Army factions will get several buildings where their units will spawn. On the one hand, this gives players more control (destroying such a building partly weakens enemy reinforcements). On the other hand, this feature helps to integrate the game mechanics into the narrative. Enemy units spawn at these buildings when meeting a certain condition or at every specified time interval. This feature will change the missions presented in the story campaign preview. Whether these buildings will appear in Challenge Mode or Endless Mode is still an unanswered question for us.

There have been many requests (and still counting) for an alternate source of Soul Crystals. In the beginning magic in Diplomacy is Not an Option was designed as additional mechanics to encourage the extermination of enemies and slightly increase the chances of withstanding subsequent attacks when your army has not yet recovered from the previous ones. It's quite simple: you kill enemies, get a resource with which you can annihilate them in a different way. The question about adding an autonomous source of Soul Crystals not related to military successes is a big question of balance. After all, if there is a shortcut to victory in the form of virtually unlimited spellcasting - it would devalue the need of managing the economy and the army. Nevertheless, after continuous experimentation, we are ready to announce a new building - the Alchemical Transgressor. With it, you will be producing Soul Crystals while spending a certain amount of Iron. And since this building is already tightly linked to the new economic balance, you can expect it to arrive in the nearest DiNaO updates.

We still can't announce a release date for the updates (nor can we give an accurate prediction of how many of them we'll deliver before the game's full release). Still, we hope the details about our work will ease the waiting time.

Thank you for your attention, and until next time!

Yours, the Door 407 dev team