Simple Programming Challenge

Started by
24 comments, last by ATC 11 years, 7 months ago

There's an unrealized issue here: "Perfect" AI is not fun. Play Quake3 with Xero on nightmare difficulty on the last level. He's pretty much a near perfect aim bot with a rail gun who will one-shot you just about every time. It's only possible to beat him because he's not "perfect". If he was perfect, he'd be impossible to beat.

You're right. It's because optimizing the AI to be as good as possible at the game is not fun for players, because today most AI can be made to be much stronger than any human player (in FPS games, chess, strategy games, etc.).

Instead of having the AI optimize for the goal of "play the game as strong as possible", what if its goal was "play the game in such a way, that the human player playing it has the most fun."

That's much harder, yes. The AI algorithms would need to make use of human psychology knowledge and such, but the end result might be better.

One example where I remember a weak point of AI was when playing one of Assassin's Creed games. Near water, the AI was chasing me, and many of them ended up jumping into water and dying. It was very sad. If the AI had predicted the results of its actions, it would've seen that "jumping forward" would result in its death, and it probably shouldn't do that.
Advertisement
In the case of FPS game AI, I think having AI that is very stupid in terms of tactics and navigation, but has "perfect" shooting skills and never misses is not fun.

OTOH, have the most advanced AI but give him very poor aim. If it's so smart, it will realize it can't win by "outgunning" you, and will have to resort to other ideas like trying to flank you or whatnot. I think that'd be a fun AI to play with.
In most game AI ( 3D shooters ) the entities have to have a degree of randomness, as their default weapons programming gives them perfect aim.

It's imposable to get perfect humanistic AI, as there are millions of factors that make us "unique" in our behavior.

I cannot remember the books I've read any more than the meals I have eaten; even so, they have made me.

~ Ralph Waldo Emerson

this was a programing exercise on Carl University, faculty of Informatics and math:

the program gets on input the position of a horse. The chess desk is empty, with only the horse.Program should plan the path of the horse so that the horse visits every position on the desk exactly once. (is it allways possible?)

this was a programing exercise on Carl University, faculty of Informatics and math:

the program gets on input the position of a horse. The chess desk is empty, with only the horse.Program should plan the path of the horse so that the horse visits every position on the desk exactly once. (is it allways possible?)

http://en.wikipedia....ight's_tour

One use of 'always winning' AIs is putting them up against another AI and seeing the consequence. It's always fun to see computer vs computer chess matches.
Another thing is to possibly see how the AI reacts to different situations. For example, one can make an AI that learns via trial and error(tries pressing every possible key on the keyboard, tries moving the mouse around, clicking the mouse randomly, and seeing what happens, then storing results in a database that can be later referred to) and then make the AI play a simple game such as pacman and see what happens. (The AI should know ofcourse that dying is bad and getting a higher score is good)

Also the reply to the original topic, look up the Petersburg Paradox(http://en.wikipedia....ersburg_paradox). It shouldn't be too hard to make a program that simulates a million games and see the average outcome. I did that and found fluctuating values, at one try it would get an average outcome of say 18, and in the second try I would get an absurd value like 124. I did up to 1 billion iterations and the average was something around 25.

Edit: And yay! My first post!
Edit 2: Ack! For some reason I can't get the first link to work(It redirects to Knight). Just google Knight's Tour and click the wikipedia page.
One time I tried to write a "code cracking" algorithm that would try every single permutation of the alphabet to break a code.

Basically, it was a challenge between my friends and family to create our own glyph alphabets and use it to write a coded message. Then we had to try to crack each others codes. I knew they were going to take the simple approach of just using glyphs to substitute letters of the alphabet. So to remove the layer of crypticness of their alphabetic glyphs I knew I could just substitute a letter of the English alphabet for each of their glyphs. That would turn it into a scrambled alphabet code rather than a glyphic code. When I realized that, the programmer's gears in my head started turning... I knew that, theoretically, their codes could all be broken by a computer program that permutated combinations of the alphabet and attempted to recognize the correct key when it could identify common words like "the", "and", "a", "is", etc consistently throughout the document. So I wrote the program to do it, and let it start hacking away at the codes with its brute-force approach. Meanwhile, I worked on solving the puzzle by brain-power.

To make a long story short the human brain broke the codes within an hour or two. Two days later, the permutation algorithm STILL had not broken any of the codes lol. There's just WAY too many permutations of the alphabet! After all, that's 26 different letters that can be arranged in a huge number of orders (I forget the exact number of permutations). So I killed the program and shelved the idea, though it was an intersting learning experience. :-)
_______________________________________________________________________________
CEO & Lead Developer at ATCWARE™
"Project X-1"; a 100% managed, platform-agnostic game & simulation engine

Please visit our new forums and help us test them and break the ice!
___________________________________________________________________________________

This topic is closed to new replies.

Advertisement