Technical bits about the “automated NPCs”

This is a follow-up to my idea to use NPCs as a “work force” to do the boring chores for the players whenever they don’t want to bother. Again, please notice that there is a CHOICE. I *want* the sandbox. I want the focus on multiple activities beside combat. I want these to MATTER and be interesting and hopefully FUN. But I still want the players to have a choice and the possibility to unload what THEY consider a boring duty on a automated process.

I know that the idea is technically hard to implement, because I cannot just blink and have a complex system of AI and world pathing automatically implemented. So I know it wasn’t realistic. But to arrive to it I had built a project that worked on top of what I considered feasible, using the same functionalities that I can find in other games, just mingled together to obtain the result I desired.

I didn’t add these technical details because the post was already too long on its own. So here some details not about the design theory behind, but about the implementation itself.

The user-programming of the NPC schedules isn’t complex at all and works as a “connect-the-dots” game. You have a screen with the detailed map of a zone, you select one of the NPCs under your control and then start “plotting” the schedule on the map. The dots/waypoints aren’t put there by the players. All the waypoints and actions available for selection are HARDCODED. Each zone will have all the possible dots, junctions and actions “greyed-out” and available for selection. You can recombine these elements the way you like, connect the waypoints the way you like (if you see they can be possibly connected) and select the actions that are available in that point. But all these possible dots, junctions and actions are set by the developers as the map is created.

A basic, readable scripted language made of “chunks” that the players can recombine by interacting with it through a braindead interface.

Interface:
Left mouse button – Selects and “connects-the-dots”, adding waypoints and linking them together
Right mouse button – Opens a contextual menu for each waypoint, listing all the possible actions/logics for the NPC on that point

All the schedule-programming of the NPC is supposed to work through the mouse. As you connect these dots and select the actions, you’ll see the NPC schedule as a scripted language in a window below the map. You can use the mouse interface to plot everything on the map as you can just type the commands yourself if you so choose. With the possibility to save these “programs” and reuse them as “quick templates” for other NPCs.

The language could then include “advanced” functions like waiting times, time checks and other simple logic operators with basic “if..then” conditions and loops. If some players need them but still have difficulties using them, there are still the message boards where I’m sure you would find plenty of templates to reuse.

And please notice that this would form a strategic, embedded game that could be already terribly fun and addicting on its own.

If this idea is STILL too complex, well… Let’s just stop to complain about innovation and settle with what we have available right now.

Leave a Reply