Author Topic: Ultima Ratio Regum (v 0.7 released, 18th April!)  (Read 22418 times)

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #240 on: January 10, 2017, 11:44:16 PM »
This last fortnight has been extremely productive for finishing off the development of URR 0.8. It has been really great to properly get back into the swing of things and see, and be able to play, major changes to the game at the end of each night. I’ve produced three substantially new things this week – the first initial steps towards NPC personalities, the set of answers to questions that have a range of distinct options rather than only one possible reply with words being switchable in and out, and lots of extra detail for insults and compliments. I’m also about half-way through the establishment of a comprehensive baseline for conversations, meaning that the player can now successfully have a Q&A-esque conversation with any NPC they encounter on any topic, which is the biggest and most important first stage towards the full conversation system that’s being developed here. That will be finished by next week, and will be focus of next week’s blog post! For now, however, read on…

(Warning: due to the nature of this update being entirely programming, the adding of new content, and developing elements that aren’t yet finished and ready to show off, I’m afraid there are no images. Hopefully some screenshots will be back next week!)

NPC Personalities

Firstly this week, in the process of filling out the “options” responses (see below), I needed to actually come in and add some of the personality modifiers for NPCs. In some cases these apply to all NPCs irrespective of whether they are important or not, and in some cases they apply only to the important NPCs that game tracks independently as the player moves around the world, and then in other cases they are relevant only to important NPCs of particular classes (for example, only a gladiator needs to have a fully-formed opinion about the crowds who watch gladiatorial combat). There is now a pretty large set of personality traits that NPCs possess, which affect their actions and their responses – and as with everything, should give the player hints about their origins, backgrounds, allegiances, and so forth. There are definitely too many to look at them all in depth here, but there’s a few particularly interesting ones which I’ll recount here. These include:

like_of_other_countries: This personality trait, somewhat obviously, determines what individuals think about other countries beyond their own. As with many of the traits here, this trait is modified by a range of factors. These include the NPC class and background of the individual person, and the wider ideologies of their nation, and their religion, alongside a small random component throw in to ensure that two NPCs with the same demographics will not always match up exactly, but will still generally be within a logical variation on either side of a set of beliefs. For example, an “explorer” from an “internationalist” nation is likely to think very positively about the rest of the world; a “jailer” or “officer” from an “imperialist” nation is likely to think very negatively about the rest of the world; and so on across all the NPC classes, and potential modifiers for national and religious preferences. Taken on a broad scale, you’ll be able to identify commonalities and overall feelings in a culture, but individuals will still vary significantly according to their individual life experiences.

like_of_art: This trait determines what kind of interest the person has in artistic outputs (paintings, sculpture, etc – there is an equivalent for “literature”, which will cover books, poetry, etc). This is affected once more by the kind of NPC you’re talking to, and to the ideologies of the nation in question. For example, a nation with a strong cultural interest in aesthetics will naturally produce those who like art a lot more; whereas a nation with a strong intellectual interest in mathematics or mechanical engineering will likely be less interested in works of art. This will affect how much people are willing to tell you about the artwork of their homeland, how much they know about it, and give you some hints about the place of artwork in that culture and therefore where (and what) artwork you might be able to find, which might yield clues in your central quest.

religious_zeal: This is a trait affecting quite a range of responses. This will affect how NPCs respond to you if it becomes apparent that you belong to a different religion, what NPCs think about heresy, how friendly and well-disposed they are towards inquisitions and other religious rules and strictures, how they act towards priests, what kinds of money or resources they give to their church, and so forth. Although most obviously living in a theocracy will boost the average religious zeal, this still varies a lot between individuals, in large part from their status in society, their contact with other nations and religions, and their personal history and relationship with the religion in question. There’s a wide set of speech replies that draw on this particular trait, and I’m very happy with how these have all turned out.

policy_acceptance and X_preference: There is a set of nine related traits: the first is policy_acceptance, and the others are X_preference, where X is foreign, military, leadership, and so forth, for each policy grouping in each culture/nation. The first of these refers to the overall contentment of the individual with the general policies of their homeland. Leaders and regents will, naturally, be extremely positive about the policies that they themselves have implemented and oversee; nobles and lords will generally be very positive, but may express small amounts of concern about particular elements of policy; and so on and so forth across the full set of NPC classes, with some classes having much higher chances to have serious issues with the policies, and some classes having particular issues with particular policies – a jailer will almost always think building prisons is a great idea, a prisoner will almost always disagree, and so forth. The second of these, the set of eight preferences, refers to what policy the NPC would like to see implemented instead of the current policy in each of the eight areas. The number of “other policies” an NPC likes is dependent on their overall policy acceptance, and then what alternatives they like vary according to their NPC class and a range of other elements. For now these just lead to a wide range of interesting conversation replies, but in the future I’m hoping to do much more with these personality traits and individual/personal preferences.

leadership_like: This trait refers to how much the NPC likes the leadership of their nation. This is not to say the leadership policy of their nation, as above – theocracy, monarchy, etc – but the individual personality/personalities of the person/people at the top. There are a lot of elements which go into this particular decision for each NPC, and as with the above set, I’m hoping to later tie this into the potential for social movements, conspiracies, and the like…

fellow_soldier_opinion: For those who are within the military, this determines what they think of their fellow soldiers. This varies by rank, by leadership, and by the individual histories of particular soldiers. I’m not quite sure what else this variable will affect yet – beyond a couple of possible conversation replies – but I think it could be a nice way to build up a sense of how different military forces function in the URR world.

There are many others beyond these, but these should give a good idea of the kinds of personality traits that URR NPCs have. As with much of the game, these numbers will not be explicitly visible to the player, but rather should become apparent by the behaviour of the NPC, which – hopefully – should be rich and detailed enough that one can actually draw these kinds of conclusions, and then use this kind of information to make informed strategic decisions about your relationship to that NPC. In turn, all the sentences that NPCs can say which draw upon these elements have been finished, and offer a massive variety of comments and observations that NPCs can make through drawing on their perspectives, understandings, and past experiences.

Insults and Compliments Revisited

Secondly this past fortnight, I took the feedback from several people on-board about the insults and compliments, and decided to revisit these. Although the greetings and farewells vary substantially in length and detail – and, of course, one will never see lots of these in quick succession as we do in these blog posts – the same wasn’t quite true for insults and compliments, so I’ve adjusted these. There are now a range of shorter and snappier insults and compliments, and these have been added appropriately to the game’s databases of possible statements.

I also this week took all the farewells, greetings, thanks, insults, compliments, and threats out of the demonstration file and implemented them into the main game. This took a while because these sentences are generated in a unique way to give a particularly high amount of variation compared to other sentences (because they are so common) and they need to vary both overall between cultures/religions, and in individual moments of speech, so that two people from the exact same background will themselves offer different farewells at different times. This seems to be all in place now, however, and NPCs can now give these statements at appropriate times!

Option Responses

The third major body of work completed this week was what I’ve taken to calling “option responses”. Some questions are easy to answer, since the answer will always take the same form with a word or two exchanged – these are “basic responses”. Other questions are harder to answer, which split into “option responses” (where responses are very different depending on the nature of the answer) and “list responses” (where a response will always take the form of a list). This week I’ve been working on the option responses. Some of the questions that have these kinds of responses include:

What do you think of the leadership?
What do you believe your foreign policy should be?
What do you think of your culture’s art?
What are the religious policies of your nation?
How widely spread is your religion?
What is your job?
What is the history of this monastery?
In all of these cases the game can’t just take a default sentence and then vary it, but it has to instead select a sentence from a wide set depending on the data available, and then create that sentence anew each time. There are substantially more possible “base” responses for option questions than there are for all the basic sentences combined, which gives some idea of the kind of variation that some of these need to have. With this fortnight finished, I’ve now finished these off, and I’m very happy with the kinds of sentences they create – they’re varied, detailed, and will take far longer than the basic sentences before the player will ever come around to seeing the “same” sentences again.

Conclusion

This fortnight has seen some major progress in sentence generation and the conversation system, and we’re almost at the point where the player should be able to have a full – if thus far a little basic – conversation with every NPC you encounter. Stay tuned!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #241 on: January 24, 2017, 01:17:14 PM »
Lots of major developments (and some minor ones) in URR this fortnight! Firstly, all the content I added last week meant that a whole new set of words and phrases had to be added to the lexicon; the best part of a thousand in total, if I’m counting correctly. I’ve now implemented all of these, and the game can correctly vary the words from all these new sentences by drawing on these new additions to the central lexicon. Secondly, I’ve now almost finished what I’m calling the “standard” or “basic” conversation system, which is ensuring NPCs can reply to every question they are asked; this should be done by this time next week. Thirdly, a wide range of further variables for individuals and the cultures they hail from have been implemented, and are now having an effect on what kinds of things NPCs will say. Another very, very text-heavy post this week – although next week’s will contain a lot of screenshots, this week continues to be lots of under-the-hood programming and content addition that cannot, yet, be reflected in screenshots, but is getting pretty damned close. Read on!

More Variations for New Words

Firstly, as above, there was a huge set of new words and phrases that needed to be varied for each culture, as with all the others. These entered the game because I was writing the new “option” answers (see last week’s entry), and needed to be written up. This was one of those tasks that isn’t especially intellectually challenging or needs a lot of programming experience, but mostly just involves adding a massive chunk of “content” which the game will then deploy in the appropriate situations. With this finished, I’m very happy with those look, and the sentences read really well and really nicely. Here’s a screenshot from the new set – I’m sure you can see how/where a lot of these fit in…



I also went through the existing words, and decided to statistically bias some of them back towards slightly shorter variations, and therefor slightly shorter sentences, as a response to the feedback I regularly get about some of the sentences being too wordy. You’ll see the same in the earlier example, where we have some sets using the same short word twice to boost the chance of that word being selected (this is of course not an especially elegant way to do it, but let’s be honest: my programming is not known for its elegance). This should ensure that sentences will tend to be just a little shorter and a little less wordy, and I’m going to continue this trend of chopping out irrelevant words whilst maintaining sentence variety – though this is a tricky balance to strike.

Nearing Completion on Standard Conversations

The development of the game towards what I’ve been calling the ability to have a “basic conversation” – i.e. the traditional question-and-answer session that one gets in most games, where the player asks something, the NPC responds, and this pattern continues until all conversation options have been exhausted – is now extremely close. NPCs respond correctly for all the “basic” questions (about 1/2 of all questions), and for the “options” questions (about 1/4 of questions), and are in the process of being programmed to respond appropriately to the “list” questions (also about 1/4 of all questions). This is the final step to them being able to ask any NPC any question, and get a response. For now these responses are all truthful, and they always answer, but this will still be a huge milestone once finished. As such, by this time next week, I’ll be able to show off the basic conversation system working universally, for all possible inputs and outputs, even if a few placeholders like “[holybook]” will still be in place, rather than the appropriate text itself. From my current trials with it, it looks amazing, and the experience of being able to select any question from this gigantic list and get an appropriate and sensible response is really something. It has been a long time coming, but I’m very confident that 0.8 will be worth the wait.

New Individual and National Variables

This week I also found myself needing to implement a large number of additional variables for both individuals, and in some cases for nations and religions and cultures, which NPCs would need to draw upon when they give their responses to particular questions and sets of questions.

Mercenaries

A range of new variables were implemented this week for mercenaries, along with quite a complex formula to decide on how much mercenaries cost to hire. There are four elements here – how much training a mercenary has had (counted in years, generally as a soldier, or in an arena, or they simply became a mercenary immediately and learned on the go), how much experience they’d had (how many years they’ve served as a mercenary, and also some specific stories/information about what they’ve done during their tenure), and then a list of benefits and conditions each mercenary brings. For each mercenary, the game develops a possible list of each according to their  background. For instance, a particularly zealous mercenary might refuse to fight their own religion (a condition) but be especially keen to fight other religions (benefit). This system is naturally comparable to a lot of modern roguelike games where you have PCG characters with selections of “traits” (or an equivalent term) that mix positives and negatives, and task the player with interesting strategic decisions. The game then figures out how much “true money” a mercenary costs to hire (a secret number converted into in-game currencies whenever it’ll appear on screen), which goes by a formula I’ve developed. Broadly speaking, better-trained and more-experienced mercenaries will naturally cost more, and the more benefits they bring the more they cost, but the more conditions they bring, the less they cost. There’s a bit more to it than that, but some initial testing has shown that this attends some very satisfying results.

National Voting Rights

Here’s an interesting one – the question of national voting rights. At the moment when each nation generates, a die is rolled to decide whether women, men, or both are allowed to hold the throne (or whatever the equivalent of the “throne” is). It then considers who is allowed to join the military – if only one sex is allowed to hold the throne, then that sex will always be able to serve in the military, and sometimes the other one will be too; if either is allowed to hold the throne, then both will be allowed to serve (generally). I’ve now extended this to voting right; if either can hold the throne, then both can vote, but if only one can hold the throne, then normally only that sex is allowed to vote, but sometimes the other sex is allowed to vote at a “reduced vote”, e.g. one quarter of the other. There is no real-world bias here so it’s totally randomised between F/M/either, and all variants are equally likely, although certain ideologies make “Only one not the other” decisions more likely than others (Imperialist nations are more likely to restrict, democratic nations are less likely to restrict, and so forth, although this is not absolute or guaranteed).

Nomadic and Tribal Relations

There are now variables to determine how much particular NPCs like tribal and nomadic nations. This draws upon the general feelings of individuals about other nations, which in turn of course draws on a range of ideological and historical factors, but also then modulates this further according to particular ideologies (if these are a close match with lots of tribal/nomadic states), and the individual classes of the NPCs. These will therefore be generally close to a more general feeling about foreign lands, but also quite different in particular contexts, and will affect what NPCs say about their nations, what they’re willing to tell you, what they themselves have “bothered” to find out (if they care), and so forth.

Delegates and Parties

This week I also implemented the first half of the system that will determine what kinds of political parties exist in democratic nations, which parties hold power, and how these parties will have shifted over time. To assess the political leanings of each nation, the game first goes through all of their ideological preferences and develops a set of overall political leanings for the nation, going by some axes that the majority of real-world political parties go by: are they primarily globalist or nationalist, are they liberal or conservative, are they religious or atheistic, are they collectivist or individualist, and so on and so forth. For instance, the “Isolationist” ideology will naturally add a lot to nationalist, and some to conservative, and a little bit to conservative; the “Aesthetics” ideology will promote individualism, but also nationalism, but also a little bit of globalism, and might also support religious iconography… and so on and so forth. Then, if there is a strong specific religious belief in that nation, it checks what political leanings that religion has (is it very peaceful towards others? Does it enjoy holy wars? Etc) and adds that into the mix where appropriate. The game then ranks these overall national political leanings, and then selects a number of parties, before going through each party and having the central tenet of that party be one of the leanings, starting with the biggest leaning and working down. So a nation that is first and foremost “liberal” will have its biggest party adopt a broadly liberal position, with smatterings of other political tendencies lower down the list for that nation. Once that is done, the game then looks at whereabouts delegates come from in that nation – do they come from districts of the capital, from towns, from monasteries, from farms – and distributes delegates appropriately to each party, depending on its political leanings (and generates a procedural name for the party, although this isn’t finished yet, but I’ll show some off soon). This party affiliation will allow delegates to comment on the current political situation according to their own allegiance – which was the only reason I implemented all of this now! But it’s nice to have it in place, and it makes the democratic nations just a little more fleshed-out, even if it’ll be the small 0.9 release where we really see this more visibly.

There are also about another thirty new variables added in this week alongside the ones listed here, but I decided to mention these four as they struck me as being some of the more intriguing examples from the selection. As noted last week, these variables are entirely hidden (or rather, the numbers in each variable are hidden) and are always going to be represented instead by who people are, how they act, how they dress, what they say, where you find them, who they worship, who they serve, and so on and so forth…

Next Week

The completion of the standard conversation system, all questions/answers for all possible questions, and a lot of screenshots to show it off! It has been a while since we’ve had any proper in-game screenshots, so it’s definitely time to actually give you all a look at how (incredibly neat) everything is looking now. See you then!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #242 on: January 31, 2017, 11:43:14 AM »
Another big update this week! (Isn’t it great to see URR development actually moving fast? At least, I think it is). As mentioned last week, I prioritised getting the basic conversation system totally finished this week, which is to say the ability to ask any question to any NPC, and get a logical reply, or at least the outline of a logical reply with some variables (like “[nation]”) that need to be filled in later. We had a lot of progress, and almost, but not quite, got there. But don’t worry! Other essential stuff for this release has been done instead of focusing 100% on the basic conversation system; we have still moved much closer to release in the last seven days, albeit in a slightly unexpected direction, by adding a range of other world detail that NPCs will shortly need to draw on when they reply to the player. I can also now finally announce some pretty big and very exciting changes to my life coming in the next six months, some projects ending, some new projects on the new, and what this all means for URR in the next half-year. Read on!

Basic Conversations Almost Finished

Basic conversations have been developed further this week, with NPCs now responding correctly to almost 100% of the large number of “option” queries they can be asked – which is to say, questions that need to draw on some other information and are fundamentally different depending on the outcome of that information, rather than simply being sentences which say “My homeland is X”, in a context where all NPCs will always have the same basic answer to that question. Option queries need to draw on a range of traits in most cases (within the NPC) and a range of broader cultural and religious elements (outside the NPC), and most of this code needs to be hand-written for every possible question, making it a fairly substantial piece of work. From these screenshots you can see that some bits of wording still need tweaking, but I want to stress, these are totally random selections from the hundreds of possible questions; although they aren’t perfect, I’m still extremely pleased with how these look right now, how much variation there is, and the fact that only some fairly minimal tweaks remain to be done to some minor typos, plurals, that type of thing. (Both of these is me talking to the first character I find, hence why I’m clearly talking to people from the same civilisation as me for the sake of these tests):





Irrelevant Replies

This week I have also begun implementing “irrelevant” replies – meaning things like “I have no religion” as a response to “What is your religion?”, and so forth – which apply when an NPC is asked a question they have no valid answer to, or is entirely irrelevant. This means a massive range of potential answers, some of which are specific to the question – such as “I have no siblings” – whereas others are more puzzled. An NPC might be asked about a painting they couldn’t possibly know of, for instance, in which case they would say “I do not know of that painting”. There’s close to a hundred of these irrelevant replies, all of which (like everything else) need to vary between cultures and individuals. Some of these require quite complex sentences, although others are relatively simple, but this has definitely need a substantial task. I’ve now put about fifty percent of these in place, and NPCs do correctly use them, too! Of course, in some cases NPCs can’t yet give the correct responses – the coding for siblings isn’t in there yet, so everyone just says they have no siblings – but the code for generating a sentence once siblings are present is in place. Dealing with these kinds of familial relationships and the answers to some of the more complex questions will come partly before the release of 0.8, and partly in the speedy 0.9.

Traits

Added some new traits this week, with a focus on four elements that will influence substantially what NPCs know (and what NPCs can tell the player) about the world around them. These are all affected by the individual classes of NPC – generally speaking someone who is likely to be wealthier and better-educated is likely to know more, but there is also significant variation written into the system, and the knowledge of individual NPCs (regardless of their NPC class) is then varied further by ideological preferences of their homeland. For instance, people from an internationalist nation will tend to know more about foreign matters; people from a nation with a system of vassalage will know more about their own nation than average; those from a bartering nation will know less about history, as few records are kept; those from a free trade nation will know more geography, as they travel to trade; and so forth.

geography_knowledge

How much the NPC knows about the surrounding area. This doesn’t mean the nations and peoples and so forth, but rather purely a question of physical geography – nearby mountains, nearby roads, coastlines, deserts, animals, plants, and the like. Affected

history_knowledge

How much the NPC knows about the history of the world (inevitably heavily, but not exclusively, focused on their own nation). This means their ability to talk to the player about the historical events they are familiar with, how many events they are familiar with, and also knowledge about historical artworks, people, places, and so forth.

national_knowledge

How much the NPC knows about their own nation – where things are, who lives there, where towns and monasteries and mines and so forth are and what’s within them, information about important people, etc.

foreign_knowledge

How much the NPC knows about other nations; their locations, capitals, ideologies, religious beliefs, leaders, famous people, practices, etc. As with all the above, this varies across NPC classes, and is then modified by ideological beliefs of the nations in question.

Relics

I’ve implemented the first part of the generation system for religious relics, which needed to go in now so that NPCs could actually talk about them. Naturally the image generation for these will take place at a later date, but for the time being the game can generate the names of religious relics, a little bit of information about them, and who they were originally owned by. Each religion will only ever create two kinds of relics, depending on their beliefs, and these fall into a randomly-chosen “major” and “minor” category. For instance, a religion might primarily produce “Crown” relics, but sometimes have a small number of “Bone” relics; or a religion might focus on “Book” relics with a small number of “Weapon” relics; and so on and so forth. Each has a unique generation system for selecting its name, and we can now end up with relic names like the following:

Twisting Key of Monn’morra
Slender Ring of Saint Ynnop
Wooden Garland of Grey Fox Running the Sacred
Orangejaw Moonblizzard’s Holy Engraved Locket
Fi-Un-Gat’s Pitted Skull
Consecrated Pointed Sceptre of Ibimmom, Sly Rose

The game also now keeps track of how many relics need to spawn in each church (which varies across different kinds of religious building) and ensures that an appropriate number will always appear. Generating the images for these is going to be a lot of fun, but isn’t going to come until 0.10 or somewhere beyond. Anyway, these are now in place, so NPCs will shortly be able to talk intelligently about relics, and specific relics will now be tied to specific reliquaries in specific churches and cathedrals!

Laws and Punishments

Three of the “list” questions (questions where the answer is often of the kind “A, B, C and D are examples of the X”) relate to the particular laws of a particular nation regarding various topics – currently “violence”, “trade”, and “religion” are the three listed in there. This means that nations now generate laws in each of these categories, and a set of punishments, and then assigns punishments to each broken law depending on the severity of the crime (as the nation sees it). Laws and punishments on trade are determined almost entirely by trade policy, but a nation’s perspective on smuggling is also affected by a range of other ideologies; “violence” laws are determined by a wide range of ideologies from across the eight main categories; “religion” laws are naturally primarily determined by the religious policy of the nation, with a few inputs from a couple of other policies.

To take trade as the example, there are now five possible laws that a nation can enact:

District Entry: how much money (if any) it costs to enter a district in the capital.
City Entry: how much money (if any) it costs to enter the capital city.
Foreign Goods: how much extra taxation is put on foreign goods (light, middling, heavy).
Black Markets: whether black markets are tacitly accepted or not, and if not, the punishment for using one.
Smuggling: the level of punishment for those caught smuggling/with smuggled goods.

Each of these then, if appropriate for the ideologies of that nation, has a value assigned to it. When punishments come into play, punishments now vary according to the five possible justice ideologies. I’m not quite clear on how the “Ordeal” justice policy is going to work out, so I haven’t really developed that element yet, but the other four now work nicely. The Frontier policy imposes fines on those caught breaking the law; the Vigilantism policy will see those breaking the law hunted by the general public, who for lesser crimes will demand items in recompense, or injury, or will hunt to the death in the case of severe crimes, the Penitentiary policy imposes a range of prison sentences, and the Gladiatorial policy involves battles to first blood for lesser crimes, and fatal battles for greater crimes. There is also something of the god system from DCSS here; I wanted to develop these in such a way that they would seriously affect the player’s actions in the future, and which nations they choose to take actions in, when they keep in mind what the potential ramifications are. Justice policies should now have a substantial effect on player decisions once implemented –  and, of course, NPCs can now talk about them, listing all the policies that are worth talking about in the area in question.



Next Six Months

In other news, some big changes are happening, which are going to lead to some very exciting things. Firstly, I’m leaving my position as a postdoc at the Digital Creativity Labs at the University of York – although keeping my current secondment as a Researcher in Residence at the UK Digital Catapult – and taking up a new six-month postdoctoral position at Goldsmiths, University of London, to study paper puzzles (crosswords, Sudoku, etc), and those who play them, design them, implement them, with a view to developing a new set of paper puzzles that might one day be able to challenge Sudoku in national and international print newspapers. Such an outcome is obviously an immensely ambitious goal, but that’s one of the many things that attracts me so much to this project; the potential to make such a big impact into the game-playing lives of so many people is incredibly exciting. I’ll keep you all updated on this goes as time goes by; this might lead into further research in this area, though I also have a range of other irons in the fire for the longer-term future.

Secondly, during this summer, I’ll be taking up a range of visiting fellowship positions at numerous institutions around the world. Firstly, the University of Alberta in Edmonton, where I’ll be giving talks and running and contributing to seminars on professional gaming and the intersections between video games and gambling practices; secondly, the Chinese University of Hong Kong, where my focus will be very much the same; and then the University of Nevada at Las Vegas, where I’ll be researching the histories of professional gamblers, specifically with a focus on how professional gamblers are represented and talked about in news media, films, literature, and so forth. Somewhere in the middle there I’ll also be giving a few talks at Nanyang Technological University in Singapore on my research, and potentially travelling to two other countries I’ve never visited before as well to offer guest lectures and further develop my Esports and live-streaming research, although those are still in discussion with the relevant parties. If you live in any of those areas, let me know – maybe we can meet up! The few times I’ve met fans in person has always been awesome, and I’d certainly be keen to do so again.

What does all this mean in practical terms? Well, firstly, my brain is going to be a lot clearer to focus on URR 0.8 and finishing my first book in the next four months. Travel has always been something that galvanises and focuses me tremendously well, and these, combined with a new position more closely aligned to my research interests, will do a lot for me. People who read this blog regularly will know the last few months have been tough for a range of reasons, and these new positions are going to be a big help with some of those issues. Onwards, to bigger and better things!

Next Week

Having really pushed on URR this past week, I need to focus on my academic work this coming week, so next week will be a games criticism entry; then by the week after I’ll be aiming to actually finish off the Basic Conversation system by fully implementing the answers to list questions, and making sure that the range of “irrelevant replies” are all implemented and functioning correctly. See you in a week! When we will be talking the notorious “P.T.”, or “Playable Teaser”, and its clever implementation of environmental puzzles…

Zireael

  • Protector of the @
  • *****
  • Posts: 590
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #243 on: February 01, 2017, 06:12:21 PM »
We'll be getting a Playable Teaser? Great!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #244 on: February 04, 2017, 12:50:41 PM »
We'll be getting a Playable Teaser? Great!

Haha! I might do a standard trailer at some point...

In the mean time, crunching on a piece of academic work this weekend, but I recently got a chance to play the infamous "P.T.", and I was impressed by how many puzzles and how much gameplay it packed into such a small environment. Thi week, here are some thoughts: http://www.ultimaratioregum.co.uk/game/2017/02/04/p-t-cryptic-puzzles-and-small-spaces/

Aleksanderus

  • Bishop
  • ***
  • Posts: 176
  • Champion of the unknown
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #245 on: February 14, 2017, 06:04:36 PM »
I see that you're doing some progress with generated personalities. Nice!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #246 on: February 21, 2017, 01:40:04 PM »
I see that you're doing some progress with generated personalities. Nice!

Thanks! It's complex and slow, but it is coming together...

---

This week (well, fortnight) we have some laws, some new list questions, some political parties, overall a reasonably large entry to make up for silence last week, and a paper, so let’s get to it:

Semiotics of Roguelikes

Firstly and briefly, the paper I wrote a couple of years ago now on the semiotics of various ASCII roguelike games has moved from being published online to being published with in actual edition/volume of Games and Culture. To mark this momentous event, I’ve uploaded a pre-submission version of the paper onto my academia.edu account, so if you’re interested in reading the paper – the abstract is below here – then click here and give it a read, and do let me know what you think.

https://www.academia.edu/31504292/The_Use_of_ASCII_Graphics_in_Roguelikes_Aesthetic_Nostalgia_and_Semiotic_Difference

This article explores the semiotics of the “roguelike” genre. Most roguelikes reject contemporary advances in graphical technology and instead present their worlds, items, and creatures as American Standard Code for Information Interchange (ASCII) characters. This article first considers why this unusual graphical style has endured over time and argues that it is an aesthetic construction of nostalgia that positions roguelikes within a clear history of gameplay philosophies that challenge the prevailing contemporary assumptions of role-playing games. It second notes that the semantic code for understanding the ASCII characters in each and every roguelike is different and explores the construction of these codes, how players decode them, and the potential difficulties in such decodings. The article then combines these to explore how such visuals represent potential new ground in the study of game semiotics.

Violence Laws

The game now generates a full set of laws for violence in each nation. These are not done in quite the same way as the other two sets of laws. Whereas “religion” and “trade” have a set number of values and each value always create a law in every nation, not all nations will even have some of the violence laws. It depends on the ideologies of the nation in question, and what they consider to be a meaningful violent event, and how severe they think it is. The game selects a set of laws, ranks them, and then distributes punishments according to the ranking of the crime, not the crime itself. Here is the sequence by which the game selects laws for violent acts, where the ones that a nation cares about the most come first, and the less important ones come later. As a result, you’ll see some very different values at play here, and what counts as a severe punishment in one nation will be far less severe in another, because it will be much further down the crime list, as a result of the nation being more concerned by other things:



If I’ve calculated this correctly, this means the shortest set of violence laws is five, and the longest possible set is thirteen, with most nations naturally falling somewhere in the middle. In each case the top crimes merit a “Punishment 5”, which is the highest level of punishment – such as three arena battles to the death, or a lengthy imprisonment, or a severely damaging physical ordeal – and the bottom will merit a “Punishment 1”, and the others in the middle will be distributed appropriately. I’m confident this will again generate an interesting and unique set of consequences for your actions in each nation, and when coupled with the wide variation in punishments, and the kinds of punishments that your character might or might not be able to withstand depending on your build, items, etc… I think some very interested decisions will emerge from this process.

More List Questions

Parents, Siblings, Grandparents, Children

NPCs are now able to talk about their parents, siblings, grandparents and children, in a pretty wide range of ways. For instance, if you ask about parents, they might simply answer that their parents are nobody important (if they feel you’re disinterested, or of a much higher social status), or might name only one, or both; alternatively, if their parents are consequential people recorded by the game, or they are important, then they’ll probably have some more info they’ll (proudly) be willing to give out. For the longer lists, the game also takes account of the sex of the people being mentioned, so they might say “My two brothers are X and Y and my sister is Z”, or “My maternal grandparents are X and Y, my paternal grandparents are A and B”, which will also vary based on any particular bias towards either sex present in that nation; for extremely long lists, lastly, such as children or siblings, they can now reel off a full list that is always grammatically correct. These lists also include titles, too, so you might get “My mother was Queen X the 1st, Keeper of the Brass Casket, and my father was Prince Y, Consort to Her Majesty” – or whatever.

Trade, Violence, Religion Laws

We covered these briefly in a previous entry, but NPCs are now able to tell the player about everything in these categories. Some of these require different lines of code, as in the case of trade and religion laws there is a finite set of “things” that each nation will have laws on, whereas for violence, some potential violent acts simply won’t be recognised or won’t be relevant to particular nations, and therefore won’t be there. Either way, people now give you a nicely detailed list of these laws; and as with everything, how much people tell you will be modified by mood, and their knowledge of their own nation…

Nearby Things

I’ve started to implement the code for NPCs replying to questions of the sort “are there any X nearby”, where X might be cities, towns, nomads, tribal nations, mountains, coastline… you get the idea. There’s a pretty wide number, and some of them have to request information from different parts of the game’s databases, but this code is now being put into place. There are also now appropriate sentence structures here for people to word things appropriately; for instance, if there are individual things, such as towns, you’ll just get a list. By contrast, mountains do not take up individual map tiles but stretch across mountain ranges, so someone might say “There are mountains far and very far to the northwest, far to the north, and somewhat far to the northeast”, which should give the player a decent impression of what the mountain range looks like. (The same then applies to deserts and coasts and so on).

Political Parties

Returned to political parties and developed names for the parties, which will soon be matched up delegates, and we should be able to get some kind of political system actually working. The game first selects a number of parties for each nation, which is semi-random and partly influenced by several ideological factors (outside of their commitment to a democratic form of government), and then (as we discussed before) ranks the various overall trends in the nation, such as individualism or collectivism, nationalism or globalism, and so forth. It then creates parties for the dominant trends, and sometimes with a secondary ideology from lower down in that chart, and now it finally creates names. As such, we can now find NPCs who might be willing to tell you about parties such as:

The Liberal Sovereignty Party
The Party of Enlightenment
The Conservative National Party
The Devout Singular League
The One Reformist Party
The Association of Independent Selfhood

And so on and so forth. As with most things in URR, you should be able to extrapolate some reasonable guesses about the commitments of these parties from their names. In a later version I’ll connect these to delegates, and get the political system in democratic nations working properly.

Next Week

As you’ll have noticed, we’ve slipped back to a fortnightly update this time – although I’m generally back to a post every weekend, this last week has again just been absolutely jam-packed, and I had to push things back. However, hopefully, updates will resume the weekend model from next weekend moving forwards, and I promise lots of screenshots next week. I must apologise for this, but leaping back into the weekly blog posting has been quite a bit new pressure on my time, and although I thought I could go from sparse blog posts to every week: it hasn’t been quite that easy. Things are ramping back up, but maybe just a little more unevenly than I’d hoped. I am also working on finishing my first book at the moment, which is of course taking up a lot of my time, as well as planning how best to get around the world and take up three visiting positions in three countries in the coming months, so there’s a lot of admin in my brain at the moment. I’m desperately hoping to get 0.8 before April, as otherwise that’ll be a ridiculous two years between release… and that’s just too damned long, however much detail I’m putting in to this major version. Nevertheless, normality should resume again next week, with hopefully an even more significant URRpdate. See you all then!

Aleksanderus

  • Bishop
  • ***
  • Posts: 176
  • Champion of the unknown
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #247 on: February 21, 2017, 02:10:17 PM »
I will finally be able to make a fascist party in a roguelike!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #248 on: February 27, 2017, 01:05:01 PM »
I will finally be able to make a fascist party in a roguelike!

Well, maybe not MAKE, but certainly FIND! There is a pretty wide selection of possible parties in the game, and I'm sure in the future I'll add more detail in there; for now I'm only really focusing on putting in enough details so that NPCs can talk intelligently about them.

---

This week I’m doing something slightly unusual. A huge amount of coding has been done this week, but I’m not yet able to produce screenshots from this progress; some of it is slightly buggy, and I need to test a few new generation systems to ensure that the NPCs I want to talk to, in order to take the screenshots, correctly have the information I actually want them to have. Succinctly, though, we now have a huge set of new list questions generating, various elements such as punctuation and slight meandering to make conversations seem more human, political parties even more fully implemented, a geographical search system put in place, greetings vary massively based on the relationship between you and the NPC, and even a procedural alcohol-name generation system so that innkeepers have something to talk about, and the beginnings of systems for modifying what people will say to you based on their mood (personal), the “local” mood (what people in that area think of you), and their knowledge of the particular matter (geographical, historical, etc).

All of these are finished, on the cusp of completion, or well into development; but because I’ve just been coding like mad, I haven’t really stopped to polish everything and get things to a position where I can take screenshots. As such, I’ve decided just to put this up this week, to signify: lots of coding is happening, and there will be lots to show off soon, but I’d rather show it all off once I can implement screenshots. I know some of the recent updates have been screenshot-lite, so I really want to have a solid volume of screenshots in place once I can show things off.

As such: hopefully, we’ll have a nice set of screenshots next week!

UltimaRatioRegum

  • High Priest
  • ****
  • Posts: 288
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #249 on: March 12, 2017, 12:55:48 PM »
A big update this week, summarising everything from the last three weeks of coding work. Succinctly, the game now has NPCs who can reply to even more “list questions” than they were previously able to, adds in what I am calling “meanderings” into speech from time to time in order to make everything feel and read more realistically, boasts a rather more developed international relations system which NPCs can draw on when making comments to the player, and procedurally generated alcohol is now present in the game. This last one is, obviously, the most crucial of the bunch. Oh, yes, and I’ve also expanded and finished the system for generating the names of relics, although their procedurally-generated images are of course not yet present. So without further ado, read on:

More List Questions

I have now finished off almost all the “list questions” – which is to say, questions where the answer often takes the form of a list, such as “What towns are nearby?”, or “What animals are sacred to your people?”, and so forth. Here are some examples of the recent additions:

Animals and Plants

You can now ask people about the animals and plants that are local to their homeland, and whether any animals or plants are considered especially important in that homeland, as part of your conversation. They’ll now give you a list of the local flora or fauna as appropriate, which is always grammatically correct, and also lists these things in a fairly logical order. The number is never too high, either, so you never find yourself reading through a gigantic list of things. Although not currently implemented, in the very near future these animals and plants will be spawning, and should be found referenced throughout a culture, and are designed to be another clue the player can potentially use to find out about the world.





International Relations and Geography

The game can now generate appropriate and logical sets of relationships between nations, based on their ideologies, religions, proximity, and so forth. You can now ask people about their relationships with other nations, what they think about other cultures in general, what kinds of cultures are nearby, what tribes and nomads can be found nearby, and so on. The same system is then used for overall geography, so you can now ask a range of questions about things that are near to where the player and an NPC are having their conversation. For example, you can ask whether there are mountains (or mountain passes) in the proximity, and so forth. These questions then redirect to a function which chooses an appropriate area for the NPC to have knowledge of (more educated NPCs will have a wider area, and NPCs more well-disposed towards you will think about giving you a longer response). This system needs expanding to all kinds of conversations, which I will talk about more in the future, but for the time being, people can tell you quite a bit about the surrounding areas:





Laws

Also, here are the law responses from last time:



You’ll notice the first of those is rather long. This is an example with a nation with a lot of laws on violence, and talking to someone who is well-disposed to you, and is therefore willing to actually talk to you. I think I need to find some way to chop this down; for such a long potential answer, maybe even people who like you the most will tell you the top laws or bottom laws, or maybe they’ll say “Do you want to know punishments for the worst crimes or the most common crimes?”, or… something. I’m not quite sure yet. Either way, it’s pretty clear that a reply this long isn’t really workable, and is very hard to read, and will probably lose the reader’s interest part-way through.

Meanderings

Secondly, I added in a set of what I’ve now taken to calling “meanderings”. As part of making conversations as realistic as possible, I felt it was important to add in code for people thinking for a moment before they reply, or being semi-reluctant to quickly reply, and just generally having the umms, ahhs, and oks, that characteristic real speech. At the same time, of course, having too much of this would quickly get annoying. To balance this out, there are two elements. Firstly, people will only start to use these phrases if they begin to get annoyed about the conversation, and they’re starting to lose interest in you. When their full interest is on you they won’t falter in the conversation, but this might change as time goes by. Secondly, they will not use it too often; an NPC that has just used one will definitely not use it on the next sentence, and beyond that, it is randomised, but becomes more and more likely the less and less interested in the conversation the NPC becomes. If you look at the conversations above, you’ll see a few of those present here and there.

International Relations

As noted above, the game now generates appropriate relationships between each nation in the game, whether feudal, tribal, or nomadic. In essence, the game looks over the ideologies of each nation, and looks at where they match, and where they clash. In some cases a pair of ideologies could be seen as a match or a clash; for instance, two monarchies might get on well because they have the same system of leadership, maybe the families are related, and so forth; or they might hate each other and have a rivalry between their ruling families. In these cases the game chooses at random whether these are “good” commonalities or “rivalry” commonalities. Equally, some shared ideologies will always cause conflict – two theocracies or two especially religiously zealous nations which do not share religions are never going to get on, and likewise two imperialist nations – whilst others will always generate friendship, such as a shared commitment to religious tolerance, or a shared appreciation of gladiatorial combat. Then, in turn, various religious beliefs, geographical distributions, and so forth, further affect matters. These are then categorised into nations that are close allies, friendly, neutral, disliked, or firm enemies; these five categorisations then affect speech, whilst the more specific like/dislike values will play into other elements later on. This is basically akin to the kinds of systems one sees in the recent Civilization games, but somewhat more complex and with many more factors at play determining what cultures think of one another.

Along the civ.relations dictionary, there is also a civ.trade_relations dictionary. This is similar, obviously, but actually somewhat distinct. Whereas relations simply tells you what one nation thinks of the other, in the case of trade_relations, we’re talking specifically about how much trade passes between two nations. Of course, trade is not going to be passing between nations that loathe each other, but two nations that share a massive border and are somewhat friendly are likely to trade more than two nations that are the best of friends, but half the world apart (bearing in mind, of course, that we are talking about the renaissance rather than the modern day here). Trade_relations therefore tells you the volume of trade going on between each nation and each other nation, and in some stores the player will therefore be able to sometimes find the items of other nations for sale. The reverse will actually happen in black markets – if X and Y hate each other, the goods of X might secretly appear in the black markets of Y, and vice versa. In this way I’m aiming to make the potentially someone “abstract” idea of international and trade relations much more concrete; it shapes who appears in each nation, what items appear where and under what conditions, and will also – of course – affect where the player can safely go.

Alcohol

For a fun little diversion for an hour this week, I also implemented the system for procedural alcohol – I’m sure we’ll all agree, a truly vital component of any procedural world. Each nation now selects an archetype of drinks that they tend to enjoy drinking, which can be beer, spirits, or wine; these are designed so that a full world will not have a completely equal distribution, but some generations should have a high volume of beer, spirits, or wine drinkers; much as in the real world, we don’t see these equally distributed. It then generates an appropriate set of alcoholic drinks for each nation, with words drawing on the terrain and climate types enjoyed by that nation, a wide set of default words for each alcohol type, and names – a class of alcohol might be named after the particular monastery where it is brewed, a particular town where it is particularly favoured, and so forth.





The player can also now ask innkeeps about the kind of alcohol they sell, and they’ll give you an appropriate list! Taverns stock a high percentage of all the alcohols drunk by one nation, but will never stock the full collection; equally, I’ll shortly implement a system so that taverns particularly near the border with another country will (assuming that is a nation with a particular set of alcohols, so not a tribal nation) sometimes carry one of the alcohols from “across the border”. Later on I will also add actual “breweries” in the locations where the various alcohols in a nation are brewed; these will have minimal gameplay value, so I certainly won’t spend more than a few hours on that, but for the sake of completeness I think they need to go in to make the world look just that little bit more complete, more varied, and so forth.



Relics

In the last fortnight I also finished the generation system for relics, and here are some example debug logs, where “RT” means “Relic Type”. Some of these do have rather lengthy names, because the names of the people associated with the relic can be quite long. It’s a little unwieldy, but honestly, I think it’s fine. I’m extremely happy with how these work and how these look, and I don’t think I’ll make any more changes here before the 0.8 release, beyond making sure everyone in the game can speak about relics of their religion correctly.



Blog Update Speed

So, once again, this has been a fortnightly update. As such, I’m just going to stop commenting on this for now or trying to predict when the next update will be, and I’ll just say to everyone: I’ll update as soon, and as rapidly, as I can. I am developing URR actively again, as you can see from the above, but I am also changing jobs, taking up two visiting positions in two other continents, and finishing my first academic monograph… so we’ll see how it goes. See you all next wee-… er… next time!