Book About Using Dialog to Make Better NPCs: Taking Requests

I have decided to begin doing what I have been threatening to do for a while now and write a (freely distributed PDF) book about using Dialog to make better NPCs. In writing the book my secondary goal will be to give examples related to most elements of Dialog programming, as I know from experience and some folks’ comments here that they can be helpful while trying to wrap one’s head around Dialog’s unique approach to authoring IF.

While making an outline, I have had some difficulty deciding what to focus on, so I now ask that you help me help you. What is it you have been wanting to do with NPCs but has not previously seemed feasible? (I would be interested in hearing your answer even if you have not previously considered using Dialog.) If you have tried coding NPCs in Dialog, what have you found challenging? Which parts of the Dialog manual do you feel could benefit from more examples?

I remember that learning Dialog can be very challenging (especially for someone who, like me, had no previous experience with the logic programming paradigm), but it has been long enough that my memory of the specifics is beginning to fade. All help will be appreciated!


I am currently writing my opis rex via Dialog. I would love additional reference material. I would gladly pay for your textbook.



Let predicates of the library are quite bare bones. Examples with realistic/logical checks and bounds for some of them might be illuminating for newcomers. It is especially crucial to decide correctly where to put those checks: In let predicates themselves or the npc driver logic predicates (like tell/ask commands from the player, or the agency code for the NPC themselves in (on every tick) rules)? My gut says second option allows more flexible code even if it might result writing similar checks in multiple sections.

1 Like

Thank you!

Considering all the help this community has given me over the years, I do not want price to be a barrier for entry. That said, I do have bills to pay, and the Internet now offers many ways for people to sponsor creators, so there is a good chance I will ask for donations in some form.

If I write the book, and it does not help you, I will not expect you to pay for it. All the same, your comment has put quite the smile on my face. Again, thank you!

I’ll bite. What is an opis rex?


Bad spelling: Opus Rex

My opus rex: My all inclusive king of novels. The epitome of my imaginations life work. :wink:

1 Like

Good observation! That is definitely something that could be expanded on.

Aha, that makes sense. Thank you!


I found it really hard with dialog to have a global numerical constant that gets checked and increased and decreased. For some reason I always had to bind a temporary variable to it first. Maybe I was just doing it wrong? So seeing some examples with global numerical variables would be nice (my particular game was set in 5 different time periods and so the ‘current time period’ was my variable).


maybe i’m dense, but the sections on topics/keywords in the manual could be clearer.

i get the use of (topic $) but the whole (topic keyword @ xxxx implies), etc. section is unclear to me.

1 Like