2018 Plans

And thus ends 2017: all things considered, a rather disappointing year.

Looking back, it was probably the third worst year of my life (the worst being 2013 when I developed my chronic illness, the second worst being 2014 when I was coming to terms with it). I spent half of 2017 in a deeply toxic working environment which had a significant effect on my mental and physical health. I managed to get out, but became completely burned out from writing my book, and after that a complication from the life-threatening illness/injury/trauma of 2013 developed, and triggered a profound change in my emotional and mental well-being, which – six months on, and a very tough six months it has been – I’m finally now starting to get something of a handle on. As long as nothing else happens (I’m too young for this shit, frankly), I think I’m on the road to recovery now. I’m now settled in Canada, working in a great environment and enjoying being in a great new relationship, and these are damned good foundations for getting everything else back on track.

So, what did get done in 2017, and what will get done in 2018? Well:



Finished My First Book. Much of the first half of this year was spent finishing my upcoming first book, The Unpredictability of Gameplay, which is now officially “in press”. Situated somewhere between game studies, game design, and a number of wider engagements with the history of play, various kinds of gambling, and a range of other elements, the volume seeks to develop a framework for thinking through the different “kinds” of unpredictability that exist in games, and in turn to explore a number of interesting cultures or implementations of unpredictability (procedural content generation being one of the case studies!). It was a challenging task this year to write it, which definitely contributed significantly to my burnout, but I’m very happy with the final product. More will appear here about the book once we have a fixed publication date, but with my first ever monograph completed, it’s definitely one of my big successes of 2017.

Almost Finished 0.8. So it didn’t get finished, but a lot of extra work did get done, and it is closer to release than it was a year ago. The NPCs are basically finished, the conversation system is basically finished; this release has been a huge task, and far bigger than I ever imagined, but I’m pleased with what I got done in 2017, even if it wasn’t as much as I hoped. In the extremely difficult circumstances throughout the year, I’m happy with the coding I managed.

Moved To Canada. In 2017 I finally moved out of my home country of the UK and have now settled in Edmonton up in northern Canada, where I now work at the University of Alberta. Moving oneself 4,200 miles away is not just a major practical effort in terms of the transporting of objects, booking of flights, and all that, but also a tremendous administrative one – whereas administrative things build up piecemeal when living in one’s native country, moving to a new country means that one has to do everything, from health to housing from insurance to payment from bank accounts to mobile phones, all at the same time. This is then further complicated by the fact that some of these are contingent on some of the others, making the entire task quite dreadfully confusing. Nevertheless, this is now all done, and I’m comfortably settled in here; this was a big task which was simultaneously exciting and daunting, and I’m glad it’s done.

Wrote Many Many Papers and Chapters. Ordinarily I wouldn’t class this as an “achievement”, being just the standard activity of a (young) academic, but in such a hard year I feel that it is actually worth mentioning. I got out around four journal papers and at least that many book chapters – here’s a quick list of them, and some links for where you can read them if you’re interested.

“It’s like the gold rush”: the lives and careers of professional video game streamers on Twitch.tv. This paper is the first paper to emerge from my ongoing research project into Twitch, and focuses on the experiences of professionals at becoming professionals, being professionals, and how this status changes and reshapes their lives.

Gamification: What it is, and how to fight it. This paper was co-authored with my colleague Jamie Woodcock, who I will also be co-authoring my second book with, and in it we explored two different kinds of gamification, how to fight against the mainstream of gamification, and what a “true” gamification really looks like.

Gaming-value and culture-value: understanding how players account for video game purchases. This paper was co-authored with Yinyi Luo, a late-stage doctoral student and good friend, in which we examined why people pay for pre-order and why people buy games on Steam sales (and the like) with no intention of ever actually playing them.

Making science fiction real: neoliberalism, real-life and esports in Eve Online. This paper was published just a day or two before the end of the year, and examines some of the ideological content of Eve Online, how playing Eve affects the “real-world” lives of its players, and Eve’s esports competitions!

If you don’t have University access, some of them are already available on my academia.edu page, and the others will be in the next few days. Finally, alongside these papers, I also worked on a lot of book chapters; here are some of the books I either wrote something for in 2017 (to be published in 2018), or had published in 2017:

As above; although it’s standard practice for my job, in such a hard year, I’m glad I still managed to get out such a large volume of work. Quite a few papers I wanted to write didn’t get finished, but more than enough were.



In previous years I’ve almost always met the lofty goals I’ve set myself, but for 2018, I’m going to tone it down a little, and focus on a small number of essential things. There are only really a few core “output” goals I have (I’m not including goals here like spending time with my new partner, keeping fit and healthy, that kind of stuff, and nor am I including publishing papers, as that’s just a normal part of the academic life). But, nevertheless, I have four major objectives for 2018:

Release 0.8. This has to be done. It has been 90% finished for a year now, and it’s just getting ridiculous. My intention is to dedicate a significant block of March and April to getting 0.8 done, polished, bug-fixed, and finally released, and then I’ll be taking stock of my longer-term game design goals after that.

New Website. I think the time has come to move to a new website which more accurately reflects everything I do instead of just URR (especially as it is a smaller part of my time now than a year ago), and one with a new custom wordpress layout. I’m looking at a few possible domain names right now, but I’m pretty sure I know which one I’m going to settle on. This is an objective for some time around May or June or so this year, when I want to begin shifting everything over there. With URR becoming less of my focus, and my academic work becoming more of my focus, it seems strange to keep this as my domain name, honestly. Equally, it is a difficult one for people to read and make sense of, it’s difficult for people to say, and so forth, and I’ve run into this issue now more times than I can count. For the same reason, my Twitter account is now @mrj_games instead of my old account name, for this is both a more general handle, and a more easily-conveyed one as well. More on this in the next few months, but by the end of 2018 – hopefully more like the middle of 2018, but let’s see! – everything will be moved over there.

New Blog. Closely related to the above – as well as a new website that reflects more accurately my broader games interests, it is also time to reshape “the blog” in a similar way. There are two ways the blog will be reshaped, and two reasons for it. Firstly, the blog will continue to shift from a “dev blog” into a “dev and general games commentary blog”, and secondly, the blog will shift from a “weekly” blog into a “monthly” blog, and one without fixed monthly deadlines; a post will appear some time in each month, without precise timings enforced up-front.

The reasons for these changes are twofold. In the first case, although URR remains an active-project-on-hiatus and not an abandoned project, my academic games work is my central focus now, and will be indefinitely. This means my blog should reflect this, and should reflect what I’m spending most of my “games time” doing. In the second case, once the blog update schedule drifted away from weekly in 2017, I came to realise how much of a stressful pressure weekly updates had become. When I started the blog they were an exciting, enjoyable thing to look forward to every week, and something to help guide and centre my thoughts, but this is no longer the case. I’m not quite sure when this change took place – as with all gradual things, one only notices it when one is startled out of complacency and compares the present to the distant past – but it definitely did. This means I need a blog update schedule devoid of pressure, but one still with a degree of regularity, and monthly updates are definitely the way to go on that front.

So, as part of the transition to the new website, the shift to the new blog will take place in stages. Stage 1 will be continuing to post here as the new website is acquired and developed; Stage 2 will be co-posting everything on here and the new blog, but with a link over here that points to the new site; and then Stage 3 will be posting everything on the new blog, and putting up a front-page and top-of-blog notice on this site redirecting  readers to the new site. From that point on my intention will be to retain this website indefinitely (at least for quite some time) in order to direct interested readers to the new one, but posts will no longer appear here.

So yes: the new blog will be on a new website, will have a monthly update schedule, will cover general games commentary as well as game development, and will hopefully end up looking rather nicer than the present site does right now (not that there’s anything wrong with the WordPress standard, but it’s time for something a little more personalised, don’t you think?). I’m really excited about this relaunch, and there will be more information on it in the coming months.

Finish Book #2. My second book is already well under-way, on a more relaxed schedule than my first, and using a lot of important new knowledge I learned from the first book to help me write the second in a healthier manner. A proper announcement will be coming at some point a little down the line, perhaps once we have a cover to show, but basically the book is about Twitch, live streaming, and the labour politics of the games industry more generally, including that surrounding sponsorship, promotion, games reviewing, and the like. We’re (my co-author and I) currently hoping to have it released some time around the middle of 2019, as there’s a particular deadline we want to meet. Again, more on this soon!

Final Thoughts

So there you go: 2017 wasn’t the best, 2018 will hopefully better, but I’m scaling back on my ambitions in order to build things back up in a more sustainable way for the future. I’m excited for the future after a terrible year, and I hope you all are too. More from me soon!

Interlude II: The Interluding

Hello everyone! It has been a little while since the first Interlude, so I thought it would be appropriate to post a sequel.

Firstly, thank you all so much for the amazingly kind words on the other entry (and which I’ve had through email, Facebook, etc) – they really mean so much to me, and they are deeply deeply appreciated.

Secondly, I’ve now successfully moved to Canada, found a flat (or rather, an apartment), signed the contract, and done the majority of all the admin and bureaucracy stuff that comes from moving to an entirely different country; I still need to get a mobile phone that functions in this country, and there’s one or two University-admin things I need to complete, but otherwise I’m settled, moved, I’m “in the system” in the Canadian bureaucracy, and I’m getting ready to officially begin this job just a couple of days from now. This has been a pretty huge task in the last fortnight, but it’s now coming to an end.

Thirdly, on the health front, the physical symptoms are improving, and the psychological symptoms are (more slowly) also improving. Things are still tough, but I’m making some good choices to improve the newfound psychological difficulties this complication from my older illness has dumped on me. In the short-to-mid term, I think things might be on the up (slowly), but it’s always so hard to know.

Fourthly, here’s the cover for my upcoming book with Bloomsbury. I’m so happy with the design! I should have more information soon about an exact publication date, but there’s lots of roguelike-y goodness in there to be had.

Fifthly, any of you folks who are interested in Twitch and live streaming might want to read this paper I recently published about it – you can find a paywall-free version here. In it we explore the backgrounds of live streamers, the everyday work and labour of being a professional live streamer, and their hopes and fears about the future of their practice. This is part of a larger project on Twitch I’ve been developing alongside my colleague Jamie Woodcock in the last year, and we should have some more exciting stuff on this front to announce soon. Stay tuned.

So yes, that’s everything for now. I’ll hopefully be able to post more again once I have some kind of stability. I’ve also been thinking over some pretty fundamental questions about the website, how I blog, how often I blog, my general online visibility, these sorts of things, so there might be some big changes coming in the future (once I feel a little stronger). In the mean time, take care, everyone.

Defaults Finished, Negative Replies, Simulated Boredom

All the remaining default conversation options, and all the remaining expansions, are now complete. I’ve also altered the expansion code such that certain expansions aren’t tied to certain words or sentences within a language and guaranteed to appear whenever that sentence or word is said, but instead they appear with a % chance for every instance of a particularly word or phrase someone in that dialect says, depending on their sentence complexity (as we discussed before, sentence complexity is now tied to individuals, not to entire cultures). Here’s a couple of examples, courtesy of our good playtesting friend, Orangejaw Moonblizzard, and some NPCs who may or may not have had their origins changed using admin commands for the sake of testing (as you’ll notice these replies could not be for the same nation!)…



Negative Replies

The big thing this week and weekend has been working on negative replies – so, for instance, if you ask “Are we near the desert?”, the default response is “We are near [desert] in [direction]”, or whatever, but obviously a valid option is “We are not near the desert” – and this obviously applies to loads of questions. What if the speaker’s nation has no army, or dislikes art, or have never travelled, or doesn’t know any other civilizations, or lives on a tiny island and knows nothing of the wider world, or doesn’t worship a religion, and so on? We therefore now have a body of negative replies for people to basically say “no”, “that’s irrelevant”, “I don’t know”, or “I don’t care”, in hundreds of thousands of interesting ways!

These negative replies effectively now split up into two categories, which we could usefully call “general” and “specific” negative replies. “General” negative replies include replies like “I don’t know”, “I don’t remember”, “I’d rather not answer”, “I’m not authorized to give you that information”, etc, which can apply to a huge range of NPCs in a huge range of situations. Since the player will run into these fairly often, I’ve made sure that there’s a lot of variation in these general negative responses – although in many cases, of course, there’s only so many ways that you can actually utter some of these things, but here are a few examples.


“Specific” negative replies refer to asking a question where the answer is still answering the question, rather than a general answer, but still a negative. For instance, if you ask someone what they think a particular policy in their nation should be, they might reply “I have no interest in politics”, or if you ask someone whether they know any distant cities you might want to visit, they might say “I know of no distant cities” – and so on and so forth. Each of these is often more specific and more varied than the above, so I’m trying to bias people towards using these wherever possible, although they are naturally dependent upon particular cultural/political/religious situations.


Crowd Disinterest

You’ll all recall the “conversation interest” idea that URR conversations will have implemented – that unless you ask relevant questions, NPCs will quickly lose interest in talking to you. This is to stop the player just going through every single question one after the other, and to encourage you towards asking sensible, logical and appropriate questions. However, I realized the other day that I can’t just limit this to a specific NPC getting bored; if you have a bunch of general questions you’re asking every soldier, for instance, then you could just go from one soldier over to the next soldier in the barracks and start questioning them, ignoring the questions you already asked Soldier 1, but assuming (quite fairly) that they will probably respond the same way, seeing as both Soldier 1 and Soldier 2 are just default soldiers.

Therefore, I need to implement some kind of “crowd disinterest” solution, and I think I’m going to do this on two levels. On the “local level”, NPCs within a building will see who you’re talking to and what you’re asking them about, and also within a map grid (within your line of sight, or nearby), and will take note of the questions. So if you question Soldier 1 about pointless stuff, and they tell you to go away, then you start asking Soldier 2 pointless stuff, the time it’ll take Soldier 2 to lose interest will be shorter than normal; Soldier 3’s will then be even shorter; and so forth. Then, at the global level, I think we need a system whereby information about the player slowly spreads through cultures/cities/religions/etc in the entire world so that people get some idea of whether they should respond to the player or not. Neither of these systems will be in 0.8, but they definitely need to be there.

Next Week

Remember those two new conversation features I mentioned a while back – replies and counter-questions – and also all those questions that have more complex replies, such as lists? Some combination of those will be coming next week – probably the complex replies, I would think. See you then!

Default Conversation Options, Expansions, Scrolling, Personalities

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:


Words1 Words2Words3Default “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!

The Final AI Update

Ladies and gentlemen, I am pleased beyond words to announce that, as far as I can tell, all the AI requirements for 0.8 are finished! Now, I must qualify this: there are a number of NPC classes that do not yet exist in the game, but those that do exist perform almost all their actions, although there are a small number of events currently omitted (rare or unique events like religious festivals and the like). What this means is that around 80% of all NPCs now do 98% of their schedules, and I think they work correctly no matter what kind of strange behaviour the player involves themselves in with regardless to moving, saving, loading, spawning/unspawning areas, and so forth. As a result, I am indeed putting out the interim playtesting/bug-finding release in the next few days! If you emailed me asking to be on the list, you should find an email in your inbox with details of how to download the playtesting release, and some things to look for, within the week. For the rest of this blog post, therefore, I’ll go over the final additions and refinements done in the last week, and then from next week onwards, we’ll finally be on to dialect and speech generation! I’m so excited. But, first…

Finishing Castles

On Tuesday, Wednesday and Thursday I finished off everything that still needed to be done for castles, and so as far as I can now tell, all the possible NPCs that can spawn in a castle all function correctly with their schedules, their placement, their tracking whether the castle map grid is spawned/unspawned and whether the castle itself is spawned/unspawned, and so on and so forth. One major issue was with sleeping and waking NPCs, and in a few particular contexts guards who should be spawned sleeping in beds were spawned sleeping at their posts, whilst those who should have been on guard duty at their posts were on guard duty in their beds! This got fixed by copying a line of code which should have applied to all guards, but was instead applying to around 90% of them thanks to a typo. I then ran into some issues with entering a castle after the 1080 time of the day (which has 1440 “ticks”, each being ten “turns”) which is when all the guard schedules should switch over; for some strange reasons, the knights guarding the throne room were struggling to spawn correctly and causing a crash, which had *something* to do with beds, but I wasn’t quite sure what.

The “filled” doors are doors to the outside whilst the hollow doors are within one building, so here we see various guards and conscripts going outside. It’s slightly jerky due to all the debug processes printing, but I think it still looks rather snazzy, and I love seeing such a large volume of people going about their day without the game crashing! (You’ll also see slaves and knights in these gifs also just going about their daily business in the castle)


And then immediately after, the guards/conscripts who were guarding outside come back inside and head to appropriate beds:



Here’s a cache guard switching with another cache guards whilst various other guards/knights/etc on the same timetable also move to wherever it is they need to go in order to switch over:


Guards on upper floors wouldn’t behave

As a result, here are some guards and a knight in one of the towers finding their way down correctly, rather than misbehaving terribly:


I ran into a bug whereby I sometimes ran out of beds on certain generations, but only for knights and guards. It took quite some time to diagnose what was actually happening here, but it finally became apparent that when the smallest possible number of beds spawned in the corner/side towers (four per tower, so sixteen total) and the game was trying to place guards and knights in those towers, and there was a cache in the castle, there simply weren’t enough beds, so the NPCs were stuck trying to find a bed; this meant I had to specifically enable their ability to climb up towers to find another bed, but only specific staircases (because the main staircases are in the main castle, rather than in the towers)! The disconnected nature of the upper floors of castles is unique, and has basically required adding in quite a few exceptions to a lot of NPC behaviour which ordinarliy wouldn’t have to think about impossible paths on a given floor.

After that, though, things went quite smoothly with servants, slaves, and monks. Here we have a basement in this castle containing the castle’s slaves, who were all going about their day most of the time and then filed into the basement as time went by:


And monks sleeping at night in their quarters:


I then turned my attention to priests, who – in castles – can fall into two categories. In religious nations you’ll find a single large chapel with a priest walking around inside, whilst in nations that have freedom of religion you’ll find a large number of small chapels, each with a priest (and altar, book, etc) of the appropriate religion. Here’s a priest wandering around a full-size chapel for a nation dominated by a particular religion (you’ll note various servants coming and going at the same time), and then various priests in smaller chapels in a castle in a nation with a plurality of religions:




And I must say there were some cool religions in this castle. Jaguars for the jaguar god!


Then, servants. They work the same as slaves (aside from being on the ground floor instead of underground), and these worked pretty much immediately thanks to all the code in place for slaves. I then moved onto torturers and jailers, who should be spawning in a different section of the basement, away from slave quarters (if slave quarters are present) and who keep to a very simple schedule. Sure enough, these folks seem to work perfectly well now too. Here’s one of them wandering around (I also really love how under-castle jails look, don’t you?).


And heading to bed:


And here’s a torturer checking out the cells under their control (where unfortunate people will one day appear), and in a later version there will be various unpleasant things in the centre of this room, which will vary from nation to nation (so different nations have different methods of torture, if torture is their thing).


And slave quarters and a dungeon in the basement of the same castle, with two different staircases. This is a rare-ish scenario, but meant I had to make absolutely sure that slaves returning to their quarters knew which staircase to take (servants, being on the ground floor instead of the basement, don’t have this issue)…


And that’s pretty much all the NPCs for castles! In future versions I may add in a couple of extra NPCs, like book-keepers for archives and the like, and also I need to add in concubines at an appropriate point – and the actual leaders themselves! – but for now, castles still appear very active when the player wanders around them, and that’s what matters for 0.8.

Final Check, Final Bugs

The last thing to do before sending out the playtesting release is to active all possible AI actors and spend a little while wandering around the world and trying to break them myself. I’ve now done so, and to my absolute delight, I have thus far discovered that everything seemed to be working correctly, although I do still harbour a tiny, tiny concern that certain NPCs in certain houses might not always appear in their houses at the correct times, depending on the player’s actions… but I couldn’t produce any bugs here, so that’s down to be super-secret super-elite playtesting team to figure out.

I’m also going to implement a few debug tools for my playtesters, so they can now look at a debug print-out which shows all the important NPCs in that area, where their homes are, what their current tasks and schedules and objectives are, and so forth. This, naturally, will not be in the final release, but I thought it was a pretty essential feature to maximize the potential of the interim playtesting beta.

Although I have ever confidence in my team, the complexity of all this stuff does mean it has to be possible that the final 0.8 release will go out with a few minor issues still in place. This would be disappointing, of course, but so long as there are no AI related crash bugs present when 0.8 hits the shelves, I’ll be content – it would obviously be even better if there were no AI bugs of any sort whatsoever, but I’m being realistic. Pathfinding and scheduling is massively complicated already and made even more complex by the variety of permutations of spawned/unspawned/loaded/saved areas the player can bring into existence or push into the background through their movements in the game world, and despite my best efforts, I’m sure it’s still possible for an NPC to duplicate, or to vanish into nonexistence, or something else of that sort. But we’ll see! Maybe the playtesting release will be remarkably stable and nobody will find any problems whatsoever.


Next Week

DIALECT GENERATION! For the next week or two I’ll be working on the underlying mechanics for generating different styles of speech for each in-game culture (in the average game we need to produce around 40 very different styles of speech, and ideally many tens of thousands possible across a long enough stretch of time). I’ve started to draft this in various forms over the last month or so, and so next week I’ll give you all a run-down of what I have in mind here. After that we’ll be onto designing the conversation screen! I’ve also been giving this a lot of thought, and I have some idea how this is going to play out, and how it will connect to the dialect/sentence generation stuff I’ve been quietly putting together and experimenting with in the background. See you in a week!