Welcome to 2016 everybody! This is going to be a fairly substantial post, since with the last two entries being non-game-dev ones – announcing my first book and 2015 in review – a lot has built up. I was originally going to do two posts, one on bugfixing and pathfinding/scheduling (this one) then another on finishing clothing generation (next week) but pathfinding/scheduling has been such a huge and challenging task that, actually, I’m going to keep them as three entries, simply because I haven’t finished it yet despite basically working on it all day every day for the last week. So my goal by the end of January is to get all of those things finished, and the addition of a few other required elements, and after that we’ll be moving onto conversations, dialects, speech and the like, which is the last component of 0.8! Though it is also a fairly sizable one. Nevertheless: this week we have the the fixing of a truly momentous list of bugs and minor issues that have arisen in the 0.8 development process up to the present date (some of which are rather amusing).
So: as far as I can tell, all the remaining significant bugs of 0.8 have been dealt with (excluding of course bugs that are arising in the process of handling the scheduling/pathfinding on thousands of important NPCs across a massive world map of varied saved/loaded/unspawned areas and buildings, but those are being dealt with as I go). Here’s a run-down:
- People in banks now only sit once and then go straight back out, rather than sometimes moving from chair to chair for no apparent reason.
- Fortress people actually go to the right houses/barracks instead of soldiers rarely wandering into a house and vice versa.
- Fixed a minor issue where there was a tiny, tiny chance for tiny portions of roads to generate incorrectly and result in dead-ends (I have seen it literally only once in the last 100+ world generations I’ve done for testing purposes, but I think it is now sorted).
- Resolved a weird problem in fortresses where people would bounce back and forth between guards; this was due to certain tiles requiring permissions that shouldn’t have required permissions.
- Diplomats no longer just wander out of their embassies as soon as you go inside, and then have no idea where to go.
- A huge range of issues with castle generation have been resolved, and as far as I can tell, all castles generate correctly regardless of aesthetics, cultures, religions, inhabitants, etc. Hurrah!
- Monks and abbots no longer sometimes all decide, collectively, to run around like headless chickens for a few minutes upon entering their monastery.
- Graveyards have been disabled, pending a significant redesign in the future to aid in clarity and the player finding what they’re actually looking for (this will associated with redone history/family generation).
- Delegate housing in monasteries in democratic nations is no longer sometimes squished up against a wall.
- Stopped abstract NPCs who move between grids to perform an action from finishing that action one grid early.
- The “troll churches” (where there are multiple staircases to multiple parts of the same floor) have been removed, partly because they were proving deeply infuriating, and partly because it added a lot of unnecessary AI pathfinding confusion. I’m sorry for ever including these bloody things.
- Fixed yet more issues involving the numbers of guards to be spawned for various buildings in city centres – I think this set of problems are finally all resolved now.
- Fixed an issue with hunter-gatherer houses containing more than two doors, the entering of which tended to yield a crash.
- Middle-class districts can no longer generate layouts of houses that resemble swastikas. This was… unfortunate.
- Fixed a rare issue where gardens would take precedence over more important things in city centres, leaving some NPCs with nowhere to go/live/work.
- Fixed a rare issue where the leaders of groups of NPCs would sometimes “bounce” against the end of a road and turn around.
- Ensured that groups of NPCs don’t sometimes just run into dead-ends, but path to some other road just like any sensible person would.
- Fixed an issue where guards for an embassy would rarely fail to spawn.
- Fixed an issue with crowd NPCs disappearing upon save/load.
- Discovered an issue I thought long-fixed in middle-class houses placing their internal doors in weird places, and resolved it.
- Slum houses that are 3×5 or 5×3 in tiles now generate correctly.
- NPCs entering generated slum houses are able to find the appropriate place to go and find their way back out again, rather than freezing due to “thinking” the slum house is a lower-class house.
- Certain shops no longer cause a strange crash in towns.
- Town roads are no longer sometimes at a strange height compared to the surrounding area, and can now only be one z level above or below their immediate nearby tiles. This looks far more sensible.
- There are no longer issues with the road systems in middle-class districts… I think.
- Delegates now actually work in middle-class districts and don’t freak out from the massive range of homes they can choose from.
- Delegates now work correctly in upper-class districts, and most challenging of all, they work correctly in religious districts too – you can now find delegate homes in all appropriate places and go inside, and find what is basically a more ornate version of a middle-class house (unless the delegate lives in some other more specific place).
- Flags outside mints that contain delegates are now placed correctly.
- Resolved a problem with single-tile islands of territory.
- Fixed weird bug with delegates in districts that contain both “district” delegates and “other” delegates, and they didn’t always spawn in the right place…
- Fixed yet another middle-class issue where houses would sometimes combine with one another to form a massive uberhouse that stretched across a significant portion of the district. Bizarre.
- Fixed a minor issue with the territory map that would sometimes show settlements where there weren’t any.
- The player is now actually assigned to the right civilization!
- Clerks and diplomats have been elevated to the status of “important NPCs” and will therefore be able to gain unique identifying information.
- I thought I had fixed this last time, but now for sure – entering certain buildings does not encourage all the servants/slaves to bolt out the front door.
- Resolved a significant suite of bugs involving stairs, NPCs, the player’s location, pathfinding, moving between floors, etc, that lead to a whole host of crashes when NPCs tried to path to their own location, or stepped onto stairs where someone else was already using them, etc. The only tile where multiple people can stand is now a staircase, which can hold an infinite number of people, although realistically this will almost never be above two, and should absolutely never be above three.
- Fortresses now contain merchants and outdoor shops – they have a larger number normally than city markets, and can contain multiple shops of the same type (whereas cities/towns cannot).
- Vassalage nations always have enough towns to make being a vassalage nations worthwhile, and if they don’t and the game cannot fit in enough towns, their military policy is changed away from vassalage.
- Roads always have a black backdrop on the territory map.
- Fixed an incredibly rare bug with religious districts that also contained rivers by ensuring that a bridge can always spawn to give access across the river.
Next week could be a lot of potential entries; either a run-down of the second bullet hell world record I picked up a week or so ago, or a look at a bunch of new graphics for 0.8 in the form of tribal and nomadic clothing, or the conclusion of NPC scheduling (if we’re really lucky!), or something else. I’m also sketching out both how the dialect generation system should work, and how the actual conversation system will work, and I’m really looking forward to discussing these with you all in the coming weeks. See you next week for AI, clothing, bullet hells, or something else!