Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Wow, what an excellent reply! It could be worth developing further just to build a task system that can handle that level of behaviour! There's a lot of fun ideas in there and I'm very curious to see how it could be further developed. Especially with the idea of getting dynamic feedback rather than simply working towards a fixed quota. 

I could have the manager constantly understating the effort of a job - "there's a small mess in the kitchen", just to walk in and find coffee and food everywhere (how did it even get on the ceiling)

As it happens, learning a bit more about how to get AI & NPCs in the game is one of the next things on my list, which could add a whole extra dimension to the game too. Imagine running into Bob on your way to fill up the printer, only for him to tell you to grab an extra ream of paper, or Sally walking round the corner as you're grabbing the donut off her desk!

Thank you so much for your thoughts - this comment is certainly one I'll be coming back to if I do take it further!

I don't mean to be overbearing, but if you might not continue this game then comments on development in general might be even more useful to you since you say you're about to learn a new topic...

If NPCs and their AI is up next on your list of things to learn about, then just make sure that you are aware of the things that could discourage you so that you don't quit prematurely. NPC and AI interactions can be overwhelming, and they can make a game worse if they don't feel right, so a big part of success early on in learning about them is to keep it small and work with what you know so far. If you're not careful, how you include them can require you to include other systems which take a lot of effort as well.

For one example: having NPCs with movement means you need some kind of pathfinding, and there are a lot of different ways to do pathfinding. Some pathfinding methods and their implementations can be very CPU-heavy while others are not. The first time I did dynamic pathfinding so that NPCs could dynamically figure out optimal movement patterns, I thought my code was buggy and that my game crashed when I ran it but really it was just that brute-force solving a shortest path problem using an inefficient algorithm every game frame update is a bad idea, especially on large complex maps. But there are other ways to do it, like I did in my GMTK jam entry where I set up waypoints and gave enemies specific paths to follow where they just go from waypoint to waypoint - the enemies actually can leave their path, at which point it gets a little more complicated, but most of the time they are just walking to the next waypoint. Or an example that would be closer to your office game's requirements would be Stardew Valley, if you've ever played that you may have noticed that the NPCs all follow paths with specific waypoints, and even if you get in their way then they will just stop and wait a moment until they get impatient and push through you with an angry emote. Or in lots of retro games the NPCs would just take a random step every few seconds, and they would have a bounding box that they could not walk outside of.

Another consideration is interacting with them, your menu systems need have more options, allow for dynamic changing of dialogue, possibly inputs depending on the game. All very doable, but my point is just to be aware that NPCs and AI often require major overhauls to other systems or even to have entirely new systems added to support them.

I see it says you used Unity to make your game. I've heard that Unity has some decent tools to help make some of these things easier, such as a pathfinding tool on the Unity Asset store (some of them might be free even though they're in the store) that does some of the heavy lifting for you by letting you set some parameters and then calculating optimal paths between various map areas at edit-time. I've been meaning to try one of those but haven't gotten around to it yet.

Whatever you do, if these topics feel overwhelming when you get into them (and they are huge topics), just know that you can always back away from one dark overwhelming corner of these topics and try another, because there are lots of different ways to do them and some are better or worse, or easier or harder, than others. For example, if you're struggling with getting your NPC movement to not look weird, and at the same time you're making a big new NPC dialogue and menu system, then I would not recommend learning how to implement an A* pathfinding algorithm with all the optimizations at the same time unless you're someone who is used to implementing complex algorithms for fun, and maybe not even a simpler waypoint-path system until after you're happy with your other additions. Even some famous AAA titles don't bother to move their NPCs around because it's so much easier that way.

I guess the overall moral of my essay-like rambling is to take it one step at a time because all of these topics have a lot to them but can be very rewarding even when biting off just a little at a time. Sorry I keep giving you so much text. I hope you do well and enjoy your development endeavors. I need to go get back to mine now, as I plan to release an update to my GMTK submission once we can update them since mine is so unfinished that it has long bouts of boring which I need to fix.

Thanks for taking the time to write this out. It's definitely not overbearing and I appreciate your insights too!

I'm definitely the sort of person who likes programming in systems, so I can easily see myself getting sucked into months and months of making an AI/NPC system (or even trying to generalise it for future reuse) without actually making something that needs it.

In general, I think I'll try to take it in as small chunks as I can manage and develop it in its own little prototype in short bursts, and then over time, that should add up to a more complete understanding.

I'm lucky enough to have had some exposure to this in the past, so some of it won't be completely new, but equally, I've never fully developed something like that for my own projects and I'm looking forward to the challenge!

Thank you again for your thoughts and encouragement, and the best of luck with your own updates too!