Author Topic: Ultima Ratio Regum (0.8 released after five years!)  (Read 158840 times)

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #75 on: August 22, 2015, 09:48:00 AM »
It has been a busy fortnight, with house-moving (in progress) and secret projects (almost ready to start) and programming (proceeding nicely) and various other endeavours (far from complete), but I’ve finished all ambient crowd behaviour, and a couple of other things besides. Here’s a pretty massive round-up of what has been happening in the last three weeks since the last full URRpdate:

Priest Clothing

I decided to work last week on a second of the four high-level clothing archetypes (feudal, nomadic, hunter-gatherer, religious) – the religious clothing. For this I did a standard expansive image search, collated a range of religious dresses, and then attempted to break them down into commonalities, differences, and readily exchangeable parts. The colouring of each piece of religious clothing, much like the prayer mats we saw a few weeks ago, are connected to the altars they worship at. The highest-ranking priests in the religion will have slightly snazzier robes, whilst if the religion has any kind of poverty-is-holy ideology or similar, they might have duller robes. Here is a set of six possible robes all using a potential “demonic” colour scheme (just since that’s the one I was testing the systems with, but how nice do they look?!), and then some with their attendant altars alongside (one “Eldritch” archetype, one “Pantheon”, and two “Standard”), and lastly an example of the higher tier of religious clothing reserved for religious leaders (hence the lovely gold filigree):







Priests use the same shoes as the nation they’re in, and usually the lower-class variation (though in some religions priests will be barefoot). With these done, that means approximately half the clothing generation for 0.8 is done – feudal clothing is 99% finished (I just need to put in a few final touches to the lower-class variations) and religious clothing is now finished. I’ll probably work on nomadic clothing next, as I have a few ideas of what archetypes I want to generate those around, then I’ll do hunter-gatherer clothing probably last before this version’s release. Armour and things like that will come later (0.9?) so for the time being, all soldiers and other military personnel just have lower-class clothing, or upper/middle-class if they are officers (which in the future they’ll probably keep, but just wear beneath their armour).

Slums and Encampments

The last few areas which needed handling for NPCs have been dealt with. NPC crowds now spawn, move and despawn intelligently in slums outside major cities, and also in hunter-gatherer encampments. Pictures of slum, and encampment, and example crowds:





Remaining Interior Behaviour

All buildings which can have crowds in them (e.g. a tavern can have randoms wander in. but a royal mint cannot) now have those crowds behaving intelligently at all times, and – as far as I can tell – this is entirely glitch/bug/crash free regardless of what building, what civilization, what demographics the NPCs in question are, etc. Here are some examples of an arena and a longhouse, since I thought these were both rather pleasing, especially in the longhouse as people gather around the table:





Pathfinding Problems

Some buildings and some parts of the external map were starting to produce a problem – if you had two NPCs (or an NPC and the player) trying to get through the same one-tile tunnel between walls, at the same time, then they couldn’t slip past each other. I implemented a temporary solution (whereby crowd NPCs will look for another objective if they find someone blocking the one-tile route down to their current objective) but this wasn’t good enough for the future, especially once we begin handling important NPCs whose paths cannot just be changed on a whim. So, now, if you have two NPCs who meet, and NPC 1 is trying to move onto the tile NPC 2 is on, and NPC 2 wants to move onto the tile NPC 1 is on, *and neither of them can find another way around* by stepping on a diagonal, and they would both allow the other to step past them (so they aren’t enemies), then the game will look at which one of them has the longest wait until their next turn, and then schedule a special “simultaneous” turn for them both to switch places at the same instant for that more distant turn (so that neither NPC can move “faster” than it should be able to). I’ve now implemented this to work indoors and work outdoors, so here’s an outdoor (filmed in “slow motion” to make it clear) example of this:



However, this became trickier when I wanted to combine it with the player. Clearly the player should be able to do this as well, but it required writing quite a hefty new chunk of code, for handling if the player tries to move through an NPC, or an NPC tries to move through the player, because obviously I don’t want to remove agency from the player, or allow NPCs to shove the player around the place (as that would get quickly annoying), but nor should the player somehow be able to exploit this ability to move NPCs around the map (I’m not sure how this could be an issue in the future, but it seems better to just produce a robust system now rather than worrying about it later). Either way, we clearly needed a way for NPCs to walk past the player if the player is being an ass and standing in the way:



So, there are two scenarios: what if the player wants to move onto another NPC, and what is another NPC wants to move onto the player. It would be deeply annoying to allow the player’s character to be “pushed around” by other NPCs, so that was something I knew I had to avoid, but at the same time I had to ensure that you cannot exploit the system by somehow pushing around NPCs yourself. If an NPC wants to move onto the player, therefore, they initiate a special two-turn move, where the NPC takes two turns instead of one and “squeezes” past the player, taking both moves on the second turn – so from the player’s perspective, the NPC moves next to them on Turn 0, remains there for Turn 1, and then moves to the other side of them on Turn 2. If the player moves in the interim, then normal pathfinding resumes and the two-turn move is cancelled. (Of course, the two turn move only works if the tile beyond the player is free, the player and the NPC’s relations are friendly enough that the player would let the NPC get past, etc). Here’s an example, where I start off looking at the approaching slave, then turn to the other side, and sure enough the slaves pass “through me” using this special two-turn move:



This also results in a message being printed, along the lines of “The [NPC type] squeezes past you”. The other version is; what if the player wants to get past an NPC who is blocking a one-tile area? An NPC blocking a one-tile area and standing *still* should be an impossible scenario – I am certain there are no areas which are valid for crowd NPCs adopting the “meandering” walking type which are also only one-tile wide – so if one encounters an NPC in an enclosed space, it’ll be if you and the NPC are moving towards each other and need to cross over. If the NPC “initiates” the move, we get the scenario shown above. If the player initiates the move, then the game looks at both the player and the NPC, does the usual check of whether they are allowed to move through or not (this might have to wait until 0.9, as it’s going to be a complex calculation – for now it just returns “yes”) and then, if so, it has the player move along with the obstructing person during the later of their two turns (so if the player is next scheduled to move on turn 18174, and the NPC on turn 18175, then both will move on 18175, so that neither character is able to have a “free turn”). You then switch places with them, as shown in this example, where I step into an NPC who I am friendly enough with to switch places, then I turn around (taking one turn) and we therefore see the NPC two turns behind me, and they then leave. Had I just stood still, then they would have initiated the two-turn move, going “through” me without forcing my movement.



The three systems shown here also work when indoors as well as outdoors. These are all very rare scenarios, and I suspect will (for the most part) only happen if the player is standing deliberately still to try to annoy the NPCs, but it still needed handling. With all of this done, I am now… 99% that all NPCs of all categories, whether inside or outside, and whether dealing with the layout of the terrain, the motion of other NPCs, or the motion of the player themselves, should be able to path correctly past any obstacles (I think there is still one final minor non-crash bug here involving NPCs who have stopped to admire something, and if they have stopped in a “line”, then other NPCs may struggle to get past, but I’m working on fixing that one). As a last note on this, it’s also worth noting that in almost all cases I’ve worked hard to ensure every corridor/path both inside and outside is, in most cases, at least two tiles wide. However, in certain areas – slave quarters, some cathedral generations, slums, and a bunch of other places – one tile corridors can generate, so it was clearly important to handle these sorts of scenarios.

Also, now I need to at some point have you be able to switch your “walking style” from “walking” to “shoving” (or “pushing”, maybe?) so that in the rare possibility of a blockade (which I *think* should be impossible, as I’ve modeled spawning a bunch of NPCs on every tile in an enclosure and they’ve always managed to find their way out so far) you can always push your way through NPCs and force them all to move into the position you previously occupied, though that might not make them all that friendly to you. Nevertheless – and although I’m not even sure such a scenario can ever happen – it seems like an important addition which I’ll probably add this release, and it should be simple (note if there’s an NPC there, and if so, just switch places with it).

Campfires

Hunter-gatherer encampments now have campfires, beds, and tables. Only the fires so far have an image, but the beds and tables will be made of either wood or stone, and will get images before the end of this release:



We still need more variation and detail in these areas – a lot more, honestly – but hunter-gatherer areas now look slightly less bleak and empty than they did a little while ago (in the above picture you can see some stone chair/tables and a second fire). More soon, hopefully, though anything beyond tables, chairs and beds might have to wait until 0.9 or a little beyond. I’m focusing on feudal nations this release (although all NPCs will be present), and it’ll probably be the next release when I do more on nomadic and hunter-gatherer NPCs and societies.

Guards

We now have guards! Guards appear outside Parliaments, Mints, Embassies, Officers’ Quarters, Armouries, Mansions and Citadels in the middle of Fortresses, and also inside Banks and Arenas (the former to guard the vaults, the latter to keep the crowd at bay and make sure nobody interferes with the combat). The game also now notes every part of the map which needs a special “permission” in order to access it, and guards are tethered to certain permissions, meaning that if the player steps onto a tile which has the (‘Embassy’,24) permission and the player isn’t from the nation with the id# 24, then the guards will act – right now the game just registers this since the conversation system isn’t in yet, but that’s the plan. So, here are some guards doing their guarding thing (they currently wear standard clothing since armour generation doesn’t exist yet):



And then here’s a slice of the visual map, and the “forbidden” map, which shows the parts of the terrain close to the armoury door which will trigger the ire of the guards, so we can see that anything within the courtyard, and some of the tiles just outside the the gate, will trigger their ire (the guards don’t show up on this view, but as we saw above, the guards are basically standing just outside the gate):



So, now we just wait until later this release when I get working on a conversation system and the guards can accost you! More on this later once I figure out how precisely it works, but all the guards spawn, and detect intruders, and that’s all that matters for now.

Distance Demographics

The crowd’s demographics now vary according to the expansiveness of the nation in question. By this I mean – if the nation is small, then all people spawn with the genetic demographics (skin tone, hair colour, eye colour, etc) of the capital, or nearby. If the nation is large, the game will sometimes look for a random tile in that nation’s territory to choose the demographics from (which is to say, if you’re in the capital city it’ll normally be a “capital person”, and sometimes someone from further out; if you’re in a town, it’ll normally be a “town person”, but sometimes someone from further out) and use those to spawn the person instead; and if the nation has colonies it’ll do the same. This means if you run into two people in a nation with the same cultural demographics (clothing, hairstyles, etc) but very different skintone/hair colour etc, then you can reasonably deduce that nation is either very large, or has some colonies somewhere. Here are two examples of this kind of crowd, and the latter you’ll note has a priest leading some followers (the priest of course now spawns with the right robes). Rather annoyingly I wasn’t able to quickly find a nation which had colonies/homelands with skin tones at the two extreme ends of the spectrum, but you still get the idea from these of a lot more variation in the larger and more expansive empires:





Another thing this has got me wondering: in future versions (0.9 or 0.10 onwards) all the map except your home nation will be in shroud when you start. Should colonies be “lit” or not? I think the best solution is that colonies don’t start as explored, and if you take a ship to one of your own nation’s colonies, perhaps all the colony land is then revealed when you arrive? In contrast, normally, you’ll just explore the tiles around you as you move, and if you take a ship, it will perhaps show you the ocean path you move along? That seems like a good compromise without having a situation where you start with a few chunks of the map explored which are disconnected from your nation’s homeland.

Lesser Houses

I’ve now implemented the first stage in generating families/houses which are less important than the small number at the top of each civilization (one of which, of course, belongs to the player) but are still noteworthy. In nations with the “Vassalage” ideology, one of these families will have a special “Manor” building spawn in each town in that nation, and a family rules each of these manors and therefore each town. In Vassalage nations the other smaller buildings in upper class districts will also belong to these families (so they have a manor, and a home in the capital), whilst in non-vassalage districts these buildings will also belong to second-tier families, but not “special” ones (as in, rich merchants or whatever, not those with direct feudal/political power). However, for the vassalage nations, these all needed coats of arms! So, I’ve returned to the sigil generation system and added in the ability for “lesser” houses to have coats of arms. These are much simpler than the major houses, and have a geometric pattern determined by the aesthetic preference of their nation (octagon, square, circle, cross, diamond) which feeds into an algorithmic sequence that combines various elements (I’ll also add a system ensuring there can’t be more than 5 vassalage nations, and they can’t share a shape, to ensure variety across the game world). Now, bearing in mind of course there are meant to be for lesser/more general houses… what do you think?



Compare, of course, with some examples of important families:



So what do you think of the minor ones? Good, bad, too little detail, too similar, just right…? Of course, they still need mottoes, and I’m thinking of having it tether them to the towns they’re from in some way (or perhaps these lesser houses don’t have mottoes?).

What next?

Next up I’ll be working on adding more “fixed” NPCs like guards – so this means tellers in banks, priests in religious buildings, servants in mansions, officers in officers’ quarters, delegates in parliaments, and so on. This week is probably also going to see a little bit of reworking of some aspects of world generation, since I need to add in a system for vassalage nations to generate and track these other houses, and for parliamentary nations to figure out how many delegates they should have (I have a cool system planned for this), and I might add in the new “Monastic” religious ideology I’ve been thinking about for a while too. Either way, I’d say we’re about 75% through NPC mechanics at this point, and in a fortnight or so I think everything with NPCs should be finished, and then we can move onto the other massive part of this release – conversations. See you next week!

Avagart

  • 7DRL Reviewer
  • Rogueliker
  • *
  • Posts: 567
  • Karma: +0/-0
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #76 on: August 22, 2015, 09:28:21 PM »
Great job, as always. Whole your work is impressive.
However, I have some questions about game, hm, design. For now, your main goal seems to be make big, very immersive random generated world (world ie places, civilizations, persons... everything).
What about gameplay? PC possibilities? I don't know, are you going to implement guild-like organization, random quests, etc? Or player's role will be to live simple life, so walking, being ambushed, observing country? 'Live the life', as in 'roguelike sims' or good oldie Darklands? Or maybe you have another vision of gameplay?
I'm sorry if you wrote somewhere about it already, but I checked your development plan and I didn't find answer.
Cheers :)

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #77 on: August 23, 2015, 06:11:39 PM »
Great job, as always. Whole your work is impressive.
However, I have some questions about game, hm, design. For now, your main goal seems to be make big, very immersive random generated world (world ie places, civilizations, persons... everything).
What about gameplay? PC possibilities? I don't know, are you going to implement guild-like organization, random quests, etc? Or player's role will be to live simple life, so walking, being ambushed, observing country? 'Live the life', as in 'roguelike sims' or good oldie Darklands? Or maybe you have another vision of gameplay?
I'm sorry if you wrote somewhere about it already, but I checked your development plan and I didn't find answer.
Cheers :)

Thanks, and sure!

Basically, the game is going to be about information. You are seeking to locate a very small number of items scattered around the world; to do so, the more the player understands the world, the easier this task will be. This means conversing with NPCs, examining books, coming to learn about the cultures/religions of that world, the history of various nations, exploring and gaining access to buildings, and plotting your path around the world map to "track down" these items. It's almost a... research game, one could call it? The world is insanely detailed (and only becoming more so with every release), and it's the close examination of the world and figuring out the paths these artefacts have taken, and who may possess them now, which will be key to success! But for this to work, the world must be in place first, hence the worldbuilding focus up to this point...

jim

  • Rogueliker
  • ***
  • Posts: 380
  • Karma: +0/-0
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #78 on: August 24, 2015, 08:17:22 PM »
Where in the Procedurally Generated World is Carmen Sandiego?

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #79 on: August 26, 2015, 09:41:28 AM »
Where in the Procedurally Generated World is Carmen Sandiego?

Such is the central quest! You shall have to find her anew each game...

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #80 on: August 26, 2015, 10:00:31 AM »
For now, your main goal seems to be make big, very immersive random generated world (world ie places, civilizations, persons... everything).
What about gameplay?

I've commented this before, but even the large game world alone will most likely create some annoying navigation problems. I find navigation annoying even in traditional 80x23 levels! That's why I've been thinking about stuff like placing level stairs next to each other if it's possible, just to reduce stupid walking when you travel between levels back and forth. I guess finding stairs is one of mini puzzles in roguelikes, but I think if the game world is large it's time to forget that puzzle and make navigation/travels easier.

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #81 on: August 28, 2015, 03:22:19 PM »
For now, your main goal seems to be make big, very immersive random generated world (world ie places, civilizations, persons... everything).
What about gameplay?

I've commented this before, but even the large game world alone will most likely create some annoying navigation problems. I find navigation annoying even in traditional 80x23 levels! That's why I've been thinking about stuff like placing level stairs next to each other if it's possible, just to reduce stupid walking when you travel between levels back and forth. I guess finding stairs is one of mini puzzles in roguelikes, but I think if the game world is large it's time to forget that puzzle and make navigation/travels easier.

I agree, this is a tricky one, to which I've several solutions:

- A goto system like DCSS seems absolutely essential; the game will path to where you tell it, whether that's inside a building, on the local map, or on the world map.

- Alongside the above, have a way to quickly "check" where the exits are; so you hit Goto, then you TAB through the stairs/doors on your floor, perhaps.

- Try to make the building layouts sensible, which is hard to describe, but - although obviously I am the designer - I'm at the point here I pretty much always know roughly where a door is going to be in a new building because I know the algorithm behind it, and I'm confident players will come to identify the different architectural styles and be able to make (reasonably) educated guesses without using either of the above two things.

- Also, the overwhelming majority of buildings are small enough to always fit in the viewing rectangle of the screen at once, or near enough, so in those cases the door won't go "out of sight".

I guess I'll see what happens over the next year, but I think/hope that should suffice (especially once I actually add in that kind of go to function)...

AgingMinotaur

  • Rogueliker
  • ***
  • Posts: 805
  • Karma: +2/-0
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #82 on: August 29, 2015, 09:17:28 PM »
In regards to this, you might want to compare Gearhead 1 and 2, if you haven't already played them. They both feature quite intricate pseudorandom quests which require you to communicate with people in different townships. This is all quite complicated in the first game, and it's very clear that the designer learned a lot about how to implement the ui for all of this in the sequel. A practical log where you can look up people, rumors etc. helps a lot. Gearhead also implements phones, for when you just need to quickly chat with someone in another place. (I'm guessing something like carrier pigeons are more in the spirit of URR than a magic-driven postal system; are you planning on something like a time system where you can hang around/study/train for several seasons in one place?) Anyway, it's been years since I played those great and innovative Gearhead games, so I don't remember the details so well.

It's certainly rather uncharted territory in RL/game design, I think. I'm guessing one possible pitfall of a huge integrated "lore" ui is that it might become a lot of busywork to keep track of all the NPCs and civilizations. Then again, browsing and interacting with the lore should ideally be made interesting in itself.

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #83 on: August 30, 2015, 09:13:07 AM »
- A goto system like DCSS seems absolutely essential; the game will path to where you tell it

Even you have path finding and stuff like that it doesn't remove the "problem" of scale or total space of levels and the game world. When you look at DCSS it actually has quite boring levels and auto-explore was created to "solve" that, but in fact it doesn't help the actual problem.

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #84 on: August 30, 2015, 10:13:12 AM »
In regards to this, you might want to compare Gearhead 1 and 2, if you haven't already played them. They both feature quite intricate pseudorandom quests which require you to communicate with people in different townships. This is all quite complicated in the first game, and it's very clear that the designer learned a lot about how to implement the ui for all of this in the sequel. A practical log where you can look up people, rumors etc. helps a lot. Gearhead also implements phones, for when you just need to quickly chat with someone in another place. (I'm guessing something like carrier pigeons are more in the spirit of URR than a magic-driven postal system; are you planning on something like a time system where you can hang around/study/train for several seasons in one place?) Anyway, it's been years since I played those great and innovative Gearhead games, so I don't remember the details so well.

It's certainly rather uncharted territory in RL/game design, I think. I'm guessing one possible pitfall of a huge integrated "lore" ui is that it might become a lot of busywork to keep track of all the NPCs and civilizations. Then again, browsing and interacting with the lore should ideally be made interesting in itself.

As always,
Minotauros

This is very interesting (I haven't played either). Re: looking up people/rumours - yeah, the player character is effectively going to have an eidetic memory. Anything you've seen/read/heard/discovered before will be listed and I'll be developing a system allowing people to "tag" pieces of information their player has learned and thereby store clues they think might be related, move clues from one mystery into another, etc, and generally navigate such a large amount of data. As for carrier pigeons/letters, what an interesting idea. I really, really like the notion that you might be able to send off questions in one direction whilst moving in the map in another.

Even you have path finding and stuff like that it doesn't remove the "problem" of scale or total space of levels and the game world. When you look at DCSS it actually has quite boring levels and auto-explore was created to "solve" that, but in fact it doesn't help the actual problem.

A fair point (though I think some of the DCSS level generators, like the Vaults and many of the Hell levels can be very interesting). I'm striving to make everywhere interesting (or at least, everywhere that should be interesting, should be interesting - by which I mean I'm working hard to make a city interesting, but it doesn't really matter if a standard forest tile isn't particularly fascinating) in order to deal with that issue, and I hope no-where should be "dull" - equally, the denser the world becomes with people and information and clues and so forth, the less I think this'll be a problem.

-- This week's update --

This week I’ve implemented almost all the “stationary” NPCs. To explain what I mean by this, URR has three “tiers” of NPC: the crowd, the stationary, and the crucial. Crowd NPCs spawn and despawn as the player moves around the world map and are of importance insofar as they demonstrate the demographics of the nation, and you will be able to acquire significant information about the generality of the nation/religion/culture they belong to from them, and they serve also, when in crowds, to illustrate something of that nation’s ideologies (so you’ll only see a crowd with a bunch of people trailing a priest in quite a religious nation, for instance). Stationary NPCs are positioned in locations where there must always be an NPC serving a certain function, but the individual is not of particular important. Examples would be priests in religious buildings, jailers in prisons, innkeeps, guards, and many others. In some cases these individuals will “change” around after time – guards, for example, will be “met” by another guard at a certain point who will then take over the guarding role, i.e. they change shifts – whilst others, like priests, will obviously not change every few hours. Crucial NPCs, meanwhile, are those NPCs who are of sufficient importance to the game and the world that regardless of where the player is, the actions and movements of these NPCs will always be tracked. This category is primarily for NPCs like rulers, religious leaders, inquisitors, heretical leaders, nobles, military officers, and the like. Also, very rarely, what appears to be a stationary NPC will actually be a crucial NPC. Which is to say: in a jail, maybe 95% of the prisoners will be “general” prisoners, but a tiny number might have massive global significance due to their past role in a grand plot, and one wouldn’t know which was which until uncovering a path of clues which lead you to the important prisoner. Ninety-nine out of every hundred priests might be good loyal clerics… but perhaps one in a hundred hides an religious artefact of immense importance in their private quarters?

So, this week it has been the turn of all the stationary NPCs. Here are some examples:

Priests

Priests now spawn in religious buildings and cathedrals. In religious buildings, the priest lives on the top floor and will return there in the evenings; in cathedrals they have distinct rooms on the ground floor to which they will retreat as and when appropriate. For the time being,  however, they just spend their time around the ground floor of the cathedral interacting with the worshipers, going about their own worship, etc. There is actually a tiny bug in the below gif – the priest was standing on the same tile at the altar, when they should be standing next to the altar – but I’ve since fixed that, but I otherwise rather liked this gif so decided to stick with it.



Embassies

Embassies now have clerks and diplomats in them; the clerks are probably going to be “general” NPCs in the embassy crowd, whilst I think diplomats will be assigned to specific areas. The ambassadors for each nation in other nations will be crucial NPCs who will always be tracked separately, so they haven’t been coded just yet.



Servants/Slaves

Servants/slaves (depending on whether the nation is a slaving nation or not) now spawn and go about their business sensibly in upper-class houses. The houses will also, of course, get visitors in the form of various aristos from time to time, and then later, we’ll get working on the “crucial” NPCs – i.e. the family who lives there – generating properly. Thus, for now, here’s an example of some servants and some general citizens. You’ll note the servants will always stand next to something, either next to a person to serve them, or next to a chair/table/whatever in order to keep it clean and tidy. They’ll sometimes return to their quarters in the basement, and once I get schedules working, they’ll obviously retire there at night.



Prisoners

In jails (in nations with the Penitentiary ideology) we can now find prisoners in the cells, one prisoner per bed, milling around. As mentioned above, a small number might be someone of particular importance, but it’ll be up to the player to decipher who (if anyone) that might be. Prisoners will also be on release schedules (or at least, the lucky ones will be!) so they’ll be replaced whenever one moves out. I might add some kind of system whereby the different floors of each jail are for different types of prisoner – I’ll think about that going forward.



Archivists

Below the cathedrals of theocratic nations you’ll find a crypt… and if you explore that crypt, you might come across a room containing the most secret archives of that religion. Right now these are tables without books, as we don’t have book generation yet, but we do now have the archivist, and their guard(s), spawning. Here’s a gif of me finding an archivist in a half-flooded crypt in a city next to the ocean, and then having a look at the archivist, and looking at his religious garment (which you’ll note has grey patterning – as well as “default” robes and the “religious leader” robes with gold patterning I showed last week, I’ve added in a mid-tier version with grey patterning which will be given to people like archivists, abbots, inquisitors etc, who are higher-ranked than the average priest but not the leader(s) of the entire religion). The “Archivist” is depicted with a ‘V’, and the ‘g’s are of course the guards:



Once books are generating, archivists will be guarding the most important secrets of their religion, so the books behind them will be immensely important to find a way to read…

More Guards

Guards have also been added to several other areas which need them, such as Officers’ Quarters, and Mansions, and various other places, and the guards for now all shout the “Oy, shop that!” placeholder (along with their x/y coordinates) once you walk into their territory:



Monasteries

I’ve now temporarily (or permanently, we’ll see) removed the “Cultism” religious ideology and replaced it with, for the time being, the far more interesting “Monastic” option, and as such, we now have monasteries spawning. These are structured in the form of a religious building in the middle, a range of paths and vegetable gardens around it, a “loop” of monastic housing in a shape based on the civilization’s spatial preference, with several other important rooms (libraries, dining halls, abbot’s quarters, etc) spaced around the outside (or sometimes the inside). As examples, here we have a map grid containing a monastery (diamond), then the player standing outside one (cross), then inside from the player’s perspective (square) and an absolute perspective in the same monastery (circular) – note of course that all the wall in middle and edges of the fourth picture is not actually wall, since outside the monastery is where the vegetable garden is, but all the spare space in an “interior” map is just filled in with wall:









Next Release?

I find myself with a quandary. Everything to do with NPCs and their schedules, behaviour, appearance, etc, will be finished, at the latest, by the end of next month. However, one will not be able to interact with NPCs at this point: there will be no conversation system. At this point my intention is to continue working on this release until the conversation system is fully implemented and as deep/detailed as I want it to be, and thereby make this the largest (in terms of time invested) release URR has ever had, so looking to release in Oct/Nov. As the first gameplay release, this seems appropriate on some level – I want the first gameplay release to have a lot to do (or at least a lot of people to talk to!) rather than a little. On the other hand, I do strive (with mixed success) to release new versions as rapidly as I can. So: what does everyone think? Right now I feel I’d rather save up both NPCs and conversations for one massive first gameplay release, rather than make NPCs 0.8 and conversations 0.9, as I think a world full of NPCs you can’t interact with will feel rather peculiar… but I’d like to hear your thoughts.

Next Week

Next week… I have no idea. Something involving NPCs in some way. See you then!

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #85 on: September 06, 2015, 04:42:01 PM »
Short-Term Replacing

Now, some stationary NPCs require two special things: they might need to be replaced in the short term (so there will always be a guard in any guard location, but at certain points in the day a new guard should come along and relieve the other guard, who would presumably be getting tired), and they might need replacing in the long term (e.g. gladiators who have died by now, or sailors lost at sea, etc – the game needs to replenish its volume of some of these NPCs when some are killed or cease to be important). Long-term replacing is not yet required (since NPCs, and the player, cannot yet die), but for short-term replacing, there is now a system in place to perform this task. When a guard spawns, the game sets a length of their watch, and when this period is up, a new guard is spawned as close to the guard as possible without the player being able to see the new guard spawn. The new guard then travels to the location of the old guard, and once they are on adjacent tiles, they switch places, and the old guard then moves out of the district and despawns, whilst the new guard becomes effectively identical to the old guard. I’ve also set up a system where there is a set “pool” of guards for each place, so perhaps you’ll be able to persuade certain guards to let you in if you know when their shift is, and their willingness to be bribed/persuaded/threatened/etc? Here, therefore, we have both the guards on a mint changing over, after which a priestess and her escort ramble past:





And the equivalent in a bank: they would not ordinarily all change over in this short a space of time, but for the sake of testing, it looks pretty neat:



Travel and Abstract Scheduling

Once I’d implemented this guard system, I then realized the game needed to track this wherever in the world the player was (or, at least, when the player next sets foot on that tile, work out which of the two guards should be on their shift, and spawn them). This seemed trivial, but it quickly became clear I was going to have to do other things before this. If I want the game to see how long it has been since the player last set foot on a map grid, then I have to know precisely how many turns/how much time moving on the travel map takes – and that, in turn, means programming that fully (currently there is just a placeholder of 20 “ticks” of the clock for each grid moved) and also making sure it cannot be exploited, and that moving on the travel map is never more/less efficient in terms of time spent than moving on the local maps (so, for instance, if on the world map you move north, north-west, then west, it should only count you a few turns as you move through the “corner” of the NW tile, since you wouldn’t walk to the middle before turning… but this rapidly makes the calculations very complex, as the calculations have to look at your previous two turns to figure out what would have been the most optimal way to move from Tile 1 -> Tile 2 -> Tile 3 if you’d been doing it on the local map instead of fast travelling). As such, I spent two days this week developing a detailed calculating system for working out the most optimal path the player could have taken between what I call two tiles and their outcome – the outcome being either pressing Enter to explore that tile, or moving onto a third tile – and thereby ensuring that, for long distance, fast travel is always equal to the most optimal path the player could possibly take on foot, i.e. the player should not be encouraged to spend real-world minutes slogging around the world on the local map, as it will never be faster (it will either be equally fast, or slower). So, basically, the system now tracks your previous two moves, and all the possibilities of those moves, and then when your third decision causes these possibilities to “collapse” (forgive the quantum terminology) the game calculates how long the most optimal way of carrying out that movement would all have taken, before then letting the player do any more interacting. This might sound strange, and it took a solid two days to code, but now it works perfectly and can handle all scenarios of the player’s fast-travel movement, and is always efficient, and allowed me to finally return to guards and ensure that the game knew which guard should be on patrol duty. In 0.9 therefore this system will be expanded to actually take account of terrain: moving on roads will be very fast if you have a mount, moving on desert will be extremely slow if you aren’t in a caravan, moving on mountains will be even slower unless one takes a mountain pass, and moving on ocean will, of course, be impossible unless one charters a ship.

Exploration

As part of the above, I decided to do a little bit of work on how the world map is going to look to explore -this is still not going to be the first release where the map starts mostly shrouded (though it seems very clear that that will be 0.9 early next year), but I wanted to implement it at the same time anyway. When you move you now uncover all the tiles in a circle around you (effectively a 5×5 grid centered on the player with the corners removed) but you can also see all mountains in a far larger area, to simulate the ability to, naturally, see things which are higher up than other things (profound, I know). In the future I’ll probably let you see a decent distance across the ocean, too, but I haven’t added that yet. Here are gif and image examples of how this looks, which I’m very happy with at the moment:





Finally…

Last but not least, many thanks to the extremely generous donations of the last couple of weeks; I really appreciate them! Over the coming week I’ll be working on completing the scheduling system for NPCs – day night cycles, going “home”, that kind of thing – and doing a lot of remaining edge cases and things like that, so once that’s all done, I might get working on one of the other clothing generators for this release, or keeping track of the “crucial” NPCs. We’ll see. See you then!

King_of_Baboons

  • Newcomer
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #86 on: September 07, 2015, 09:15:51 PM »
This game rocks!It has one of the best ASCII graphics that I have ever seen and has a lot of cool mechanics judging by all of your posts.

I have a few questions about some future features you might add:

-What kind of enemies will the player encounter besides bandits and heretics?Since it's a more realistic roguelike I assume that it won't have any generic goblins,trolls,dragons or any fantasy monster.

-Is there going to be more sources of quests besides the nobles and our religion's leader?It's not hard to imagine that the popes and priests are going to be our main quest givers by looking at the religion's description("Wants to eliminate evil cults.Rewards its followers with weapons and armor.").I just don't want to be just the church's private hitman.

-Speaking of cults,will they practice necromancy and other dark arts?A little bit of paranormal stuff regarding cults and religion would be nice.

-How do you take those awesome screenshots like that monastery one?

UltimaRatioRegum

  • Rogueliker
  • ***
  • Posts: 318
  • Karma: +0/-0
  • Username says it all, really.
    • View Profile
    • Ultima Ratio Regum
    • Email
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #87 on: September 08, 2015, 01:32:08 PM »
This game rocks!It has one of the best ASCII graphics that I have ever seen and has a lot of cool mechanics judging by all of your posts.

Well thank you very much! Yeah, I'm aiming at something pretty different: I suppose the three core mechanics will be conversations, examining things, and exploration (and then piecing it all together!).

-What kind of enemies will the player encounter besides bandits and heretics?Since it's a more realistic roguelike I assume that it won't have any generic goblins,trolls,dragons or any fantasy monster.

-Is there going to be more sources of quests besides the nobles and our religion's leader?It's not hard to imagine that the popes and priests are going to be our main quest givers by looking at the religion's description("Wants to eliminate evil cults.Rewards its followers with weapons and armor.").I just don't want to be just the church's private hitman.

-Speaking of cults,will they practice necromancy and other dark arts?A little bit of paranormal stuff regarding cults and religion would be nice.

-How do you take those awesome screenshots like that monastery one?

1) All humans, no fantasy creatures. Combat is actually going to be extremely rare, and unlike more games which have "optional combat" but position combat as the *easier*/simpler option (so stealth is harder, or magic is more complex), combat in URR is actually going to be the trickier path through the game in many ways.

2) The game's central quest - to uncover a conspiracy hidden throughout the world - is the player's main objective, but I'm not completely sure yet how many lesser missions might be attained which move you in the direction you want to go. I'll have this more figured out in the near future, but I assume a wide range of high-ranking figures might try to enlist your help.

3) There will be rituals and stuff, but it won't be paranormal, in the sense of it will be belief, not "effect on the world". With only one tiny exception to do with the main story, I'm going full "realism"!

4) Ha, that's using wizard mode. In game you can save the area you're on so .png, but it only saves the parts of it you've explored!

King_of_Baboons

  • Newcomer
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #88 on: September 08, 2015, 06:18:57 PM »
4) Ha, that's using wizard mode. In game you can save the area you're on so .png, but it only saves the parts of it you've explored!

Now I'm sad because I found the largest city on the map and I wanted to take a giant screenshot of the whole thing...

But now Im curious about the next update,how will the NPCs interact with us?Will their speech be more like the sometimes weird DF speech or are only the important NPCs be able to talk with me?

Aukustus

  • Rogueliker
  • ***
  • Posts: 440
  • Karma: +0/-0
    • View Profile
    • The Temple of Torment
Re: Ultima Ratio Regum (v 0.7 released, 18th April!)
« Reply #89 on: September 08, 2015, 07:33:51 PM »
It still bothers me that the green "Poi" bar is shorter than the others :).