Share this project

Done

Share this project

Done
The Adventurezator is an emergent adventure game about creating emergent adventure games!
The Adventurezator is an emergent adventure game about creating emergent adventure games!
600 backers pledged $24,192 to help bring this project to life.

NPC behaviors: Schedules & Owned Stuff

On this update we'll take a closer look into how the NPCs will behave on the Adventurezator. Jimmy Utterström asked us a question in the comments, and I decided it deserved a full post about it, since it will play a big part in shaping the gameplay of all adventures created with the Adventurezator, and we so far haven't yet given much information about it.

The two features I will now detail are right next on my development queue, and the two major systems to be implemented before we can start alpha testing - so feedback is now highly welcome, before it starts to get real.

Schedules

NPCs by default won't do much if not customized - they will occasionally wander around to a random location during the day, come back frequently to their starting position, try to find an available bed to rest in the night, and occasionally take a leak or take the default action on any objects that are close to them. Pretty good to make a village feel a little alive, but hardly Oscar-winning stuff.

That's where schedules come in. When right clicking on an NPC in the level editor, one of the options will be to set up the NPC's schedule. As always with the Adventurezator, our goal is to design everything to be very simple to use, yet flexible and powerful enough to give plenty of variation on the gameplay experiences that can be created. With that in mind, an NPC's schedule will simply be a list of Tasks, which consist of:

task = an object, a starting hour, an end hour, and a weight modifier

This means that at starting hour, the NPC will try to move to the designated object, and then will perform the default action on it (like sitting on a chair, for example), until the end hour. If there is more than one action defined at the same time slot, they will be distributed according to the weight modifiers.

Let's take a look at two similar examples to see how everything ties together. Let's say we want Bob to be a guard, and have him sitting in a chair, guarding some door.

Bob's Schedule:
Task #1 = Chair, 09:00 - 17:00, 95
Task #2 = Potty, 09:00 - 17:00, 5

(it may not look so simple when put like this, but there will be watches, sliders, and pointys-and-clickys to set it up easily)

This will have Bob sitting in the chair most of the time, but he will occasionally (and randomly) leave to take a leak - leaving a window of opportunity for the player to do whatever nefarious business he has beyond Bob's door.

If we want Bob to go take a leak at very specific, non-random times, just like the more classic adventure character behaviors of old, we could change the schedule to this:

Bob's non-random peeing schedule:
Task #1 = Chair, 09:00 - 17:00, 0
Task #2 = Potty, 11:00 - 11:30, 100

This will have Bob always go take a quick pee at 11:00 (each real second equals one in-game minute, so we gave him half an hour to do his business, which will actually just take 30 seconds)

Owned Stuff

Level Creators will also be able to add a list of objects owned by NPCs. If anyone picks up or interacts with any of the objects on this list within sight of it's owner, the owner NPC will attack the offender.

So now we could add the door next to Bob's chair to it's list of owned stuff, and he'll actually be a proper guard, kicking the ass of anyone or anything that tries to mess with it. How cool is that!?

Using these features of scheduling and ownership, a level designer could even designate one object to be owned by one NPC, but not have him be near it frequently, and setup another NPC's schedule to use that object sometimes. This way, they might eventually get into a fight on their own about it! Or the player might have to think of something to bring the owner of the object close to it to see it being used by another NPC and provoke a fight! If that can't be called emergent gameplay, I don't know what could!

As I will be implementing these in the very near future, I appreciate any feedback on it - now is the time!

Village Concepts

I had promised you concept art of the village level of the campaign, and so concept art you shall have. This post would just look too plain and boring without it:

This is actually two neighboring levels in one big shot. This is the most complex level is the campaign, and will thus serve as our performance benchmark.

Funding Progress

We've almost crossed the completely-arbitrary-but-psychologically-important-nonetheless 100 backers barrier (99 as I write this), and have gathered 12.6% of our goal.

It looks small, but after having just looked at some kickstarter stats, I calculated that the average number of backers for SUCCESSFUL projects is 91.5!

Other encouraging facts: 81% of projects that raised more than 20% of their goal were successfully funded - we're not far from that. And that raises at more than 90% for those that raised more than 30%.

All that doesn't change the fact the right now our chances look a little bleak. But if we go down, we'll go down fighting. Inch by inch, backer by backer! The inches we need are everywhere around us - And we're going to fight for that inch!

I'll have more to say on this soon. For now, I'll just leave you with this:

Let's do this! Help us fight for those inches!

Comments

Only backers can post comments. Log In
    1. Jimmy Utterström on July 20, 2013

      Okay! Well then I hope that it's something we'll maybe see in the future :) As I think it would allow for a lot more dynamic games. But well, let us first hope the kickstarter campain will be successful. At least you've gotten quite many new backers the last few days :)

    2. Pigasus Games Creator on July 18, 2013

      Thanks for the feedback Jimmy!

      We are planning planning on implementing these types of triggers yet, but it's something that could get implemented after release. We might implement an "Advanced" view to enable such systems, but for the moment it's something I'd like to avoid for two reasons: to keep it simple for the players, and because we don't have the pockets to implement something like that, even if we pass the kickstarter.

    3. Jimmy Utterström on July 18, 2013

      Thank you for a very informative and nice update! This was a quite good answer to my question I have to say. The weight variable for the shedules llooks really neat, as it will open up for randomness and by that offering greater replayability. As I mentioned earlier I was afraid that almost all NPC behaviour was hard-coded for that specific NPC-type. Now I know that's not the case. And this looks really promising.

      As a bit of feedback to the "owned stuff" feature I really think this would be a great feature to implement. This will also help creating more dynamic games/levels and it will also allow the creating of more vivid environments. I really like this idea.

      Another thing I was thinking about was the possibility (if the feature does not already exist) of adding, quite simple, triggers. For example in if you have a level where the player need to take an object which belongs to someone else. A possible trigger there would be if the player takes the object without getting detected. Then when the NPC detects that the object is missing an event is called which make the NPC go to an other room (to look for the player). I don't know if you've already planned something like this or if you consider it to be too advanced for players. But I think you could be able to implement such a system and still keep it as simple as the rest of the features.

      The nice thing here is that you don't need to make the trigger events that advanced. Because if you implement the feature which allow NPCs to own objects then the NPC will automatically attack the player when he/she detects him with the object. So everything needed here is to be able to send the NPC to an other room when he realises that the object is missing.

      Keep up the good work! If you manage to pull this off it will really be an original game and I'm sure you a lot of people will be interested if they just get to know about it.

      Enlish is not my native language by the way, so don't be afraid to tell me if you don't understand something I wrote ;) My explanation of the trigger feature maybe wasn't that clear. ;)