2019/09/30

Monday Rambling

Recently I started reading a diary written by Steve Grand, of Creatures fame, and it gave me a spur of inspiration to start documenting everything I do a bit better because there's this continuous frustration that I'm not publicizing my work enough.

Besides my day job, OpenHoW takes up the bulk of my time these days and it's progressing really well - admittedly it's less and less likely it'll be playable by the end of the year as originally hoped but regardless we've gotten more done than expected.

For the last few years however there's been another project that's had my attention on-and-off which is heavily motivated by my interest in AI.

When beginning to explore ideas for the implementation of AI in Decay, which was a first-person shooter being developed with a couple of other guys using a heavily modified Quake engine, it was my intention to avoid introducing monsters that were as primitive as those seen in Quake, where there only drive is to almost aimlessly move towards the player.

The AI in Decay was intended to have weights to influence their behavior, which were described as 'emotions'. The use of weights to determine behavior isn't unique however in this case the weights were determined by different conditions happening around the AI - for example if a monster became bored then it might decide to attack something neutral, or if it was frustrated (e.g. losing a fight) then it might start attacking more aggressively etc.

We also introduced relationships similar to how Half-Life had implemented them, but I was also interested in allowing the AI to set relationships on the fly based on how other creatures reacted to them. The scenario in my mind was an instance where there might be a totally innocent looking creature in one of the swamp levels which becomes interested in the player (thanks to the weighted responses) but then based on how the player reacts a relationship would then be created at that moment which would have repercussions for the rest of the game.

The goal for navigation was a mix between a navigation mesh and data generated on the fly based on the player running through the level. Other than prototyping this never got very far.

A lot of this was very naive as it was totally out of my experience but it gave me a lot of ideas I wanted to try in the future.

Following Decay's eventual death I toyed with the idea of AI driven pets in a combative game, similar to Black & White but in third-person and in a smaller scope. You would level up your pet by exploring around a level before approaching the other player and attempting to take them on.

Unfortunately it was difficult to settle on an engine to use at the time so this never went anywhere other than some basic ideas and concepts. I'm still pretty keen on the idea and perhaps something I'll take another look at down the line now that more options are available

No comments:

Post a Comment