Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in AI and Deep Learning by (50.2k points)

I am just finishing up an Artificial Intelligence course where, as part of the assignments, I was able to program bot in a multi-player environment (BZFlags). What I was able to do was to program the bot to interface with the world and play capture the flag against other bots or even humans.

What I would like to know is, what other environments are out there where I could do the same thing (programming bots for a game or in a specialized environment)?

I was able to do this with BZFlags because they ad an API provided so that I could send commands to my bots and find out information about the world around them.

1 Answer

0 votes
by (108k points)

When you start your work on a conversational UI, even a trivial one, you’ll need to answer these fundamental design questions:

Domain knowledge: What does a user expect this bot to understand?

Personality: What tone or vocabulary does the bot employ?

Domain knowledge

True artificial intelligence does not exist, so while some AIs can imitate humans quite convincingly or answer some kinds of factual questions, all bots are restricted to a subset of topics or conversational gambits. IBM's Jeopardy-playing Watson “remembered” facts and able to construct realistic natural language responses, but it couldn’t schedule your meetings or deliver your groceries. More naive commercial bots like SlackBot can successfully help users set up their Slack accounts, but aren’t designed to engage you in open-ended dialogue. 

Personality

Bots have historically been represented as something less than fully human to excuse their rote responses and frustrating lack of comprehension. This can be an opportunity for creativity and playful invention—the first bot I helped design was modeled after a famous parrot—but it can also be a minefield of unexamined assumptions. It’s disappointing that so many bots are personified as female or teenagers as if those groups were naturally subservient or not fully human. It’s probably better for everyone if your bot is personified simply as itself—a computer program—or something truly non-human.

There's Robocode, in which you use Java to program your Robot's AI, and then unleash him against other Robots and see how he does. NRobot is the .NET version of a very similar idea.

Browse Categories

...