Everything should be stated as simply as possible, but not simpler.To make the game entertaining and interesting, it is not necessary to make computer-controlled opponents smarter. In the end, the player must win. However, letting him win only because the manager of the opponents of AI is badly designed, is also unacceptable. Interest in the game can be increased if the mistakes made by the enemy are intentional. Carefully adjusting the mistakes of opponents, making them intentional, but believable, programmers will allow opponents to look smart and at the same time ensure the victory of the player. In addition, by monitoring AI systems and appropriately controlling them, you can turn situations in which opponents look silly into an interesting gameplay.
- Albert Einstein
A common mistake in the development and implementation of AI systems in computer games is in too complex a design. The AI developer can easily get carried away by creating an intelligent game character and losing sight of the ultimate goal, namely, creating an entertaining game. If a player has the illusion that a computer opponent is doing something clever, then it does not matter how the AI (if any) creates this illusion. A sign of a good AI programmer is the ability to resist the temptation to add intelligence to where it is not needed, and to recognize situations in which more "cheap" and simple solutions are enough. Programming AI is often more like art than science. The ability to distinguish between moments in which cheap tricks are enough, and those where more complicated AI is required, is not easy. For example, a programmer, having full access to all structures of game data, can easily cheat by making the NPC omniscient. NPCs can know where the enemies are, where the weapons or ammunition lies, without seeing them. However, players often recognize such cheap stunts. Even if they can not determine the very nature of cheating, they may have a feeling that the behavior of the NPC is not like the natural.
When I was young a long time ago, I did not have any friends. I needed to communicate, I dreamed to have someone close, but I could not find the understanding among other people, therefore I found salvation only in books and computer. When on the market came the first CD-drive, I got my first CDs with the games. You probably remember, such games as three hundred games, five hundred, seven hundred ... I had a program “Dial” (an interactive companion) on one of my CDs in addition to the arcade games and shooters. No one can think of more boring pastime than communicating with the chat-robot, but I liked it. I began to realize that in order to have a true friendship is not required a physical contact, it takes only some warm and sincere words to be understood.
I was growing up and getting higher, the bigger I was the more I read, because I was able to reach for the higher shelf in the bookcase every year. One day, when I was ten years old, I grew up to the shelf with the science fiction authors: Azimov, Sheckley, Bradbury ... I liked the Soviet book "Can a machine think?" more than any foreign Sci-Fi. I loved re-reading this book, as well as the textbooks for BASIC and Pascal. You may believe it or not, but once while I was reading this book, my subconscious had decided everything for me: I need to create the artificial intelligence. It does not matter that I did not know how to do it. It does not matter that I did not know how to program. It does not matter that I did not have any idea what a computer friend should become.
I have recently read an article where its author states that the computer will never be able to understand the text as it is understood by the human. He cites a number of impossible tasks to machines as proof with an emphasis on the lack of efficient algorithms and modeling impossibility of a complete system, which would take into account all the possible alternatives of the text. However, is it really that bad? Is it true that for the solution of such tasks is needed special processing power? What is a situation of natural language text processing?
What does it mean to "understand"?
The first thing I was confused is the question itself. Could a computer be able ever to understand the text as it understood by the human? What exactly does it mean to "understand as the human"? Generally, what does it mean to "understand"? In the book “Data Mining: Practical Machine Learning Tools and Techniques” authors asked themselves a similar question. What does it mean to "get trained"? Let us assume that we have applied to the "interpreter" some training technique. How do we check whether or not a student is learning? If a student attended all the lectures on the subject, it does not mean that the student has learned and understood it. In order to test this, teachers hold examinations, where student is asked to complete some tests on the subject. Same thing is with the computer, we want to know whether it has learned (whether it has understood the text). In order to find out that we have to check, as it solves the specific applications, translates the text, highlights the facts, gives concrete meaning of a polysemantic word, etc. In this perspective, the meaning misses the importance at all. The meaning can be assumed as a certain state of the interpreter in accordance with which it handles text.
Google has a secret laboratory that even many employees do not know about, where the new projects are being developed, and their description sounds like a sci-fi movie. The New York Times tells about this in its article.
The laboratory was located somewhere in the area of San Francisco Bay, where the brightest Google’s engineers are working on dozens of the projects. This is the place where your refrigerator could be connected to the Internet, and it will order the food, when it ends. Your plate could message in a social network what you eat, and your PA robot could go to the office while you are in your pajamas at home.