Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411504 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 05:20:03 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDwarf Fortress meets The Outer Wilds? "Ultima Ratio Regum", v0.10.1 out Feb 2023
Pages: 1 ... 38 39 [40] 41 42 ... 53
Print
Author Topic: Dwarf Fortress meets The Outer Wilds? "Ultima Ratio Regum", v0.10.1 out Feb 2023  (Read 177671 times)
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #780 on: June 22, 2016, 01:09:44 PM »

Hahaha Smiley
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #781 on: June 27, 2016, 05:01:56 AM »

An even bigger update this week! I made a lot of headway on my academic commitments (one of which can be seen at the bottom of this update) and so I managed to carve out quite a few evenings to really focus on game development for a bit. This week I added the current list of every single standard conversation option (which is then generated for each culture when spoken), implemented the scroll bars for going through some of the longer lists, allowed the player to change their dialect and see what they can see in each dialect (I haven’t yet decided how much dialect knowledge will be present in this release – we’ll see), and then implemented a system for keeping track of all the meta-questions (such as “Please tell me about [novel]”) and what dialects the player can say those in! Lots of big progress therefore, and all the underlying aspects of the conversation system are now there – except selecting options and having them appear in the conversation itself – and all the elements of the dialect generation system are now there – except for exhaustive generation of every possible statement. My task for this week, therefore, is to make as much progress as possible in these two areas. I have no idea how fast/slow these will be, but I’m confident about having something solid to show you all in a week from now. In the mean time, though, here’s some more detail about the latest developments:

Conversation Options

I’ve created a draft list of every single default conversation option in the game. I haven’t actually counted them up but there are several hundred default options, and these will be available in every conversation, as well as another hundred or so “default” options limited to a specific class of NPC (so you can ask a guard about guard duty, an archivist about their archives, etc etc). Here’s a screenshot with an entirely incomplete section of potential default questions, and a gif of looking through the default question options for a whole bunch of conversation options:





I’m sure I’ll keep adding new questions here, but I’ve built the rest of the technical architecture (i.e. the parts more complex than the lists shown here) in such a way that just adding something to the lists here will implement a new question in all the relevant parts of the game’s code where it should be, and allow me to put in a system for generating that question. You’ll also note the different colours! After some excellent thoughts in a comment last week, there is now a range of knowledge the player can have about a given sentence. A green diamond means you can say it perfectly in that dialect; a red diamond means that there is absolutely no chance you will say it correctly; but the interesting ones are the numbers, which range from 1 -> 9 and mean you have a tiny -> very high chance of saying it correctly. If you select one of those options, a die will be rolled to decide if your character says it correctly. If they do, that sentence is then elevated up to a green diamond; if no, it is reduced by 1 or 2 (we’ll see how this goes in gameplay) making it harder to correctly guess next time you try (since you thought you knew it, but didn’t, so actually have less info than you thought). In terms of how these numbers will go up – learning a single sentence in a dialect will means that X other unknown sentences in that category will be moved upwards by Y values; X and Y will be both dependent on the size of the category. The “greeting” category, for instance, only has three options – “Polite Greeting”, “Neutral Greeting” and “Blunt Greeting”. If those are all at values of 0, and then you hear someone give you a polite greeting so that becomes a 1, the others will also immediately go up to around 0.3, for example. By contrast, the ideology category contains almost two dozen standard entries, so learning from from 0 -> 1 might add a 0.1 onto three or four of the others. This means two things – firstly, some interesting and I think valuable chance-based gameplay where you decide whether or not to risk a sentence you might be able to say correctly. Secondly, the player character’s knowledge of a particular dialect will be a more gradual development process, rather than an absolute (although some things will still immediately move you from “0” to “1” knowledge). I think this is a really good development, and I’m so glad it was suggested last week – it also makes the UI look far more interesting!

Scrolling

The scroll bars in the conversation window now work correctly. I don’t know if any of you have ever tried to program in scroll bars, but these things can be surprisingly nightmarish to code, I’ve found, but they all work rather nicely. Here’s me scrolling through the list of dialects (which is entirely complete for now, but will of course start off almost empty in future versions) and the scroll bar adjusting appropriately. I know it’s only a small thing, but these sorts of UI elements are definitely important when you’re going to have potentially large volumes of stuff to look through. Which leads onto the next section…



Search

On the topic of large volumes of stuff, I’ve also implemented the system for being able to search through a particular block of possible questions and narrow them down based on some typed letters. As you type letters into a particular window, they show up at the top; backspacing then remove them; and the game quickly updates the list of possible questions. Here’s an example of           – I typed quite slowly in this example to show the list shortening, as it shortens quite fast as soon as you’ve got a few letters in there, and then backspaced back and typed in quickly just to demonstrate that the system works effectively. In the future, therefore, even in conversation categories where there might be hundreds of options – towns, artworks, novels, etc – you’ll be immediately able to just type in “Red” to find the “Town of Red Eagle” in a second without having to scroll through potentially a hundred options. I was actually very surprised by how easy this turned out to be – I was expecting implementing search functions with large volumes of entries to take far longer. Here’s a gif of me typing in “when” into the “Past Life” category – this short category is not one you’d necessarily want to search, but it illustrates how the search function works (note the “when” appearing at the top of the window as you type it, and then the questions are narrowed down).



Changing Dialect

You can now change dialect. Selecting a new dialect switches the player’s current_dialect value, and all the conversation options then update based on whether or not you know the new dialect. Fairly simply, but obviously important. For now, all dialect knowledge is totally randomized for the sake of testing – not sure how I’ll leave this for the release. Depends on timing!

Meta-Questions

I’ve also implemented a draft list of meta-questions. There are the “What do you think of X” questions where the full list of such questions slowly expands as the player discovers more and more of the world. As there aren’t too many of these meta-questions, these are just being stored in a separate list. These won’t be present in the 0.8 release, as these need integrating with the system that’s going to replace the encyclopedia in the near future, but the basic implementation is there. This will probably be one of the first things I start doing for 0.9, although since 0.9 will include generating weapons and armour for soldiers and guards, and it has been a long while since I did any artwork, it might be hard to resist starting there…



What next on conversations?

This coming week I’ll start developing the sentence generation. All the “abstract” dialect generation is in place, so the game can select word elements, appropriate cultural/historical/geographical reference lists, sentence complexity for a dialect, various ways of speaking about various things, and so forth, and so now I need to translate this into actually spawning different sentences! I have a good idea of how to structure this, so it’s time to get started on that.
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #782 on: July 05, 2016, 11:19:48 AM »

This week has seen the implementation of name generation into the main game file, to rather fantastic results, alongside a substantial amount of bug-fixing. For name generation, the names now consider all the relevant religious/cultural/geographical background of the nation they hail from, and generate appropriately. The game also tracks the various different structures of the names – some name types have just one name, some have two, some have several with a mini-title in the middle, and so forth – and can always produce a “casual” version (i.e. “Mark” to “Mark Johnson” or whatever) as well as accurately reproducing a name when needed, without looking for name-segments where they don’t exist, or failing to look for a name segment relevant to a certain name archetype.

I have to say, I am *so* happy with how these look! They’re all very different, some speak to particular locations or cultural ideas, whilst others don’t, but they are all distinguishable. I’m still doing a little bit more work on these, but only a couple of hours’ work remains, and then in 0.8 everyone who you speak to will have their name highlighted. So, here is a rather splendid set of examples from a whole bunch of cultures in some playtesting world generations! Hope you like black-and-white images…































In the process I also had to develop the very start of the system for generating sets of animals and plants within particular climate zones. Plants were already present but were distributed across all biomes of a certain type (so northern tundra and southern tundra areas would have the same plants, somehow), and also tended to be colour-matched to their biome, which made a degree of sense but definitely reduced the kind of background/aesthetic interest they could potentially generate. Plants were therefore redone, and their naming conventions were also altered somewhat to reflect these changes (all of which come before visual generation at some later date when I have a spare couple of days). Animal generation has now appeared for the first time, and just like plants, they are tethered to a certain area of a certain biome – so the game finds a tile of desert, looks to see how far contiguous desert extends, and then all that desert has the same group of species. The species elsewhere, by contrast, will be completely different, even if they are also desert. Like plants, I’ll generate the images for these at some far-later date (since this isn’t exactly gameplay-essential stuff, just general background worldbuilding), but the names will be used in this release, as they serve to inform the name generation for individuals in certain nations, and they’ll also show up in artworks and literature and metaphors and the like later on. I also thought quite a bit about which animals I can realistically vary in appearance and name, so a few common animals aren’t in here because I couldn’t think of how to vary them well enough, whilst a couple of more obscure animals are present precisely because they vary a lot. Here are some animal/plant printouts, with their biome attached:



And then two massive printouts of all the plants/animals generated across a world, so you can get a full idea of the generation systems for these:





As for the bugs, I’ve reached the point where only two things remain for 0.8: sentence generation, and bugfixes. Sentence generation is such an intellectually complex task – although once I have a suitably complicated but usable and modifiable programming framework in place, I’m confident it will actually move quite quickly – that I need to spend a lot of time simply planning it out before I actually start coding it in. In this vein I’ve been scribbling ideas all over paper for the last week, and although it is taking a while, I am zeroing in on a workable method. Much like most things in URR, it will wind up being a balance between some structures and templates, entirely procedural elements, and then a range of variation within these aspcets based on the speaker producing the sentence – a soon-to-be-gigantic function called make_sentence has now been constructed, and so the only remaining task is to actually write the thing (ha!). As a result of this week’s focus on planning, however, on the actual coding front I’ve been working instead on bug fixing, in order to ensure that 0.8 is actually stable once I release it (hopefully at the end of July/start of August). Some of these were found from my own playtesting adventures, but a large number were submitted by the playtesting team I recruited a few months ago (thanks again, all of you!) and with these all fixed, I do actually feel fairly confident that every part of 0.8 (aside from speech/dialects/etc) is finished, bug-free, and ready to release. I can’t rule out the possibility that there are NPC-related problems I simply haven’t anticipated yet, but I haven’t run into any in quite some time, and everyone basically seems to behave correctly (though I’m going to have to revisit  NPCs in 0.9, of course, to implement the NPC classes that aren’t being included in the upcoming 0.Cool. Here’s a run-down:

Fortress guards no longer sometimes fail to move when they should exchange schedules with another guard.
Fortress merchants always appear correctly even if the player enters the grid part-way through their move from their home to their stall.
Fortress merchants are always assigned to the correct open-air stalls.
There cannot be two open-air stalls of the same sort within a single fortress, nor too many merchants for them to all be assigned a stall.
Slaves and servants in upper-class districts absolutely, definitely, without a doubt, always sleep in the correct places on the correct floors no matter how and when the player spawns the mansion and what other movements the player takes.
Drawbridge chains do, actually, appear, when the player looks at them.
Looking at certain doors in torture chambers or dungeons no longer causes the game to crash.
Looking at a small number of bars in torture chambers or dungeons no longer results in a black screen instead of the appropriate generated image.
NPCs are always the correct inverted colour when they pass under trees or a gate.
Handled some weirdness with players stepping through gates and sometimes winding up on the tile next to the gate, and sometimes winding up one gate further away.
Fixed an issue where you could read sections of the encyclopedia that should have been disabled.
Fixed an entirely aesthetic issue with some potential colour patterns on couches.
Resolved strange issue with a small subset of square-based castle generation outcomes that would position guard towers in the wrong orientation.

See you all next week for what might be quite a technical post about sentence generation!
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #783 on: July 05, 2016, 11:53:03 AM »

so it would be possible to make translation of yur game in other language, I mean not in game language but the main player language!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #784 on: July 07, 2016, 04:12:11 AM »

Oh goodness, I don't think so - changing all the grammar for sentence generation etc would just be too horrendous :\
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #785 on: July 18, 2016, 03:04:48 PM »

Since last week we had a post about my third bullet hell world record high score instead of an URRpdate, this week’s should be the longest in quite some time! Lots has happened in terms of naming NPCs, fixing remaining bugs, changing the player’s dialect in a conversation, and also sentence generation is now actually happening! Most exciting. Read on…

Names in Conversations

As well as being generated, names now appear correctly in conversations. In future versions you will naturally not automatically know the names of strangers you bump into – unlike certain RPGs we could mention where the player magically divines the names of every single you talk to – and learning someone’s name will therefore sometimes be a gameplay mechanic. You might, for instance, know that a particular merchant called [Name] knows something, but the civilization that merchant comes from are not particular friendly to you, and you don’t know what they sell, so you’ll have to try to figure out which of seven merchants in a market district the particular merchant you’re after is, and potentially use other clues (sex, clothing, behaviour, whatever). Equally, of course, the game will remember perfectly the names of everyone you meet, and I’m actually thinking of a system that might alert you when you encounter someone whose name you already know – perhaps a message in the text log saying “You see [Name] [doing task X]” for someone you already know, because there is no visual way to mark out someone you recognise from someone you don’t (i.e. two merchants will both be ‘m’ whether you know them or not). Here are a couple of screenshots showing some conversation windows with people from various name-types:







Changing Dialect

You can now actually change your dialect by selecting a different dialect. This is a small thing, but it required me to start building up the code for handling what happens when you press [Enter] on an option in an in-conversation window, and it therefore has to detect the sentence or the item or the dialect you select, and then notice what kind of thing it is the player has selected, and then take the appropriate action. This works correctly now, though, so you can switch to another dialect and all the % chances of uttering each possible sentence immediately update appropriately. You can see in this gif how the chances of successful/unsuccessful words changes as we change dialect from one to the other.



Sentence Generation (Part I)

After thinking long and hard about sentence generation, and managing to free up a spare day to do nothing else except working on this, I’ve been able to make a substantial start. So, basically, the game splits sentences down into three categories, I’m naming “clauses“, “archetypes“, and “kennings” (which applies to a range of things that are not technically kennings, but the term gives us a good impression of what we’re talking about here).

Clauses: these are segments of a sentence, which vary massively from culture, religion, geographical background, and all the other factors that basically everything else in URR tends to be varied along.  A sentence will contain several clauses in most cases, and clauses are basically sections of a sentence that the game will generate independently (via archetypes) and then stitch back together (see below for more information on this).

Archetypes: these are hand-written default versions for each possible question. For each of the questions that the player can possibly ask (or the NPC can ask back), I’ve gone through and written a dozen or so variations of that serve as the foundations of possible replies (although once a reply is finished it will be almost indistinguishable from the archetype that created it). These are then distributed to each culture semi-randomly, with some relationships between some archetypes which others are “free-floating”, and each culture then starts the game with a few basic and foundational ways to talk about the things people might need to talk about in-game.

Kennings: in the case of URR, this refers to a particular way of referring to a particular thing. So this might mean referring to historical events, or a title to put in front of the name of a deity, or a particular way to talk about oceans or mountains, and so forth. These are basically segments of clauses that have to be expressed a particular way, so a clause might say [Title of god] and then the game will look up the appropriate “kenning” for that element and place it into the clause; alternatively, if it says [Desert] then maybe that nation says “Deserts”, or “Great Sands”, or “Great Dunes”, or “the Red Expanse”, or whatever, and the game will quickly check what the appropriate (generated) term is for something in a sentence.

So, in trying to create a sentence, the game does the following process:

Stage 1: select clauses. This first stage means that the game looks at how many clauses should be in a sentence, and what they should be. A nation with a dialect with low “sentence complexity” will have very few clauses in the average sentence, for example, whilst a nation with high sentence complexity will have many clauses. I’ve developed a fairly complex but easily-added-to system for adding clauses into sentences based on the nature of the sentence. This means that extra historical, personal, geographical, religious, etc, detail can be added to a sentence depending on how many clauses it has, and those clauses will be handled intelligently and sensibly.

Stage 2: select an archetype for each clause. The game then checks how that particular culture would express a particular clause and retrieves that archetype (which will then, in stage 3, be massively varied) and readies it. Archetypes are generated/selected in such a way that they should be broadly consistent across a culture, so you shouldn’t get a culture that talks about mountains in one way and talks about oceans in another, but rather talks about all those things in a broadly comparable way. Archetypes also affect sentence structure and in some cases word order, and these elements are also taken into account.

Stage 3: implement kennings/references. This third stage is perhaps the most important part of sentence generation, since at this point the game looks up how to express everything in every clause in that sentence. As we see above, archetypes say things like [Religion-title] and these are all triggers, telling the game to look up the appropriate phrase for the appropriate thing in the appropriate culture. As such, the sentences themselves within archetypes tend to have a large volume of square brackets in them, and aren’t really human-readable – although you can get a good idea of their meaning – until there’s a nice lot of kennings and references in place.

Stage 4: stitch it all together. The game then goes through all the sentence components – now transformed from archetypes with square brackets to archetypes with appropriate references and the like – and stitches them together with appropriate punctuation. This is partially done through the system that places clauses together, and also a bunch of signifiers that handle things like vowels/consonants, plurals, etc.

It was very tricky to find a system that struck the right balance between a) generating a huge volume of potential sentences, b) making the number of hand-made sections relatively low so that I actually get the release out before the 2020s, and c) ensuring a huge amount of modular variation within the sentence structures. With this system – selecting clauses, selecting archetypes, varying almost all of the components of those archetypes, and then stitching the sentence together into a meaningful whole – I’m confident that I’ve found a balance between all of these requirements. I think I’ve struck a balance between large volumes of hand-made sections, large volumes of procedurally-generated sections, and sections of speech that sit somewhere in the middle where handmade elements can be altered or twisted in some way depending on the particular nature of the speaker. I’m really excited to see what this will produce! These are just initial trials, but in the coming week I’ll be trying to build up all the possible conversation options and archetypes and clauses and whatnot, and then we’ll see how that looks. Here are two variations OF THE SAME CONVERSATION, and just look at all that variation!





(Note: you’ll also see a tiny bit of procedurally-generated calendars there! Some use years, some use a bunch of other systems; this might not make it into 0.8, but I just happened to be testing it out whilst I took these screenshots)

(You’ll also note the lack of ‘?’ in the second – just a typo!)

Having looked at the power of this system, even with the incredibly simple conversation above, I am *so* excited about how this is going to work. I now just need to write all the other words to slot into every other part of the system, and this is a huge task, but by next week’s blog entry I hope to have it all done and to be able to show off some more detailed conversations, as well as some of the other conversation options I’ve been developing this week – these extra things aren’t totally ready just yet, but they’ll be essential to making conversations feel very human, and adding extra depth.

Next Week

Conversations, sentences!
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #786 on: July 19, 2016, 08:10:41 AM »

There goes your next Talk Smiley
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #787 on: July 20, 2016, 02:07:21 AM »

Yep!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #788 on: July 23, 2016, 02:26:11 AM »

I've been commissioned to write a four-part series on qualitative procedural generation for Rock, Paper, Shotgun! Societies, practices, cultures, beliefs, and so forth, and how to integrate them into gameplay. I think one part will be going up each fortnight for the next three fortnights, but here's the first one. https://www.rockpapershotgun.com/2016/07/22/future-of-procedural-generation-1/
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #789 on: July 23, 2016, 06:58:56 AM »

Great!
Logged

BomberTREE
Level 9
****



View Profile
« Reply #790 on: July 23, 2016, 10:31:17 AM »

Awesome to hear!  Smiley
Logged
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #791 on: July 24, 2016, 01:53:56 PM »

Thanks guys! And now here's this week's update, which is actually back to weekends now:

----

Sentence Generation

This week I’ve been adding in a truly titanic amount of speech variation into the game. I’m only now beginning to realize the size and scope of this task, given the level of variety and interest and complexity I want to include, but at this point it’s close to around ~1/3rd of the default conversation options done. There’s a vast number of archetypes, a truly gigantic number of clauses and descriptive modifiers (a comment a character might make about the word “world” if they’re from a particularly isolationist nation, for instance, which might be something like “frightening in its size and distances”). I’ve already written several thousand of lines of speech, variations in those, templates, words, clauses, kennings, all kinds of stuff, and written the (actually remarkably simple) code that pieces them all together. I’ve reached the end of all the “default” questions which you can ask anyone (and their answers), and I’m now moving onto the class-specific questions (and their answers), and then after that onto the special answers that change their sentence structure, not just their sentence content, depending on the NPC. By this I mean, you can always answer the question “What is your religion’s most sacred relic?” with an answer of the sort “Our most sacred relic is X”. However, a question like “What is your opinion about the ongoing war?” cannot be answered with a single sentence with words switched out, so needs a more complex set of answers tethered to the opinions of that NPC.

There basically hasn’t been much new coding going on since last time, so below you’ll find two conversations I had with different people, and how different they turned out (so the same kind of thing I showed off last week). You’ll notice that certain words get “expanded” upon, such as that “in which we all serve and are served” bit of the first picture below; these are bits of flavour text heavily dependent of course upon religions, cultures, backgrounds, etc, and these are one of the major things that will give you a hint about the background of the person, when they elect to give you a bit of their perspective on an issue you’re discussing. By the end of this process there will be an *incredible* number of these little expansions; as above, I’ve only done about 1/3rd of the default conversation options so far (not to mention negative replies, replies that can’t have a default form, and other stuff) and already there are several hundred of these. Naturally some political beliefs are easier to find expansions for – consider how much of a conversation someone from a pacifist nation would comment on, compared to how much of a conversation someone from a planned economy nation would have a comment relevant to planned economy to make – but I’m trying to come up with expansions for even the less-obvious ideologies too.

Anyway, here’s two examples of one conversation again, and you can see these are already more complex than last week:





I love how distinctive these are, and how you can even in just a few snippets of conversation start to guess at some of the beliefs and backgrounds of the people and their nations. In that last one you can see that we need a scroll bar for the conversation window, which is coming shortly.

For next time, I’ll be continuing to put in the massive databases that underlie the sentence generation system. I’m also starting to put in the first parts of two next things, both designed to enhance the smoothness and realism of the conversation system, instead of reducing it to what can look like a question-and-answer session. Although I’m super-proud of the above screenshots, they ARE quite question-and-answery, and this needs to be changed, and that’s what these two new elements will help us towards (the “how interested am I in this conversation” meter will be coming later). These two new elements are:

Counter Questions: this is what I’m calling it when the character you’re talking to asks you something back! They’ll reply (or not) to your question, and then ask you a question back; sometimes the same question, sometimes a related question, and sometimes a more general “Why are you asking that”, “Why do you want to know?”, etc. You’ll then get a reply option (see below) that you can use, or not, depending on your preference.
Replies: you as the player can respond to a specific thing that another character said and question them further on a topic that emerges in the process of conversation. For instance, if they mention a person, you can immediately say “Can you tell me more about [person]”, if you want to. Alternatively, as above, you can offer replies to what someone asks you, and will have the option to tell the truth, lie, semi-lie, etc.
These do require a bit of work, and I want to get all the “default” stuff done first, so I won’t mention these for another week or two, but I wanted to note that I’m aware the structure and flow of conversations needs a little work, and I’ll be working on that soon.

See you all next week!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #792 on: July 27, 2016, 10:46:38 AM »

And here's a little piece I wrote for Vice Gaming about PCG in RimWorld!

http://www.vice.com/read/you-can-spin-your-own-sci-fi-tale-in-rimworld
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #793 on: July 27, 2016, 11:18:01 PM »

Nice article! I wonder what your take on Unclaimed World is then
Logged
s0
o
Level 10
*****


eurovision winner 2014


View Profile
« Reply #794 on: July 28, 2016, 05:40:48 AM »

your article made me want to play rimworld. shame i can't afford to buy games at the moment.
Logged
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #795 on: July 29, 2016, 01:14:04 AM »

Nice article! I wonder what your take on Unclaimed World is then

Thanks! Hadn't heard of it, but that looks quite nice! I quite like the graphical style.

your article made me want to play rimworld. shame i can't afford to buy games at the moment.

Alas Sad. I'm sure it'll be on sale soon though!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #796 on: July 30, 2016, 07:51:31 AM »

After last week’s post, I was very pleased with the kind of variation in styles of speaking I was getting, but something just didn’t feel quite right. It took a bit of time and quite a bit of feedback to figure out what it was, and that then triggered a second realisation about something else that needed changing, and in turn, a third. And a fourth and a fifth!

First, length and clauses. Many of these are simply too long, and there are too many additional clauses. I think the extra clauses will become just a little bit annoying after a certain point, especially if you’re talking to lots of people from one civilization close together. As such, I’ve made some sentences shorter, and reduced the likelihood of clauses being added to sentences. This also meant a change to sentence complexity: I’ve decided to actually make quite a substantial change here and change sentence complexity from a value/modifier embodied in a civilization to a value embodied individually in each person you encounter. I realized that since you’ll spend a decent length of time in each nation at once, you’re probably going to be spending a while talking to a range of people from the same background, and so I want to boost variation between people more than I want to boost variation between civilizations. As a result, each person now has a sentence complexity modifier specific to them. This has five variations, which I’m currently just storing as 1-5; that’s an x/15 chance that each sentence they say might have a clause. This means even the most wordy person will add in extra detail clauses in 1/3 sentences, but for most it will be far rarer. I’ve tried this out a little and I’m much happier with the kinds of sentences it produces (along with the other changes). Equally, it means that that kind of extra info will come to the player more gradually, which I think is also beneficial.

Secondly, punctuation. The end of sentences now varies according to the mood of the person speaking them; a hostile NPC will end with “.” or “…” to everything they say, a neutral NPC will end with “.”, whilst an NPC very positively disposed towards you will end sentences with a mix of “.” and “!”. Again, a very simple thing, but it’s already making a big different to the ebb and flow of conversation.

Thirdly, and related to the above – formality. Many of the sentences were just too formal and rigid and didn’t have the kind of flow that you would expect sentences to have. To adjust this, I’ve made some changes to quite a few of the sentences, added in the possibility for things like “Hmm…” to appear at the start of sentences, or things like “Let me think”, or “That’s hard to remember”, or “I don’t know much, but I’ll tell you what I recall”, things like that – I’ve also added in more use of “I’m” instead of “I am”, “I’ve” instead of “I have”, etc, and so on. The combination of these various alterations seems to be working quite nicely, and gives a far more conversational feel to the whole thing.

Fourthly, visuals. I felt that using the skin tone for the sentences on both sides of the conversation is making the actual conversation window look a bit too thick and same-y; instead, the player’s comments will always be the same colour as their @ symbol, i.e. white, whilst those from other characters will change according to skin tone. This breaks up the visuals and seems to make conversations a little easier to parse, which is obviously very important!

Fifthly, stories – see below in the example for precisely what I mean by that.

As such, this is how conversations should look from this point onwards:



There’s still a lot more to be done, of course – like adding “Hmm…” and all the other stuff described above, but I think this is a great step forward.

More next week!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #797 on: August 16, 2016, 05:46:23 AM »

To make up for last week’s rather short entry, here’s a bit one. I’m pleased to report that a very pleasing volume of new stuff has been done this week, and things continue to look very exciting indeed. Read on!

Default Conversation Options

At this point almost all the “default” conversation options are done! This means everything that you can ask every character, and also the class-specific questions (like “What are you guarding?”, “What nation do you represent?”, “How long have you ruled this nation?”, etc). This was a totally huge volume of work I’ve been putting together over the last fortnight and it’s great to see it all nearly done,. and it’ll certainly be all done by this time next week. Here are some examples of conversations with people from specific classes, in this case with a priest, guard, and diplomat:







Default “Expansions”

“Expansions” are what I’m calling bits of a sentence that certain NPCs will add to certain words in a sentence. For example, as we’ve seen rather than just saying “What is the greatest battle your nation has fought?”, someone from a particularly militaristic nation might be “What is the greatest battle, that glorious arena in which all are equal, that your nation has ever fought?”. Similarly, rather than asking “Are there any mountains nearby?”, someone from a particularly exploration-focused nation might ask something like “Any there any mountains, those peaks that inspire us to great deeds, nearby?”. Almost all of the expansions for the default conversation options are now in place, and wow, there are a truly huge number. There are close to a thousand expansions I’ve written for various ideologies with various words, and much like everything else, the inclination of a person towards using expansions is contingent upon their sentence complexity value – a higher sentence complexity means more expansions. As a result of making conversations more human as we discussed a fortnight ago, these are now far rarer, but here are some examples from the generation system, which gathers all possible expansions for a certain word for every nation into one place, then if a random number is rolled that is lower than the nation’s sentence complexity, it selects an expansion for that nation for that term and stores it. Again, by this time next week these will be totally finished.



NPC Personalities

NPCs are now generated with four personality modifiers that will structure how they behave. These will now be explicitly visible, although they will be noticeable from the kinds of replies you get, and also in some cases I suspect I’ll get other NPCs to tell you about the personalities of other relevant NPCs.

Sentence Complexity – this has been shifted from nations to people, and reflects how much people give in answers they’re willing to give. By this, I mean let’s say you ask someone about whether they know about any nearby towns, and they know about five towns. Will they tell you all five, or just one, or somewhere in the middle, and will they comment on what they think about those towns? This modifier will determine that, but it’s different from whether they’ll reply at all – replying is a binary, and then the detail of the reply will be structured by these metrics.
Education – this affects how much someone knows, i.e. how often they’ll wind up saying “I don’t know!” to a question. Naturally this will vary according to class, and expected educational levels, and so forth, and therefore certain questions will be more likely to give you an answer from certain NPC classes, because others simply won’t know the answer!
Patience – this is a modifier for how much an NPC is willing to speak with you. This will combine with modifiers for each civilization, and also for each NPC class and the player’s current status (so a guard will be disinclined to talk to a random person automatically, whereas a merchant will naturally be more inclined to talk to a random person in the hope of making a sale).
Privacy – this modifier affects how willing the person is to talk about their own personal details, and probably how willing they are to tell you information about their culture, religion, etc. This won’t vary too much, but some NPCs of the same class will certainly be more or less concerned about telling strangers their thoughts.
These four metrics are being generated for each NPC, but I can’t say yet whether they’ll make it into the conversation system in 0.8 – I’m really trying to get an absolute core conversation system done, with the kind of scope and variation I want, and then release that. It’ll probably be in 0.9, but I thought it was worth drawing attention to these elements now, as more ways to vary the conversation experience.

Conversation Scrolling

Added a scroll-bar to the main conversation window. I pondered for a while how best to do this. Firstly, I was going to have the scroll bar only appear to the left-hand side of the right face when the conversation gets long enough, but that would mean that the conversation window would then slightly resize itself (which didn’t look nice) and it could slow things down a little to have to measure the size of the conversation before printing it, and then altering the size of the printed conversation. I then tried having a scroll bar only appear on the right-hand side double-grey border when you needed to be able to scroll, but this was very inelegant and seemed disconnected from the actual conversation you were scrolling through. As such, my third try was to do what I’m now going to stick with, which was to add a dark version of the scroll bar always present on the right-hand side, and then have that scroll bar expand and light-up once the conversation is too long. See below:



(Though you’ll note just for testing purposes I asked the same question a lot, and they didn’t get bored – boredom still needs implementing!)

Next Week

Next week I’ll be finishing off the final parts of the elements above, and I’ll be working on the non-default responses. This means answers which are negative, e.g. you ask “What size is your army” and the reply is “We have no army”, and also special answers, like “What do you think about [nation]” which doesn’t easily fit into a sentence structure where you just switch out words, as they’d express positive/neutral/negative feelings very differently, so these need more complex answers. See you all then!
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #798 on: August 16, 2016, 09:29:23 AM »

I like short entry ;_; i can digest it easier because I always read and sometimes it's too much so it get tabbed for a long time lol
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #799 on: August 17, 2016, 01:49:33 AM »

Haha - I think that's the opposite of what most of my readers seem to like! Sad
Logged

Pages: 1 ... 38 39 [40] 41 42 ... 53
Print
Jump to:  

Theme orange-lt created by panic