Monday, October 5, 2009

FYP Description

My Fyp is to Program a First Person Shooter. I have chosen this as my Fyp to demonstrate what I have learned so far and to further my knowledge in Game Programming as this will be my future career. My main focus for the game will be the NPC AI. With a game that has enemies like a FPS, a good AI is vital to a players experience and can make or break a title. The Game Engine will also be important for making this game and for my learning experience in game programming but it will be the AI which dictates how this is Fyp develops. My Research Questions for My FYP will be: Given the same information as a player: 1.Can I produce NPCs that are as believable as human players? For the purpose of this FYP, the AI will attempt to believable as a Human Player who is being tactical. Extremes like running into a crowd of enemies guns blazing will be ignored. A tactical player will: Use fire from cover where available. When in teams, attempt to manoeuvre around enemy.(some players will lay down cover fire while the rest attempt to flank enemy) A human player will attempt to reach goal as soon as possible while taking opportunities where possible.( example: Capture the flag, a player will try to get both flags in there base while defeating any enemies in their way to this goal) Try an sneak up on an enemy to get a clean shot or more points for a stealth attack. Stealth attacks also have to ability to demoralize the enemy which should make victory easier. Research Methods 1.Can I produce NPCs that are as believable as human players? First I will assess what behaviour my AI Players should have to make them believable as a human player. This will be done through examining games described as shooters for what their AI can do. The games will be examined through play, articles by professionals who worked on the games and through internet searches of blogs, videos and game reviews to see what worked and what didn't with the game AI. I will assemble a list of the key AI attributes. This list will be used to develop the AI. It will include how the AI should move, how it should act when given goals, how it should interact with the world, how it can communicate with team-mates and how it can find its enemies. The list will contain situation specific attributes as a player will react differently given the type of game, map or weapons available. The list will be sorted with necessary behaviours and behaviours which will improve how believable the AI is. When the basic game framework is complete and a multiplayer test has revealed that everything is working as it should (collisions, game ending conditions and player controls), I will begin work on programming the AI. This will start with a basic shell which will only move about the map using a path finding algorithm using goals set by a debug player but this will be evolved into an enemy which can find and attack the player. I will research, based on the AI Attribute List, professional articles, blogs and other internet and book resources for the Techniques used in game AI programming. From this I will use the techniques or my own based on them to form my AI. The AI will be tested through game play by myself first to make sure that it is working first. When I am confident that my AI is capable of completing a task, I will pit it against a human player which will have the same information as the AI. This will be shown with a split screen, the player on one and the AI on another. I will have another person present who will not know which screen is the AI and which is the player and from this will perform a basic Turing test. This will be done as the AI completes various tasks in its development (being able to move to a point, finding and shooting targets and safely hunting enemy players will be some of the tasks to complete). The Final test will be a series of matches between human teams and an AI teams. These matches will spawn the different multiplayer modes available. A few observers will perform the Turing test in a different room. They will be able to see the players (NPC and Human) but not what the players see so that screen shakes caused by human players using the analogue sticks won't ruin the test. The Human players will be asked to avoid abnormal behaviour like standing on top of light posts as AI characters will not do these things and would immediately fail the test should a human player do them. Should a majority of the observers pass the AI then “Can I produce NPCs that are as believable as human players?” will be answered with success. Regardless of whether I can make a believable AI Player, I will have examples of Game AI's which achieve the goals I had for my own.

No comments:

Post a Comment