Making Smarter NPCs: A Devlog

Published 2024-07-11
NPCs can make... or break the feel of your game world. I'm on a quest to try to get it right. In this devlog, I explore a bit of my design philosophy, and show my progress after my first development sprint of the summer.

The NPCs I'm working on are for my dream game, Willard; a platforming adventure game with RPG elements, and a robust City-Building/Tower Defense mode where you befriend and recruit villagers to help you defend yourself in a post-apocalyptic world.

DISCORD LINK
Join the Discord server for more discussion about Willard, Unity Development, or other game dev related topics.
discord.gg/4xKhVUDNuH

🔗PATREON LINK🔗
If you’d like to buy me a coffee, a burger, or just check out what’s happening, you can visit my patreon page here:
www.patreon.com/NightRunStudio

🛑 MUSIC 🛑
All of these songs are tracks I’ve been working on for the Willard Soundtrack. You can check out the Willard Soundtrack if you ‘d like to do a little more listening.

🔊 All Other Songs
Willard Soundtrack
Listen: Willard Soundtrack Pla

All Comments (16)
  • @NickNiccelson
    This is exactly the type of design consideration that a "next-gen" game should be considering as standard for years, yet got neglected by the mainstream scene for years while chasing diminishing returns in graphics. You sound like a smart guy and depending on how far you take this thread, your results could outstrip the dynamic world of Baldurs Gate 3. Don't stop.
  • Great work you have going here, and I love the first minute of the video. Something I would suggest is a comfort/happiness stat that can be affected by there leisure and spirituality. Then depending on is there happy or not it could effect there work performance and maybe cause them to sleep and eat? Just a suggestion, there are a lot of way's you can go about doing such a complex system like this and I look forward to seeing your progress throughout the summer!
  • @NZMPlays
    This is an excellent idea and approach to making NPCs more visceral and interesting. I hope it ends up being a fruitful process. Just in itself, it could stand as its own Sims-type game where the player just watches what the NPCs do and helps guide them to optimal happiness. But youre on the cusp of a very deep set of systems here. Each job can have a number of tasks, people can go to stores and interact with other citizens who actually work in those stores, and those workers are the only ones with access to job specific sub-routines and so on. This is a fun way to programmatize working and NPC behavior. Nice stuff man!
  • @charksey
    Like Majora's Mask, the Sims, Rune Factory! :D I love it!
  • @dayencreation
    Immediately liked the way you present! Great to see how you put together your video. Starting to grow my channel again and found you! Good luck!! ^ ^
  • @playaneta
    I hope your game is up there Stardew Valley. I like your hard work. Have you thought about using Voice AI for Player and NPCs?
  • @TinyPixelDev
    Nice intro of the video you really make me laugh 😂 😂
  • @yokami_9408
    It make me think a lot about Rainworld's AIs
  • @TRArchi
    Very interesting good job ;)
  • @SlainMascot
    Subbed! Just started making videos again when I stumbled across yours! Love it!
  • @jannikf2504
    Your step one is what I am currently failing at. I just don't know how to learn this stuff. I have looked up state machines, behaviour trees and GOAP but I lack the everything to implement it into anything
  • @emerialon5612
    Ive been wondering doing something similar in my game i started making some time ago. I didnt get to NPC logic yet but I already mapped what I will need to make. Decision system, answer map for default answers (like strongly agree, not sure...) and library of modified answers. Yeah and bacstory and memory. According to what the character does it affets its answers and personality. Someone talking with lord too much can start answering to usual smart talk what doesnt affect him "how unfortunate" but lord drinking with commoners could just "not my problem" or "dont care". Use it if you want. I would like to see some aplication of this system before I will actually get to it.