Will I be able to do this? (Squad AI, A*)
I'm really interested in AI, I'm specifically looking into Squad Behaviors now and it doesn't look tooo bad (Although, that's all theory and I haven't tried to practice any)
Anyway the time has come for me to come up with a research project and I already submitted an idea of something I'd be very interested in. AI cops running the city.
Experimental Design: Write a small city simulation where crime occurs randomly throughout the day and program a team of agents to handle situations with least casualties as possible while apprehending the suspect(s).
Basically, I'd have a team of say 5 cops patrol a small area until something alerts them (crime) then they'd all move into position trying to eventually corner the suspect without harming citizens. (Not sure how I'm going to make citizens work into this, maybe the cop won't attack a criminal with long range weapons until he's X distance away from a civilian)
I'd probably have this run off XNA (C#) as a simple 2D tile-based game. The cops would probably be blue circles while the criminals red. I'd get to jump into A* pathfinding too!
Now, I've messed with genetic algorithms a little bit but that's the extent of my AI knowledge. I have a few months (so plenty of time really) to work on this project, is this feasible for someone like me? Or is this all far too difficult for me?
Thanks in advance for reading this and feel free to comment! (Either on my design or the difficulty or both!)
The problem can be as easy or as hard as you make it. Do it iteratively and add more functionality each time.
AI is a tool of the game designer, used to express the story and to create a mechanism for gameplay. Unfortunately most designers cannot program AI so they work with programmers who can supply them with tools with which the designers can implement AI, given the constraints of the tools and the requirements of the game design.
You're presently stuck with the problem of trying to design a game to demonstrate AI, but you have a limited knowledge of AI techniques appropriate to games. This is not intended as a criticism but rather just an observation of your current state. You have some idea of the technique you want to demonstrate, but I fear that the game idea you have chosen will be far too difficult to design, implement, tune and balance to be a meaningful demonstration of the AI technique (in this case squad-level planning and control of NPCs).
I would recommend that IF your aim is to learn and demonstrate some acquired knowledge of AI, that you first forget about the final game design. Think of a core problem first and understand the solution to it. Then, IF you feel it necessary to write a whole game around this core concept go ahead... but don't expect that it will be any more than a demonstrator of technology.
Regards,
Timkin
You're presently stuck with the problem of trying to design a game to demonstrate AI, but you have a limited knowledge of AI techniques appropriate to games. This is not intended as a criticism but rather just an observation of your current state. You have some idea of the technique you want to demonstrate, but I fear that the game idea you have chosen will be far too difficult to design, implement, tune and balance to be a meaningful demonstration of the AI technique (in this case squad-level planning and control of NPCs).
I would recommend that IF your aim is to learn and demonstrate some acquired knowledge of AI, that you first forget about the final game design. Think of a core problem first and understand the solution to it. Then, IF you feel it necessary to write a whole game around this core concept go ahead... but don't expect that it will be any more than a demonstrator of technology.
Regards,
Timkin
Incidentally, a simple solution to your problem of trying to surround a bad dude is via influence maps. Look'em up.
Timkin is definitely right, what you have now will definitely take more than a few months. I haven't done much tile based stuff, so I'm not sure if that'll make it any easier than what I'm used to (maybe a tad easier). Everything that's been said is good stuff, especially the iterative approach, I'll expand on that. Here are the steps I'd take.
1) Write code for NPC's in a room. Maybe cops on one side, and criminals with hostage on the other. Randomize the cop/criminal/hostage position and have the cops act as well as they can based on this randomization. The room should just be a box with nothing but the npc's.
2) Add tables, and boxes walls to the room so that the AI needs basic pathfinding.
3) Add walls, make it so the cops don't know what is behind each wall. Using this you could even make a house.
4) Work on making everything smooth. Work on making more complex AI. Keep working on this step until you can't think of anything to make better.
5) Make a neighborhood with multiple instances of the rooms you made before, have 1 or so that already has criminals in it.
6) Make it dynamic.
7) Shoot for the sky.
So after 1 you have a demo that is pretty cool, and then every step after that is just icing on the cake (though I wouldn't consider it done until at least 3 or 4). I think you'll find that this will take a lot longer than you expect and this way you'll have something. You want some pretty good AI behavior in 1, but wait until 4 to do anything too crazy.
Good luck.
1) Write code for NPC's in a room. Maybe cops on one side, and criminals with hostage on the other. Randomize the cop/criminal/hostage position and have the cops act as well as they can based on this randomization. The room should just be a box with nothing but the npc's.
2) Add tables, and boxes walls to the room so that the AI needs basic pathfinding.
3) Add walls, make it so the cops don't know what is behind each wall. Using this you could even make a house.
4) Work on making everything smooth. Work on making more complex AI. Keep working on this step until you can't think of anything to make better.
5) Make a neighborhood with multiple instances of the rooms you made before, have 1 or so that already has criminals in it.
6) Make it dynamic.
7) Shoot for the sky.
So after 1 you have a demo that is pretty cool, and then every step after that is just icing on the cake (though I wouldn't consider it done until at least 3 or 4). I think you'll find that this will take a lot longer than you expect and this way you'll have something. You want some pretty good AI behavior in 1, but wait until 4 to do anything too crazy.
Good luck.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement