It's definitely been a while this time. I do apologize for that. I have a great deal of difficulty writing these things when I don't have new features and content to talk about.
The short version is this: DGR is not cancelled. My life situation changed dramatically in the last 14 months, and I'm still figuring out how to get things done under less than ideal conditions. I did make a few more small things to prevent atrophy of skill, and they will be linked in the companion Tweet.
If you're interested in more details, read on. Fair warning though: I can't promise that it will be especially riveting material.
Blog
The last time I wrote one of these, I mentioned a death in the family and quite a mess left in their wake. That's largely resolved at this point. On the other hand, I've had to pivot to, first and foremost, being a caregiver for my aged and mobility-challenged mother. This consumes a lot of time. More than that though, it consumes time in small and medium chunks throughout the day, every day. I didn't realize what a luxury it was to lock myself in a closet office for 6-to-8 hours per day, heads-down on the game. I cannot do that anymore. I also didn't realize how nice it was to work on a table rather than trying to steal snatches of time with a laptop while spending hours per week in waiting rooms. Moreover, I didn't appreciate even little things like being able to wear headphones.
Had I made different life choices, I could no doubt have hired someone for this. Alas, the money I did have was spent long ago. It wouldn't have gone far anyway, given the absolute state of the Medical-Financial Complex in the Land of the Free. This falls to me to do, and honestly I don't mind it. There are far worse things in this world, and it's really the least I can do to repay all that has been done for me. All the same, it has made forward progress on DGR difficult.
All that said, I refuse to give up. It's probably a sunk cost fallacy, but I'm not letting all the time and money I invested in this go to waste. That would be a genuine tragedy, even if I have no illusions about what the most likely outcomes in indie games are. If I'm honest though, this game dev nonsense is one of the few things I have, and DGR is the only project of mine that's ever got any sort of traction.
Speaking of which, in this brief pause I've taken on DGR, I made a few small games. They're playable in the browser, free, and, insofar as such a thing exists in games, finished. There will be details on that in the companion Tweet, since I can't really put the links here. I will say I am somewhat pleased with Dream Warrior. The others perhaps not so much, but I worked out some cool tech in all of them that I'm going to add to DGR. Working on simple things of limited scope unburdened by the weight of thousands of simulated characters with 50-ish possible qualities and two-and-a-half novels worth of text has been about my limit of late.
What's next
In all honesty I don't know.
Assuming my plans hold, I will be attending a local convention with an equally local game dev group again this year. In support of that, I'll freshen some things up here Very Soon (no, really), and hopefully replace that awful trailer I made years ago.
I should have known better than to post definite plans with dates attached in the last update. I'll forgo that this time. Now that I've got some (recent) experience in finishing, I'm really going to try to apply that to DGR in the coming months.
If I can help it though, I will at least endeavor to communicate better. Nine months between updates was a bit excessive.
April, May, and June
It's been a while, hasn't it?
I've honestly been a bit stuck between competing desires. Until recently, I had never missed a monthly update. Some were a bit late, but even through the pandemic years, I did not miss any monthly updates. On the other hand, I really don't like to post bad updates and even more so, as mentioned earlier, I don't want to use this space as a personal blog. In the end, in order to post something, I'm afraid it will have to be a less than good update and also a bit of a blog.
On the other hand, if you're interested in playing something else I've made, there might be something of interest here.
Blog
In late March, my stepfather passed away. He left in his wake a bit of a mess, both physical (because he was a hoarder) and financial (because he had a lot of debts, some of which were at > 28% interest). Further, my mother is not in particularly good health and needs significant assistance in even routine tasks. I've been working to fix those messes, while also having many new responsibilities. I have not taken to this new reality very easily, if I'm being honest.
I have faith in this project. That remains unchanged. Lately though, in light of my new circumstances, it has been hard to justify doing "unpaid labor." As such, very little work has been done on DGR in the last few months. Things will change. However, every time I think I've nearly rounded the corner, I find new things that sap my time and energy. This time I am not going to make any specific predictions, instead only saying that I do plan to return to as close to full time on DGR as is possible, as soon as is possible.
Dreams of Gold
I have been working on this game for over six years. I have been starting to have doubts about my ability to finish. Quite by chance, I found a post recruiting participants for a Narrative Design Jam. It's hosted on another site that, in addition to hosting jams, sells video game online. Valve, understandably, filters links to such sites. I don't blame them; were I operating something like Steam, I would not allow my partners to link to competitors either. There will be no links here, but I'm sure you can find it via my other social media.
Anyway, my efforts in May went to finishing something. I stripped down the DGR engine and made a narrative-focused game, Dreams of Gold. It didn't win the jam, but it was one of the nominees. I'm quite pleased with that result. More than that, I finished a game for the first time in a few years. Some people played it; indeed, you, too, could play it today if you wanted! It is a very different game though, and I would not be upset if you didn't.
I got some tangible benefits out of it also. I worked out a process (and wrote code to automate most of it) of producing pre-compiled builds, which is a lot nicer than shipping full source for everything. This will work more or less unchanged for DGR. I also got a few bug reports for the underlying engine. I have already applied these fixes to DGR.
Less pleasantly, there just wasn't an audience for the game. It's a weird art game, so that's to be expected. I wasn't quite expecting it to sink so hard, so soon though.
This has really inspired me to finish DGR. As niche as it is, there are levels. I admit, I was hoping something might happen with DoG, and maybe I might make a few other small games with micro budgets that may earn a tiny profit, so I could keep the lights on for a while via games. But no.
What's next
Now that I have found some ways to be at least a bit productive, I am going to get more done on DGR. Hopefully I can apply the lessons on finishing here as well. Also, as it's already the 20th, I'm not planning a post in early July, but instead resuming the regular cadence on the first Saturday in August.
March Update
Welcome to another regular monthly update. The bad news is that there isn't much to report. The good news is things should be returning to something approaching normal by this time next week. I've still got a lot of other work to do now, both the paying kind and otherwise, but at least I should be able to carve out large blocks of time to work on DGR going forward.
I'd like to thank everyone for their patience and understanding. I really appreciate the kind messages.
What's in a name
Rather unexpectedly, there was a recent discussion about DGR on another forum. It's still going on at the time of writing, in fact! Also much to my surprise, there was a rather vigorous discussion of some of the names used.
DGR is an alt-historical scenario. From the beginning I have striven for "hard historical fiction," in the sense of hard sci-fi, however. I'm trying to get as many details right as is possible, even if I'm also allowing enough invention to allow the game to be replayable. This does include even superficial things like names.
A central conflict in this game is that of two competing claims to the English throne: the Norman claim, gained by the incomplete conquest, and the Saxon claim, from the northern barons' support of Edgar Ætheling. Both are of these are fairly large, strong realms. Both of them claim to be the real England.
I ended up with "Bryttania" — etymologically connected to the title "brytenwalda" — as the title for the Anglo-Saxon England, and simply "England" for the Norman England. I fully admit that the former isn't a good name. However, they aspire to more than a title like "Northumbria" communicates. A compelling argument was made in the aforementioned thread to have each side call themselves England, but in their own tongue: thus "Englaland" and "Angleterre" for Saxon and Norman respectively.
I'm not fully convinced of this myself. If someone were to briefly look at the above screenshot, they may not really know what those names meant. Almost everyone, on the other hand, will recognize "England." Either way, I would definitely not mind hearing more input on this!
In any case, that discussion inspired me to decouple the display name from the internal name. So regardless of which way I go, it will be easy enough to mod the name to your preference.
What's next
I'm honestly not sure. The more I try to plan things, the worse they seems to go. What I do know is that I'll let you all know on (or around!) the first Saturday of next month. Thanks for reading these updates!
February Retrospective
Things continue to be hectic on my end. If you're interested in that sort of thing, there will be a few details at the end. Otherwise, here's a quick update on some new developments.
Still more family events
As expected, these continue. There are some events that set up long, ongoing situations.
Ongoing doesn't mean perpetual though.
There was also a fair bit of work on an event with rather momentous implications. If you're familiar with some of the influences on DGR, you'll probably have expected this. However, unlike said influences, there are a few different species of this event, and you may or may not encounter it at all!
Blog
I'm kind of hesitant to turn these update posts into a personal blog. Also the common advice is to never talk about negative things in an official capacity. I'm going to go against the grain a bit, because I think everyone who has been following these updates should know what's going on.
Long story short, both of my parents are in old and have been in poor health for a number of months. One was recently admitted to hospice. There were some complications in getting to that point, which required quite a lot of work on my part. It may take days or it may take months, but this isn't a situation where recovery is possible. I have a lot of things to do on that front, and I cannot plan around any of them. This means I can't really block out large stretches for work, because there are frequent interruptions. I also have to be available to help them most of the time.
Further, DGR was always intended to be a 12-18 month project. Obviously that was massively arrogant on my part. The progenitor of this sort of game takes 5+ years to make one and is rather more experienced and talented than am I. Perhaps creating a simulation of thousands of characters was a bit of over-scoping as well. Either way, the money I set aside is long gone at this point, even if I brutally optimized my expenses and sold my valuables. When short term work appears, I more or less have to take it. I don't have anything right now, but in April there will be another fairly sizable contract.
All this means that work on DGR has slowed considerably. This isn't a choice I've made. This isn't an abandoned game, either. It's just the consequences of life (and taking too long in finishing). I'm sorry this post didn't have that much content. Hopefully next month will see a better post!
January Update
The first Saturday of the month has come and gone. Apologies. I'm kind of behind on everything right now. I have an unfortunate amount of things going on right now, and will for some time to come. I'm still doing as much work as I can despite that, but sometimes things like update posts slip through the cracks a bit.
Family events, continued
As expected, these events are continuing. One of the reasons I saved these for the end is that I expected they would interact with lots of other systems. This expectation turned out to be accurate. Just for one example, a promised hunt and some interactions with previous systems:
Also as expected, the fact that many of them are secretly seven events masquerading as one to hit all seven personality templates, it's slow going. This expectation also turned out to be accurate, I'm afraid.
Traits and continuation
Ages ago, I wrote about a design goal of having no entirely good or bad traits. I think the examples I used then were having sufficiently angry, shy, or dull characters having options available in some events that neatly sidestepped some unwanted consequences.
This is something that I have continued through the entire project. One thing that is often hard is finding downsides to generally positive traits. I did find the good fortune of discovering a few places recently in which frugality and kindness were less than ideal. Of course, as always, spending willpower can allow your king to act out of character.
Continuation events are another things I wrote about ages ago. Briefly, these are events that have delayed consequences. These continue to be written as well.
What's Next
More family events for the foreseeable future.
A New Year begins
The first Saturday of the month — and year — is upon us. First of all, I hope everyone had a safe and happy Christmas, Hanukkah, Steam Winter Sale, or whatever other winter observance you may happen to celebrate. Now is a time for reflection on the previous year and looking forward to the next.
2022
Perhaps the thing I am most proud of this year wasn't writing any events, quite the opposite in fact! In June, I finally deleted a certain temporary event. Much of the content I wrote before this point was player-directed content and content contained in specific modes (like warfare, the itinerant court, and the introductory phase in Normandy). As of last summer, I finally had enough main-phase random events that I could delete a min-weight placeholder. Hurray!
That's not all of course. Looking back on some older updates, I find the old book texture a bit jarring. That was among the visual updates.
That reminds me, I really should update the store page with screenshots that showcase these new visuals.
Otherwise, lots of content! I wrote hundreds of events of many types, from simple random events touching traits, factions, and locations, to complex systems of interfacing with laws. I'm very much looking forward to the future.
More visuals
I knew my schedule would be a bit fragmented in December, so I shifted gears to work on a few systems that don't necessarily require long periods of concentration. One of these was another go at the handwriting effect which I outlined previously.
The basic idea was good, but there were some problems. The goal was to better simulate text written by hand, while still remaining easily legible. To that end, I introduced a subtle jitter in spacing and letter form. This was all fine and I'm actually a little proud of it. However there was also a random jitter in opacity which, in retrospect, does not make all that much sense. This was changed such that ink levels start high, decline slowly up to a point, then rapidly decline. After a threshold is reached, the digital scribe, so to speak, refreshes their ink and continues.
In the second paragraph, you can notice that the scribe is running low on ink when they get to the word "skill."
Options menu
I also finally got around to making a functional options menu.
I had an unexpected chance to demo the game in real life somewhat recently. Unfortunately I was just hand-editing options in a JSON file at that point. So when I did the demonstration, it had to be without the benefit of music, which was tragic. The options menu solves that particular problem, should it happen again. It was about time, honestly.
Conspicuous by their absence are options involving resolution. Worry not, that's on the agenda. I have a bit of a wild idea that should result in incredible flexibility, should it work as well here as it does on my website. On the other hand, I'm not sure it's going to be performant. Should that fail, I will at least create a few common resolution layouts by hand.
Spouse events, continued
This is still on-going. I find writing these events a bit slow if I'm honest. In the first place, they say "write what you know." It may come as a surprise to some, but I've never actually been married to a stranger for political purposes. The sources don't offer as many details as I'd like here, either. I find myself having to invent situations and then proof them for historical accuracy.
On a technical level, these are also large events. Consider that DGR tracks thousands of characters, most of whom are randomly generated. It would not be possible, nor especially desirable, for me to write thousands of different sets of events based on one's spouse. On the other hand, writing one set of events for highly varied personalities wasn't all that appealing either. In the end, I decided on the compromise of seven different templates. From a very early point I was using templates for random characters anyway, so it seemed natural.
Here is a small taste of that in action. Depending on your spouse's personality, they will have different interests, reactions to your deeds, and requests of you.
What's next
I feel as though I've said this before, but finishing the family-based events. I think I have a workable framework to get these done a bit faster now, at least.
More next time!
November's Post
A little late perhaps, but the time for the monthly update post is here.
I'm actually at a bit of a loss as to what to write in this one. Lots of things have conspired to steal time from me lately. This happens now and again; other activities sometimes have to take priority over unreleased games. Annoyingly, the work I accomplished doesn't show well. I had considered just postponing, but in retrospect that's not wise for other reasons. Anyway, a quick list of things I've been working on, then a larger discussion of relation-system changes in anticipation of family events:
Changes
Two missing pieces from the Magnum Concilium (I know, I know): first nobles can ask for land, and second relations are actually affected when forging ahead with only partial support. The latter differs from doing things with no support. This was meant to be in earlier, but slipped my mind.
Bugfix: a number of events have weights that grow over time, for example the negotiations for wedding terms and advisor missions. The math on all of these had to be adjusted significantly, as there's now too much content to multiply the base weight. Seriously, in testing, it took like 25 months in order to get the negotiations to fire, and the woman had already married some other noble, every time. I could queue the event at a fixed time, but I reserve that for things that cannot use the event system, like the death of bishops.
Bugfix: The player character no longer checks his relationship with himself on the wedding night.
Autosaves: I think there's a data race. Tragically, like most race conditions, it is devilishly difficult to reproduce. I wrote a lot diagnostics to try to catch this. It's not done yet, but I think I'm closing in. On the other hand, the "circa 2010 hardware" I mention in the system requirements is in the process of dying, so that could be the source of the corruption. Either way, reproducibility is a major goal in DGR: from a given seed, the same sequence of inputs needs to result in the same set of outputs. This is fine on normal saves and usually autosaves, so finding out why it occasionally isn't on the latter needs to be solved.
Types of relationship
For most relationships, DGR uses a single number. If you've played certain other character-based strategy games, this may be familiar to you. Zero represents indifference. Lower values indicate disdain while higher values conversely indicate approval. This is a simple system and an unreasonably effective one. There are some things I do differently, but those things are the one set of features I'm playing close to the vest. More on that later, but hopefully not too much later.
Despite how well this works for most things, there are a few places where it doesn't work. I think the classic example is you could start a day with a near-maximum relationship value with your romantic partner, and at the end of the day discover clandestine infidelity. Your relationship would most likely change quite a lot, but it would never pass through indifference.
I believe the prevailing narrative design advice is to forgo the numeric relationship value and use flags instead, but that would get unwieldy with thousands of randomly generated characters when I mostly only care about the overall value. Other games, like that character-based strategy game, throw around a lot of +/- 100 adjustments for certain things, but that can result in your rivals still having positive relations with you. Instead of either of those, I am keeping (for characters for whom it is relevant) a number of different sorts of relationship scores concurrently.
It is possible to like someone but not love them; a friend who doesn't share your love is a common tragedy, after all. More confusingly, but very humanly, it is possible to love someone, but not be in love with them. It is true that in a world of arranged marriages these things don't quite carry the same meaning as they do to us moderns. They do mean something, though. The ideal situation for medieval nobles was that love might be found in marriage eventually, even if it begins with two strangers. This system is now more or less in, but content using it remains to be written.
What's next
Writing said content! And trying a bit more to get to the bottom of that data issue. One way or the other, expect a more visual update next time.
October report
Yet again, we've reached the first Saturday of the month, so it is time for an update.
The Magnum Concilium continued
In the previous update I mentioned a fair bit of hidden complexity in the Magnum Concilium. The good news is that this feature is almost entirely finished! More on what "almost entirely" means later. The bad news is that it consumed way more time than I was expecting
To review, the Magnum Concilium was a great council of lords convened now and again by English kings to discuss important matters within the realm. In the time of the Conqueror, it was not particularly formalized and was held at the king's will. In later centuries, this body evolved into Parliament. In our time period, it is far closer to the former than the latter.
Not only can laws be affected, as discussed last time, but so too can other things. When acting in unison with the lords of the realm, many things can be done cleanly that would otherwise be considered tyrannical. Perhaps you want to increase taxes or disseise an enemy? These are among the possibilities.
Of course there's no guarantee that your tenants-in-chief will agree to such things. If you share a common enemy, then naturally they will want to see them suffer. Likewise lords who feel they do not possess enough land will happily support you in a bid to conquer more land, as they're likely to gain some of the spoils.
Other methods of building consensus are available as well. You could always try to argue in favor of your proposal. Favors gained through various methods can be called in as well.
Perhaps most interesting though is that the other lords have certain ideas about what aught to be done at these councils. If you lend your support to their causes, they might well support you in turn, assuming they aren't among your enemies of course.
What's next
When I say that this feature is "almost entirely" finished, I mean that everything is done that presently can be done. From the beginning of this feature, some actions were planned that involve the player's heir. Holding a grand knighting ceremony when he comes of age for example, or compelling the lords to pledge loyalty to your intended heir as you enter your twilight years.
While NPCs have no problems marrying, reproducing, and all that, I removed the player character from that system when I wrote the courtship and marriage content. At present, the player character isn't exactly producing heirs. I want all of that to be handled via events, as these sorts of things are fairly momentous life events, after all.
That content is next on the agenda. More next time!
September in Review
It is, once again, the first Saturday of the month. It is time for another update.
The Magnum Concilium
The Magnum Concilium, that is the "great council," was an important instrument of governance in 12th century England. Now and again the king would summon all his tenants-in-chief, as well as the most important clergy in the realm, to discuss matters of great importance. In later centuries, this body morphed into Parliament, but in our time period, this is the object of our concern.
From a gameplay perspective, I didn't think it was fitting that legal changes were only forced on the king. In previous posts I wrote about dealing with the major and minor factions. Sometimes they wanted a decree in their favor, other times they were willing to let slip a previous legal change in service of a beloved king. The clergy, in command of the power of binding and loosing, could even remove a pesky law imposed by others! However all of this is reactive. Being able to proactively make decisions is much more fun, so the main purpose of the Magnum Concilium is to allow for such player-directed interactions with the legal system. There are other matters the council can address, like war-making and revoking titles, but the law was the primary motivation.
The feature is still under active development, as it has proved a bit more complex than I had intended. Working on this even managed to reveal some performance bottlenecks(!) in autosave code(!!), so suffice it to say, some things may change.
Attending this council is a right granted only to the great lords and the king's personal advisors in the household, chapel, and exchequer.
Gathering the great lords is an excellent way to get focused advice from many voices. This is often higher quality advice than you might receive from individual meetings or at feasts.
You can make a number of proposals. However, the other lords will have certain ideas in mind as well. You might need to work with others to get their support, supporting their goals to win support for your own. On the other hand if you're feeling a bit tyrannical, you can force through what you wish even without support; the other lords will remember it though.
Location-based random events
The interplay between global prosperity and banditry and local ruin and unrest is largely finished, requiring only some balancing. Some random events were indeed written to support that.
It seems the good prior's concerns regarding Buckinghamshire were warranted.
What's next
Finishing the Magnum Concilium. I definitely think it will be worth it when finished, but there's a lot of hidden complexity here.
More next time!
August Update
Once again we have reached the first Saturday of the month, so it is time for another update.
More Faction-based Events
The previous work on faction-based random events focused on the main concerns of the kingdom: nobility, clergy, and peasantry, as well as the nascent class of burgesses. These are important enough to be shown at all times, but there are other concerns in the kingdom as well.
Bandits are one such concern. There are numerous ways for bandits to infest the kingdom: dismissing mercenaries, poverty and ruin, angry peasants, and even some event outcomes. On the whole, having bandits around is unpleasant.
That's not to say it is all bad, though. If the problem festers, you might be able to ask for certain favors that are not available elsewhere.
Another of these concerns is the Jewish community. In our timeline, William I resettled many Jews from France to England, primarily to serve as moneylenders. Before this time, the economy in England was only semi-cash: some obligations were still paid in kind and William much preferred coin. In exchange for this, he placed the Jewish community directly under him without any intermediary. Should anyone do harm to a Jew, it directly concerned the Crown. On the other hand, English kings had a free hand to extract extortionate taxes from Jews.
Despite these protections, Jews frequently were the target of suspicions, accusations, and even violence. Shamefully, 12th century England was the birthplace of the blood libel in the case of William of Norwich. However, it was also a place where Aaron of Lincoln prospered to become the richest man in England, holding even more liquid wealth than the king. Moreover it was a place that could attract prominent Jewish scholars like Abraham ibn Ezra.
In short, it was a complicated time. It would be very safe and easy to ignore all of these things. However taking that path would not be compatible with "hard historical fiction." I've endeavored to present as much nuance as I'm able, while neither whitewashing the less savory bits nor indulging in gratuitous barbarity.
The treasury is also one of these concerns, if an abstract one as it is not really a faction. It is important enough to be shown at all times, but unlike the others it can't directly force you into a game over. Running it too low can, however, accelerate one of the other failure states. On the other hand, having an abundant treasury can open new possibilities, albeit very expensive ones.
What's next
I'm presently working on the interplay between the county-local values of unrest and ruin, and the global values of prosperity and banditry. This is mostly code, but there will probably be a tiny number of events to support this as well. Next I plan to work on tying up all the loose ends, mostly with making sure all the legal stuff affects what it should.