Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
How Disgusting
Feb 21, 2018
The obvious answer here is AI war. The developer put out a lot of documentation on the arcen website, about the development process and his design goals for making the titular AI. The articles are kind of hard to google but can be found on the arcen blog by going back far enough.

Someone already mentioned Starsector, which has a great behavior tree. Interestingly, Starsector uses separate agents for weapons, movement and abilities, tied to a "director" AI which makes them more coherent.

There is also a site called codingame.com where you can learn how to develop bots and have them compete against other bots. Use any language you want, too.

Language is another consideration if you want to make very complex bots. You want Java or C# to take advantage of lists and linq. They're both much slower than C++, which is another reason you don't see a lot of elaborate AIs in games. For most small commercial tasks and for resume fodder any language is fine.

Now the bad news. Games aren't a good field for AI for multiple, mostly financial reasons. Developing content doubles your investment, developing premium content quadruples your investment, and developing AI for games creates no added value whatsoever. Also most people who have the right skillset and experience to make good bots work with databases and/or for large institutions and the game industry simply cannot afford them. There is also a question of time. Game developers have to make simple, tried solutions in short timeframes, since they're working on multiple sweatshop projects in series/parallel. AI dev is the opposite, involving a lot of experimentation and patience.

Ask away if you are interested in this subject, I've got time.

Adbot
ADBOT LOVES YOU

How Disgusting
Feb 21, 2018

Owlofcreamcheese posted:

Like we generally don't want ai that actually figures out the actual best way to play, we want a fun opponent that does lots of stuff in a way that 'feels right" and that is way harder and mushier a goal.

Thing is, once you have a human-level bot (human level for that game and level, not human level in general which is the definition of strong ai), it is almost trivially easy to increase its reaction time to human levels using a coroutine and/or a timer, and to give it a chance to make a mistake or suboptimal move (do random thing or choose a move from listOfNoob).

You can even give the bot different personalities, eg. a fanatic that doesn't take sources of damage into account, a noob that doesn't account for disables and debuffs, or a hunter that prioritizes safety and terrain and makes fast, decisive strikes.

It's almost like DnD, you want your bots to be interesting, but you don't want them to jump out of cover yelling SNEAK ATTACK before decapitating the player and running off into the woods laughing.

How Disgusting
Feb 21, 2018

Fangz posted:

It's not trivially easy to make an effective AI into a fun AI at all.

It's a chance to make a random move (or do nothing) every tick the AI updates, which scales (inversely and linearly) with the bot's difficulty setting. It's literally one line of code when you run the bot. Go teach your grandma to suck eggs.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply