Skip to main content
GameDev.net gamedev.net
🔒 Locked

Simple AI for 2D grid based game.

Started by Wilhelm van Huyssteen Jan 26, 2012 at 11:39 AM 8 replies 7k views
Original Post
Wilhelm van Huyssteen
Wilhelm van Huyssteen
Hi.

im creating a dead simple 2D game. the game consists of a grid that is15x11. each entity takes up 1 square on the grid. The AI for one particular type of enemy should find a path to the player and move to him. each square in the grid is either open or the enemy to pass through or its not. Enemies pass through each other so they can ignore each others existance.

What method would i use to implement this path finding? simplicity over performance. its a tiny game world after all.
IADaveMark
IADaveMark
If there are obstacles (walls) then A*. Otherwise just check to see left/right up/down and move 1 space in the right direction.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit<
Wilhelm van Huyssteen
Wilhelm van Huyssteen
There is walls. sorry i didnt type that very clearly in the OP. im having trouble googling A* since google ignores the *. is there a full name for it?
Bacterius
Bacterius
There is walls. sorry i didnt type that very clearly in the OP. im having trouble googling A* since google ignores the *. is there a full name for it?[/quote]
A star.
“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”
IADaveMark
IADaveMark
A* is easily one of the most documented techniques in game AI. You'll find it.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit<
menyo
menyo
A* is very good, though slightly advanced. What i did in my game is giving my tiles an extra int for path numbering. Then from the destination put all adjacent tile n=1, then from these adjacent tiles n+1 for there adjacent tiles and repeat this. Stop when you are calculating the tile your standing on. Then move to the lowest number in the adjacent tiles. This technnique works surprisingly well.

But then again, A* can do a lot more once you get the hang of it.
lmbarns
lmbarns
Here's an A* javascript script http://www.battlefor...pathFinding.php demonstration and source.

I haven't used it because I haven't figured out which way I'm going with the map yet(generated tiles vs single image, top down vs isometric[in an html5 game]). Currently I just run around on a background image and use tangent/sin/cosine to move objects on layers above while sliding the bg sprite images based on the sin/cos the object is moving...
slicer4ever
slicer4ever
http://www.policyalm...tarTutorial.htm

i find this to be the absolute best article for learning A*.

@menyo, A* is not very advanced imo, and from the sound of what he's making, it'd be absolutly perfect for his needs, also, your method sounds like A* without a heuristic, and every tile has an equal movement cost(regardless if diagonal or not.).

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.