1. Arbitology: Dei Gratia Rex
  2. News

Arbitology: Dei Gratia Rex News

May Update

It's that time again, another first Saturday, so another update!


Soundtrack


In perhaps the most exciting news for May, the official Arbitology: Dei Gratia Rex soundtrack is finished! Not only is it finished, but you can listen to it in its entirety on the composer's YouTube channel! This soundtrack is composed of over 35 minutes of lute music and is based on authentic medieval compositions. Give it a listen, and check out the video description for more context on the pieces!

[previewyoutube][/previewyoutube]


Vassal interactions


In DGR, there are many simulated people. Hundreds are alive at any one time. These are your vassals and their families, various important non-nobles, and a few others. However if you never get to meet them, does it even matter that they're simulated? This is a problem that I struggled with. There are many dealings with vassals during war and when touring the realm in the itinerant court phase. Outside of this, there just were not enough times to meet these people. I set about changing that.



There is a high degree of randomness as to who is visiting your capital at any specific time. However once I put the finishing touches on it, the itinerant court events will be retrofitted to use this also. You'll never be able to meet with any person at any time, but you will generally always be able to meet with a given vassal at the very least yearly.

This turned out to be a bit of a challenging system to create, as in the first attempt I found myself looking at a combinatorial explosion. The direction of these discussions follows the personality of the person with whom you meet. There are a great many types of personality in DGR, you see.



After some experimentation, I found a workable solution. There are some limitations on both code and prose, but I now find myself with only around 120 events to write. That's still a lot of content — I've seen some choice-based narrative games that list having that many events as a game feature — but it's not totally out of line with the other sections of the game. This isn't quite done yet, but I'm well on the way. In even better news, this system will be the seed for another system I hope to talk about next month.


Better saves


Saves were one of the first features I added many years ago. I recently added a few features to the save system, including autosaves, but the core machinery was practically ancient. I used a fairly naive approach because it was simplest, and, as we all know, premature optimization is the root of all evil.

I generate a fair few saves files while testing, and even more autosaves. I own only very weak hardware, but I actually started experiencing lag when loading the in-game save file browser menu for my autosaves! That was not acceptable.

Long story short, early game save files used to be ~1.4MB. They're now ~87kb. Also the number of saves for which previews can be generated without causing lag is now at least in the upper hundreds, but probably a bit higher.


What's next


Finishing writing these meetings! After that, some more options for the player to take of a less administrative and more personal nature.

April Announcements

Welcome to another monthly review post. There's a fair bit this time, so let's jump right in.


Release Dates


The big one first: it is in the best interest of the game to push the planned release date back.

I have been pushing hard for a release on May 13th. In order to do launch right, there are a number of things that need to be in place which just aren't right now. Moreover as the date approached, more and more game content also ended up on the cutting room floor. If I had forged ahead anyway, I'm almost certain it would have ended badly.

I also considered doing an early access release on that day. Some people were strongly in favor of this. Others were considerably less enthusiastic. Ultimately what tipped the balance for me was seeing a YouTuber talking about a different early access game. He said something to the effect of it being a game that they played briefly but then decided to ignore because they didn't want to ruin the experience of playing the finished game. For a game like Dei Gratia Rex, I feel like there is real risk of ruining the final experience by playing an incomplete version, both for content creators and players alike.

This deadline was a hard, external deadline with some consequences attached. It's not the end of the world, but please know that I did not take this decision lightly. That said, the silver lining is that I can now do what's needed for the game without arbitrary deadlines hanging over my head. I still very much want to launch sooner rather than later though.


New Art


In more positive news, most of the new art is in and integrated with the game. The line-fillers I wrote about a while ago now use real art instead of placeholders!



There are new miniatures!



Also those large, uncomfortable stretches of empty space that appeared on some pages tend to get illustrated with weird marginalia now.




Other Stuff


There has been a lot of behind the scenes work. However, now that I can, I have taken the opportunity to add some new utility features. Specifically there's better bug logging, more comfortable unique game IDs (base32 instead of hex), and the player portrait is now a clickable shortcut to the player's character information. Also, as a result of early playtesting, I found that the game wasn't forceful enough when mentioning things that aught to be done, like addressing unfilled council positions or making a big deal about Lent. Notifications of this sort have been improved.




What's Next


More work on the game of course. However, also look for an improved store presence soon-ish. The store page was put up a long time ago, and the game has definitely improved in the interim. I'm not exactly good at making buttons and such either. There is some new branding artwork to tie everything together, and I'll have some help with the redesign. I think it is going to be much better!

More to come next time!

March Update

Welcome to another monthly update post! There are a few topics this month, so I'll dive right in.


Balancing


Now that wars are playable from beginning to end, I ran quite a few to look for problems. I also had the privilege of getting input from a friend who played for a bit. I learned a few things from this: raiding was underpowered, war was too cheap, extorting money from a defeated opponent was a bit too good, battle could be a little more attainable, and small wars could get dragged out to an unreasonable degree.

To buff raiding, county ruin values now can drive defections. County levies provide the bulk of the infantry and tend to be a bit more reliable than the troops provided by feudal elites. Beyond the customary 40 days per year required of them, the latter take a certain amount of convincing, after all. Raiding now provides a way to indirectly attack the county levies. If you ruin their lands and homes, men will begin defecting.



Previously raiding was a good way to get money. Unfortunately this was not especially relevant. I initially balanced the revenues based on the historical data my research uncovered. Wherever possible I want to adhere to history. However this is going to have to be a point of departure in the service of gameplay. Tax revenues are a bit lower now, troops demand higher wages now, and forcing the payment of a literal king's ransom from a defeated enemy is now much more difficult.

As I've mentioned in previous dev diaries, pitched battles in this period were quite rare indeed. The war system I created doesn't envision that every conflict, or even most conflicts, would contain one. That seems to fly in the face of player expectations though. Part of this is a communications problem; I'm planning on writing some ever so slightly railroaded events to teach proper 12th century tactics. For the time being however I did make it somewhat more easy to force battle on an enemy that doesn't want it and very easy to force battle on an enemy who is heavily outnumbered.



To speed wars, especially small ones, along, there is now a war weariness system. After hostilities have been going on for some time, the belligerent who is doing better at sieges gets small by steady gains to war score. The exact algorithm is based on percentage of land under control, so this factor is highly relevant against a small opponent, but only of minor concern against one of the larger kingdoms.


AI Wars


It turned out that I had some work to do to get the AI to properly use its casus belli, especially since this can interrupt whatever else you may be doing. There was also a little bit that needed to be done to allow the AI to present and properly value an initial offer at a peace talk — even if it has understood counterproposals for some time. All that is done; wars are fully playable from beginning to end.




Autosaves


Naturally, any strategy game needs an autosave system. I was going to add this later, but I'm chasing a few annoying bugs at the moment. Being able to load directly to where the problem is (or even the turn before) is hugely helpful! While I was revisting the save code, I went ahead and added some integrity checks and another line to the save file browser to show character name and in-game year.




Art and Music


The final batch of art is almost finished! Once it is, expect a few more decorations on the screenshots where this is now empty space. Also expect improvements to the store page. Despite being quite some time since the last art was done, the style of the new work is wonderfully consistent with the existing art.

Additionally I'm very excited to announce that Dei Gratia Rex has a nearly complete lute-based soundtrack! The soundtrack is composed principally of variations on existing medieval works and is played on a real instrument. More info to come when it's all finalized.

I'm really fortunate to work with such talented people.


What's Next


I'm still mulling what will happen in May. I don't think I am going to make full launch in time for that deadline. I could release into early access then. Some people have strongly suggested this, others have warned against it. It's a hard decision, and there is some pain associated with not launching early access then. That said, I want to give people the best possible experience with this game.

I'll know one way or the other by the next post.

February's Post

Welcome to another first Saturday update post! Just a few quick topics this time.


News


I'm tentatively planning to release on May 13th. There are some external deadlines in play, but that's not surprising for a project that's gone on as long as Arbitology: Dei Gratia Rex has. I'm crunching to make this, but if it slips then I'm planning at the least to enter early access at that point.

I'm a bit leery of early access if I'm honest. Lots of games I've followed entered early access only to remain there for years and never release; I absolutely want to avoid that fate. I'd much rather do a full release and be judged on what is available at that point, and then support the game with free content patches going forward. I'm definitely interested in opinions on this, though: would you rather buy a game in early access, or a full release that will be getting free content patches?

In other news, I'm pleased to announce that the soundtrack is coming along nicely! Last month, in a bit of serendipity, I found a composer who understood what I had in mind for the project. The music is principally based on existing works — but with some variations and flourishes — and recorded on a real lute. Several tracks are done and more are coming; I can't wait to share more on this!


Pitched battles, part deux


I finished the melee section I mentioned last time. There's not a lot more to say here, so here are some screenshots of new stuff instead:



Once I got morale calculations pinned down, I went back and added an optional pre-battle speech. This is of course mutually exclusive with the surprise charge tactic, and in any case you can skip it if you're not an especially talky king. This one was a fun way to get some effects from lots of skills. If you've not read some of the earlier updates, a quick guide: the redder the option, the riskier it is (in this case, the risk coming from your associated skill). Also the stricken options can still, usually, be chosen, but to do so you must spend willpower, a terribly limited resource. Forcing through a choice in this manner also usually affects your personality.




Balancing


It took a fair bit of time to get the numbers balanced for battles, and maybe there's still some to do there. I'm hoping to play through a few more entire wars to see how it goes. As mentioned earlier though: pitched battles in this era were rare. Unless one side or the other has a marked advantage, battles like this may not even happen at all in a given war.

Also I did some very early play testing with other people. A few missing things were added and some confusing text was changed. It also made me aware of some things that the game did not communicate well enough. I hope to do some more of this in the coming months!

More to come next time. After that post, I'll likely deviate from the monthly schedule though. With any luck, there will be more things to talk about!

January Report

Another first Saturday of the month has arrived and with it another update post.


Pitched battles


These aren't yet totally finished, but they are pretty close. There is enough done to discuss them at least!



In common with many strategy games dealing with medieval warfare, Arbitology: Dei Gratia Rex breaks battles into a series of phases. These battles start with a deployment phase as shown above. Each arrangement will unlock different tactics in the next phase, the approach.



Here are a few different possibilities. At the start of battle there is a certain distance between the armies. Depending on which tactics are used, that distance is reduced (or not) at a commensurate rate. When the distance reaches zero, the melee phase begins.



Melee phase is still under too active development to show screens, but it works in a very similar way. A number of tactics will be available based on how things are going. The opposition chooses a tactic simultaneously and the results of these choices will result in damage to one or both armies based on the specifics and the sizes of the armies.

When morale on one side falls too low, it will break and run. Pitched battles were generally uncommon during this period, and even rarer were battles fought to the last man. When this happens combat transitions into a pursuit phase — but be on guard against feint tactics!


Skirmishes


Pitched battles aren't the only sort of battle. It's often advantageous to engage in limited skirmishes instead. There are fewer risks, especially if you have an advantage in light infantry and men-at-arms.




Map logic


Testing out combat revealed some funny cases in which a force could be reduced to nothing. This ended up needing some special logic to bounce the skeleton force to a safe county where it could try to reinforce. This naturally comes with a heavy war score penalty and balanced values hit.



The AI is now a little smarter about seeking out or avoiding battles and skirmishes as well. On the other hand, the AI no longer cheats to have perfect reconnaissance while the player must expend precious time to get that information.


Miscellaneous


I'm pleased to announce that I have in fact approved a new batch of art and it is well under way! It will be some time before there are things to show, but I'm excited to see what will come. Hopefully there will soon be additional news on this front as well.

I also wrote a launcher for the game! DGR is actually made using web technology, targeting the desktop via NW.js (think Electron). Some people have some legitimate grievances against this technology, but if you're making a game this is overwhelmingly styled text, 2D images, and a few animations, I content that it's one of the best choices. However one weakness is that packaging an app for launch is a bit of a process. There are some solutions provided, but I just went ahead and dusted off my C programming skills to make a standalone launcher. This is perhaps the most boring thing I'll ever write about in these updates, but it's a real step in my mind toward this game actually, you know, shipping.


A video


In a previous update I mentioned that my local game dev group was having its second annual summit in January. Unfortunately this did not actually happen. Given pandemic conditions it was scheduled to be a digital only event. Some things came up and a few people had to pull out, resulting in cancellation. By that time however I had already written my talk, so I just recorded for YouTube.

I'm not very good at recording video and this was a very spur of the moment thing without a lot of preparation. My apologies for the quality here. That said, if you're interested in a short talk about one method of dealing with the combinatorial explosion in narrative design (or alternatively some nuts and bolts of DGR events) here's that video:

[previewyoutube][/previewyoutube]

Thanks for reading, more to come next month!