Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 195 196 [197] 198 199 ... 222

Author Topic: Dwarf Fortress meets The Outer Wilds? "Ultima Ratio Regum", v0.10.1 out Feb 2023  (Read 626753 times)

Ultima Ratio Regum

  • Bay Watcher
  • Games academic and "Ultima Ratio Regum" person
    • View Profile
    • Ultima Ratio Regum
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2940 on: December 18, 2016, 10:49:29 am »

Haha, thanks Scoops :)

Re: regular updates - yes! See the update below for this. I'm going to keep them coming weekly once more now, hopefully indefinitely, and even if the update is tiny I'm still going to put it up...

---

As you may have seen last week, the development on 0.8 is finally ramping back up again. It has been a long road here, and a far longer one than I would have liked, but I now finally find myself with enough time on my hands to actually re-open that famously lengthy Python file and finish off this gigantic release. Last week I put out something of an overview of where the game stands at the moment, and what needs to be done: which is to say, basically, finishing off the content for speech generation, finishing off the most basic version of the conversation system I would actually feel comfortable releasing, and then dealing with whatever bugs and minor issues remain that cannot wait unil 0.9 (which is to say, crash bugs, or other kinds of serious errors).

The easiest thing to resume work on is the content of conversations. All the data structures and whatnot are present for me to put this stuff in; I just have to actually write it. That’s what I’ve been tasking myself with this week, and I realised that this wasn’t really finished, and that there were quite a few new kinds of variation I could add – with only the tiniest alterations to code – that would bring a lot of extra variety to the whole thing. Therefore, for the last few days in my spare time I’ve resumed fleshing out, and adding more detail to, the conversation system. This basically means ensuring that for all the possible political ideologies, and the various religious orientations that might come up, and so forth, people will have something appropriate and reasonable to say which will (in some cases) hint back towards their backgrounds and beliefs. The central part of this was filling out all the possible “expansions” – where an NPC can say a little something extra about a particular topic, as informed by their background. I thought I had done so previously, but I now recognise this wasn’t the case and there was a lot of valuable (and easy to add) extra content I could include. These are now all complete!



I also went to the list of alternatives for certain words in sentences – where one is selected at random for each word for each civilization – and finished this list off as well. As with the above, there was definitely more to be added here, and doing something relatively coding-simple, but content-heavy, has also helped with getting me back into the swing of things.



Lastly, I also finished off another segment of the game’s conversation system, which is ensuring that multiple phrases with the same meaning, but slightly different contexts or grammatical structures, are consistent. Which is to say, if is a civilization might use the phrase “put to death” in place of “executed”, then “execution” should also be “putting to death” – see what I mean? In this case the game randomly selects the way of expressing the “base phrase”, in this case “executed”, and then cycles through all the possible derivatives of that phrase and ensures that they are all combined with the original base phrase, such as “executed”, “executing”, and so forth. In some cases this is trivial, and in some cases more complex. For example, the word “produce” might be rendered for different civilizations as “produce”, “create”, “cultivate”; to render them in the past tense, it simply needs to add a “d” onto the end. However, if the words were also “make”, “yield”, and so forth, these have different rules to be transformed into “made” and “yielded”; I’ve therefore implemented a set of fairly simple but quite comprehensive grammatical rules to ensure that different tenses and uses can be handled, and that the game will also use the right one for a particular civilization when it has someone from that culture say a particular word.

So, that’s now all there is to say this week. However, I’ve had several comments that have stressed the importance of keeping updates rolling now that development has resumed, even if things start out slow and quite minimal. As such, I would expect some of these updates to be quite brief (like this one), but I think it’s better for me to put out short updates than to save them for longer updates and do other pieces in the interim: it’s important to me that it’s clear to everyone that development is moving again, and to gradually regain the momentum I had until around last September or so. In the coming seven days I’ll be looking at the set of conversation variables that have to take account of potentially-changing external factors, and be generated in particular sentences, which are currently as follows…



These need to be always able to draw on the relevant bit of information being mentioned, and to “output” with an appropriate grammatical structure. So, for instance, [god] is the name and title of one’s deity or set of deities; [greatestbattle] is the name of the most important battle of that nation; and so on and so forth. This is probably the next big task in speech generation, I think, after which the conversation mechanics will be returned to. This week I’m hoping to implement a basic framework for these elements, and start to get characters drawing upon their backgrounds and life information to fill them out correctly.

See you next week!
Logged

Retropunch

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2941 on: December 18, 2016, 11:57:21 am »

Brilliant! I love that they will cycle through different words for the same thing - it'll add a lot of immersion for them not to just say the same exact phrase each time.

One thing I was thinking about in passing was about how you'll deal with repeat questioning on the same subject? Will the option be greyed out/removed once asked, or will it sometimes add more information if asked twice? will they get annoyed if you keep asking?

I only ask because getting the same exact response each time seems a little bit immersion breaking, but then again the NPC possibly giving more info on a second try would mean the player would CONSTANTLY ask the same question multiple times. I'd prefer if they said something like 'I already answered that/we already spoke of this' and get annoyed if the player keeps asking.

A little thing, but I think things like that do count a lot.
Logged
With enough work and polish, it could have been a forgettable flash game on Kongregate.

Ehndras

  • Bay Watcher
  • Voidwalker
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2942 on: December 19, 2016, 01:00:15 am »

(double post)
« Last Edit: December 19, 2016, 08:38:19 am by Ehndras »
Logged
Quote from: Yoink
You're never too old to enjoy flying body parts.  
Quote from: Vector
Ehndras, you are the prettiest man I have ever seen
Quote from: Dorsidwarf
"I am a member of Earth. I enjoy to drink the water. In Earth we have an internal skeleton."

Zireael

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2943 on: December 19, 2016, 05:48:20 am »

Having a list of synonyms is always a necessity when one aims to have nice (-sounding or -looking? I never know...) procedural conversations.

I went in roughly the same direction with conversations in my own roguelike (which is on hold because I'm experimenting with UE4 engine [and more procedural stuff!!!! procedural pseudo-Japanese names are cool af!!!])
Logged

Ehndras

  • Bay Watcher
  • Voidwalker
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2944 on: December 19, 2016, 06:28:02 am »

Hey, on the violence thing...

All of those are great and all, but... No deviation? No one who doesn't like violence because they were raided, maimed, raped, lost loved ones in a war, some great big historical event? I mean, come on. Cue the angst!

Comma_adds ['Violence'] .append ('the final bastion of self-righteous ego')
Comma_adds ['Violence'] .append ('the realm of barbarism and mania')
Comma_adds ['Violence'] .append ('the bane of prosperous tranquility')
Comma_adds ['Violence'] .append ('final moment before thy dagger's fated kiss.')
Comma_adds ['Violence'] .append ('a means to keep the common man in his place')

Etc. Spice it up. :) Not everyone in the universe feels the same way, especially about something as profound as violence/war/etc.
Logged
Quote from: Yoink
You're never too old to enjoy flying body parts.  
Quote from: Vector
Ehndras, you are the prettiest man I have ever seen
Quote from: Dorsidwarf
"I am a member of Earth. I enjoy to drink the water. In Earth we have an internal skeleton."

Dorsidwarf

  • Bay Watcher
  • [INTERSTELLAR]
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2945 on: December 19, 2016, 08:20:05 am »

I agree that people need a way to denounce ideology they hate, rather than just espouse it's opposite
Logged
Quote from: Rodney Ootkins
Everything is going to be alright

Ultima Ratio Regum

  • Bay Watcher
  • Games academic and "Ultima Ratio Regum" person
    • View Profile
    • Ultima Ratio Regum
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2946 on: December 19, 2016, 08:30:35 am »

Violence - that's only for imperialist nations! Every single ideology which might have something to say on violence has a different selection (and pacifism is certainly in there), and there's a range of words that don't have any relevance to imperialism, but other ideologies will weigh in on. Don't worry, loads of people denounce too :)

Repetition - people will never say the same thing twice. If you ask them again, they'll say "I just told you that", or "Like I said, the answer is X", or whatever, and if again, they'll become more annoyed, and so forth, and will quickly just abandon talking to you altogether.
Logged

Zireael

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2947 on: December 19, 2016, 03:20:32 pm »

Quote
Repetition - people will never say the same thing twice. If you ask them again, they'll say "I just told you that", or "Like I said, the answer is X", or whatever, and if again, they'll become more annoyed, and so forth, and will quickly just abandon talking to you altogether.

Does URR have a notes/journal system, then, for conversations? If asking again makes people annoyed?
Logged

Skynet

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2948 on: December 19, 2016, 04:54:18 pm »

It's okay if URR doesn't have a notes/journal system, because the player will just simply carry around a notepad and write down everything the NPCs says.  ;)

(Or even just open up Notepad and then copy and paste the text regularly into the Notepad document.)
Logged

Ehndras

  • Bay Watcher
  • Voidwalker
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2949 on: December 19, 2016, 09:57:17 pm »

Also, for the armour synonym list (a bit sparse?) perhaps garb, kit, equipment, protection, defense, and gear may be applicable.
Logged
Quote from: Yoink
You're never too old to enjoy flying body parts.  
Quote from: Vector
Ehndras, you are the prettiest man I have ever seen
Quote from: Dorsidwarf
"I am a member of Earth. I enjoy to drink the water. In Earth we have an internal skeleton."

Retropunch

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2950 on: December 20, 2016, 06:26:24 am »

Great to hear about the repition - it'll definitely help keep the immersion.

I know you've been bombarded by questions, but I have a sort of question/request - would you consider doing a more technical blog post on libtcod/python? I believe you're probably the authority on the subject now, and it's a fantastic way for people to get into roguelikes and programming in general - I've got three friends into programming through the libtcod tutorial!

I was mainly just thinking in terms of some tips and tricks, map building and so on with a few snippets here and there as examples. I'd be very interested in reading some of the ins-and-outs, and I do believe it'd bring in a bit more interest - anything on python tends to!
Logged
With enough work and polish, it could have been a forgettable flash game on Kongregate.

Ultima Ratio Regum

  • Bay Watcher
  • Games academic and "Ultima Ratio Regum" person
    • View Profile
    • Ultima Ratio Regum
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2951 on: December 26, 2016, 01:57:30 pm »

Does URR have a notes/journal system, then, for conversations? If asking again makes people annoyed?

It will! Not in 0.8, but very soon.

It's okay if URR doesn't have a notes/journal system, because the player will just simply carry around a notepad and write down everything the NPCs says.  ;)

(Or even just open up Notepad and then copy and paste the text regularly into the Notepad document.)

Haha, that sounds agonising. I did vaguely actually consider that kind of old-school system, but although it does have a certain nostalgia, I just didn't think it was viable here...

Also, for the armour synonym list (a bit sparse?) perhaps garb, kit, equipment, protection, defense, and gear may be applicable.

Ah, in many cases its due to grammatical specifics of the kinds of sentence it can arise in, but I agree, some of those work well. They're now in!

Great to hear about the repition - it'll definitely help keep the immersion.

I know you've been bombarded by questions, but I have a sort of question/request - would you consider doing a more technical blog post on libtcod/python? I believe you're probably the authority on the subject now, and it's a fantastic way for people to get into roguelikes and programming in general - I've got three friends into programming through the libtcod tutorial!

I was mainly just thinking in terms of some tips and tricks, map building and so on with a few snippets here and there as examples. I'd be very interested in reading some of the ins-and-outs, and I do believe it'd bring in a bit more interest - anything on python tends to!

More tech post: arrghhhhhh. I mean... maybe? I know, obviously, that I have tended to avoid writing that kind of thing before, but I suppose I could consider some kind of set of tips and tricks and best practice, building on my experience of the past few years. Let's class that as a "maybe"... I would not rule it out, but I honestly will consider it :). I have a whole bunch of future entries planned for the final stages of the 0.8 release, though, and another two general games commentary posts, but I'll keep it in mind for the summer. If I haven't written it once 0.8 has been out a few weeks - remind me!

---------

This week I’ve finished off the generator for greetings, farewells, compliments, insults, threats, and giving thanks; each of these can produce easily over tens of thousands of variations, and then when you factor in elements outside the sentence generator itself – the name of a god, the title of a ruler, and so forth – we readily push well up into the millions. In this entry I’ll talk a little about how these generate, give some examples, and look at the kinds of roles I want these elements to play within the conversation system.

In working on the speech generation, it quickly became clear that having a set of phrases distinctive to each nation will be an easy and quick way to potentially identify the national origin of a character you’re talking to (and an easy way to fake your own, if you know all the common phrases…) and so I’ve tried to break these down into appropriate groupings. In the end I decided that there were six major categories I could vary from culture to culture: greetings, farewells, insults, compliments, threats, and thanks. Each of these will be generated for each culture, and will also vary each individual time anyone says one, so one person from Culture X might say “So long for the time being, and may our great military leadership lead us ever forwards”, whilst another from the same culture might say “Goodbye for now, and let us hope our grand military leaders lead us forever onwards” – and so forth. This has required another large table of syllables, of course, but since these are very regular and common sayings I thought it was extremely important to make sure these varied even within cultures and between individuals, rather than (as with most phrases) having them vary only, or primarily, between cultures and religions and backgrounds, and so forth.

Greetings

For greetings I wanted to make sure that these would be sentences that wouldn’t be too lengthy and therefore potentially annoying to see repeatedly, but should also contain at least a little bit of detail in them (this applies to most conversation elements, but I think greetings are particularly relevant in this regard). I went through several iterations of how these might be generated until I was able to settle on one that hit these two requirements (brevity and detail) reasonably well. At this point, therefore, greetings tend to be of the structure “[Greetings] [from] [X]”. The first element will vary between cultures and between individuals, such as “Greetings”, “Good [time of day]”, “I greet you”, “My greetings”, and so forth. These can sometimes be pushed to the back, so you might get “From X, Greetings” or “Greetings from X” – some variations are grammatically correct in both variations, whilst some are only correct in one variation, and this is all coded in. The second element will vary in the same kind of way – “from”, “on behalf of”, etc – and so will the third, which is inevitably the most varied element. This third element will look at who the individual is and the kinds of beliefs they have, and then generate or select an appropriate greeting as a result. In most cases they will explicitly mention their nation of origin (e.g. “Greetings from the brave soldiers of [nation]”), though in some rare case they will mention their religious belief in their greeting instead of a national or cultural origin (“My greetings on behalf of the zealous defenders of [god]”). As you can see from those two examples, in the first case it seems reasonable to assume the speaker is proud of their army – perhaps a standing army, or perhaps an imperialist nation? – whilst the latter is clearly strongly religious, so perhaps they come from a theocratic or religious zealous nation? Here are a bunch of examples – see you can take some guesses about the political / religious / cultural / geographical / etc backgrounds of the speakers…



Farewells

So, farewells once more needed to be something that could vary sufficiently much and sufficiently often for them to not get boring when somebody might be talking to the player multiple times, or the player might be talking to numerous people in the same civilization or who worship the same religion. This varies by being broken down into polite, neutral, and sharp farewells. A polite farewell would be of the form “[1]” + “[2]” + “[3]” + “fond_farewell” + “specific_farewell” + “!”. So, this might be something like “I’m afraid I” + “have to” + “take my leave.” + ” Now I bid you goodbye, and” + “may you find enlightenment in study” (for a monastic nation). Or, alternatively, “Alas, I” + “must” + “depart.” + “I say farewell, and” + “may all of your hunts bring trophies and glory” (for a venatic nation). A neutral farewell does not contain the first section, and does not contain the “Now I bid you goodbye”, so whereas a polite farewell might be “I’m afraid I have to take my leave. Now I bid you goodbye, and may you find enlightenment in study!”, a neutral farewell would be “I have to take my leave. May you find enlightenment in study.”, whilst a sharp farewell uses the same earlier components and a different end component – rather than a culture or religion-specific end point, you would get something like “I have to take my leave. May all be well” – a generic, general departure which is sharp and not especially friendly. Again, here are some examples, which should give you clues about the speakers…



Compliments

Next up, a pair of related elements – compliments and insults. Each of these will come up less often, but I still naturally wanted these to be very distinctive for each nation, and each example will be worded differently on each generation. “I wager you are as wise and far-sighted as a hawk”, or “I believe you are as clever and sage as the hawk”, or “I know you to be as smart and far-seeing as a great hawk”, and so on and so forth; it’s clearly the same greeting, but each person says it in a different way and will say it in a different way each time, too, to ensure that kind of variety is maintained. These again generate according to ideologies and religions and so forth, and I think they yield a very pleasing level of variation. Examples:



Insults

Insults were slightly tougher. Whereas compliments can work quite well if saying pleasant generic things, insults have to be relevant to a range of reasons why they might be insulting the player – refusing a trade, stealing from them, challenging them in combat, being a worshipper of a forbidden religion, or whatever. You wouldn’t want a character to kill somebody in an arena, and then someone from a pacifist nation praises them for their pacifistic tendencies. I’ve mixed things up to therefore create broader, and more sweeping sentences that should be applicable to a range of possible situations, whilst still allowing the character to say a logical compliment. Originally my plan was to make insults and threats fairly interchangeable, but just alter the first few words. So an insult would start “May you”, or “You should be”, “You ought to be”, or whatever, whereas a threat would be “I will see you”, “You will be”, “I will have you”, and the like. In the end I decided not to go with this model and to introduce variation between the two and thereby more overall variety into the conversation system (the kind of decision I’ve usually made!) and I split these into two. It was much easier to build appropriate threat generation than insult generation, actually, but the insults have come out really nicely and have a rather unusual sense to them; they’re quite distinctive, and run through quite a range of different ideas and concepts. Examples once more:



Threats

Threats, then, are similar to insults, and the variation is best illustrated simply by showing some examples:



Thanks

Last, but not least: we have “thanks”. These start with words like “As”, “Being”, “Speaking as”, and so forth, and then something to do with their background, and then a form of thanks. For instance, someone from a conscript nation might say “Being a conscript proud to serve [herhis] [homeland], [thanks]”, or someone from a zealotry background might say “Being as one with the great light of [god], [thanks]”, and so forth. These are shorter and snappier than some of the other generated sentences in this set of six, but they work very well, and again get the point across snappily and effectively, whilst being relevant in a lot of situations. Whereas insults and threats were tricky because they were dependent on what the player had done to merit the insult/threat, thanks are dependent on the speaker who is relating what particular traits or characteristics they find especially valuable. Examples:



Next Week

By next week I should have these actually implemented into the game, rather than Python’s output log, and these will come up during conversations. I’m still deciding how exactly things will work with regard to when you say greetings – perhaps they will be automatic, or perhaps they will come up as a default option, or something like that – because I want these to be present to make conversations appropriate and smooth and realistic, but also not add unnecessary work greeting every time. Right now I think the best solution is for the game to automatically give you the greeting options when you open a conversation, rather than having you enter the greeting options manually, but I’ll try a few options and decide on which runs the best. Aside from that, I’ll be continuing work onto speech generation, and slowly moving towards the conversation system – the former is easier to get back into, so I’ve been working there so far, but I’ll now be slowly transitioning into handling the conversation system elements. See you all next week!
Logged

Innsmothe

  • Bay Watcher
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2952 on: December 26, 2016, 05:27:57 pm »

Jesus Christ you are amazing. O.o.
I must commend your seemingly unerring passion into your project. Not many people can put that much energy consistently into anything. <3
Logged
"That which does not kill me, can only make me stranger." -Dana, Creator of Ozzy & Millie.

Scoops Novel

  • Bay Watcher
  • Talismanic
    • View Profile
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2953 on: December 26, 2016, 09:49:14 pm »

Have you thought how to keep the player in touch with their favourite epochs? I know you want to move the world forward whenever we lose the game, and that's well and good. I'd like to have some kind of continuity for that one world i really loved playing in though. Maybe it should be possible to continue play in a world, but everytime you do it you have even less time to figure out the mystery?

As for the phrases, I'm guessing you've got blunt versions? :P
Logged
Reading a thinner book

Arcjolt (useful) Chilly The Endoplasm Jiggles

Hums with potential    a flying minotaur

Ultima Ratio Regum

  • Bay Watcher
  • Games academic and "Ultima Ratio Regum" person
    • View Profile
    • Ultima Ratio Regum
Re: Ultima Ratio Regum - roguelike/Borges/Eco, v0.7 released!
« Reply #2954 on: December 31, 2016, 09:45:39 am »

Jesus Christ you are amazing. O.o.
I must commend your seemingly unerring passion into your project. Not many people can put that much energy consistently into anything. <3

Hahaha, thanks :). It took a while to free the space to get back, but I'm not anticipating any further breaks now. Just need to get 0.8 finished, and released, and then we can see where we are...

Have you thought how to keep the player in touch with their favourite epochs? I know you want to move the world forward whenever we lose the game, and that's well and good. I'd like to have some kind of continuity for that one world i really loved playing in though. Maybe it should be possible to continue play in a world, but everytime you do it you have even less time to figure out the mystery?

As for the phrases, I'm guessing you've got blunt versions? :P

On the first point... I haven't really considered it, and I'm really disinclined, but your idea of "less time to solve the mystery" if you start a NEW character in the SAME world is a really interesting one. I'll think about it!

Oh yes, some are blunter, shorter, always trying to maximise the variation (and you will, of course, never see so many of the same "kind" of statement together in-game as you have here!)

---

Meanwhile, here's this week's blog entry, "2016 in Review", with a summation of URR development and everything else I've found myself up to in the world of games in the last year:

http://www.ultimaratioregum.co.uk/game/2016/12/31/2016-in-review/
Logged
Pages: 1 ... 195 196 [197] 198 199 ... 222