{"id":1705,"date":"2010-10-31T23:35:22","date_gmt":"2010-10-31T12:35:22","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=1705"},"modified":"2010-11-01T00:06:34","modified_gmt":"2010-10-31T13:06:34","slug":"im-so-proud","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2010\/10\/31\/im-so-proud\/","title":{"rendered":"I’m so proud"},"content":{"rendered":"

My little AI-driven MMO subscribers are now capable of fighting monsters, using the new, more-accurate combat model. \u00a0Watching them go and intelligently select attacks based upon custom game rules is pretty awesome. \u00a0:)<\/p>\n

They will prioritise attacks so that they’ll use their best attacks whenever they can, to try to maximise their DPS. \u00a0If your game has two or more different types of “health” value, they’ll carefully pick their attacks to target whichever type of health they can hurt the fastest. \u00a0Watching the subscribers out there massacring monsters is awesome.<\/p>\n

Stuff that still needs work:<\/p>\n

    \n
  1. AI subscribers are still using a hardcoded “desired distance from monsters”, instead of using the ranges set on the combat abilities that they want to use.<\/li>\n
  2. AI subscribers are currently working entirely based upon a strategy of “kill the enemy as fast as possible”. They aren’t doing any advanced tactics, such as trying to minimise their opponent’s ability to do damage, or buffing their own defences, or figuring out complicated multi-stage attack sequences where the best attack needs to be primed by using other abilities first (such as, for example, using an ability to charge up a “Rage” bar, which can then be used to power really strong attacks). \u00a0Coping with these multi-stage attack sequences will be handled in a separate system, to be tied in with subscriber level. \u00a0(Which is completely different that their character’s level — details later)<\/li>\n
  3. AI subscribers currently don’t ever choose to use healing powers on themselves.<\/li>\n
  4. AI subscribers currently don’t understand damage-over-time effects. \u00a0Currently, they assume that a damage-over-time effect will deal its total damage all at once, immediately. \u00a0So if they have an enemy with 5 health, they will prefer to use a 1-damage-per-second-for-ten-seconds attack, over a 7-damage-all-at-once attack, even though the DoT attack will take five seconds to defeat the enemy, while the other will kill the monster immediately. \u00a0This needs a bit more thinking, to really sort out the right heuristic for the subscriber AI to use to pick which attack to use.<\/li>\n
  5. Monsters aren’t attacking at all. \u00a0Need to figure out the best way to do monster AI. \u00a0Probably they should just pick attacks randomly, or use each attack in sequence, or something like that.<\/li>\n<\/ol>\n

    Of these, #3 and #5 are going to be really easy to add\/fix. \u00a0#1 and #4 will be a little bit tricky, but hopefully not too bad. \u00a0And #2 is an issue for later.<\/p>\n

    In general, very pleased with how this is all going! \u00a0Tomorrow, I’ll get monsters attacking and subscribers using their healing powers (if any).<\/p>\n","protected":false},"excerpt":{"rendered":"

    My little AI-driven MMO subscribers are now capable of fighting monsters, using the new, more-accurate combat model. \u00a0Watching them go and intelligently select attacks based upon custom game rules is pretty awesome. \u00a0:) They will prioritise attacks so that they’ll use their best attacks whenever they can, to try to maximise their DPS. \u00a0If your…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[24,25],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-rv","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1705"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=1705"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1705\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=1705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=1705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=1705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}