\documentclass[11pt,twoside]{article}\makeatletter

\IfFileExists{xcolor.sty}%
  {\RequirePackage{xcolor}}%
  {\RequirePackage{color}}
\usepackage{colortbl}
\usepackage{wrapfig}
\usepackage{ifxetex}
\ifxetex
  \usepackage{fontspec}
  \usepackage{xunicode}
  \catcode`⃥=\active \def⃥{\textbackslash}
  \catcode`❴=\active \def❴{\{}
  \catcode`❵=\active \def❵{\}}
  \def\textJapanese{\fontspec{Noto Sans CJK JP}}
  \def\textChinese{\fontspec{Noto Sans CJK SC}}
  \def\textKorean{\fontspec{Noto Sans CJK KR}}
  \setmonofont{DejaVu Sans Mono}
  
\else
  \IfFileExists{utf8x.def}%
   {\usepackage[utf8x]{inputenc}
      \PrerenderUnicode{–}
    }%
   {\usepackage[utf8]{inputenc}}
  \usepackage[english]{babel}
  \usepackage[T1]{fontenc}
  \usepackage{float}
  \usepackage[]{ucs}
  \uc@dclc{8421}{default}{\textbackslash }
  \uc@dclc{10100}{default}{\{}
  \uc@dclc{10101}{default}{\}}
  \uc@dclc{8491}{default}{\AA{}}
  \uc@dclc{8239}{default}{\,}
  \uc@dclc{20154}{default}{ }
  \uc@dclc{10148}{default}{>}
  \def\textschwa{\rotatebox{-90}{e}}
  \def\textJapanese{}
  \def\textChinese{}
  \IfFileExists{tipa.sty}{\usepackage{tipa}}{}
\fi
\def\exampleFont{\ttfamily\small}
\DeclareTextSymbol{\textpi}{OML}{25}
\usepackage{relsize}
\RequirePackage{array}
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar l\@ne \else
     \if \@nextchar r\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar (8 \else
       \if \@nextchar )9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
   \if \@nextchar p4 \else
    \if \@nextchar b5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
\gdef\arraybackslash{\let\\=\@arraycr}
\def\@textsubscript#1{{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\def\abbr{}
\def\corr{}
\def\expan{}
\def\gap{}
\def\orig{}
\def\reg{}
\def\ref{}
\def\sic{}
\def\persName{}\def\name{}
\def\placeName{}
\def\orgName{}
\def\textcal#1{{\fontspec{Lucida Calligraphy}#1}}
\def\textgothic#1{{\fontspec{Lucida Blackletter}#1}}
\def\textlarge#1{{\large #1}}
\def\textoverbar#1{\ensuremath{\overline{#1}}}
\def\textquoted#1{‘#1’}
\def\textsmall#1{{\small #1}}
\def\textsubscript#1{\@textsubscript{\selectfont#1}}
\def\textxi{\ensuremath{\xi}}
\def\titlem{\itshape}
\newenvironment{biblfree}{}{\ifvmode\par\fi }
\newenvironment{bibl}{}{}
\newenvironment{byline}{\vskip6pt\itshape\fontsize{16pt}{18pt}\selectfont}{\par }
\newenvironment{citbibl}{}{\ifvmode\par\fi }
\newenvironment{docAuthor}{\ifvmode\vskip4pt\fontsize{16pt}{18pt}\selectfont\fi\itshape}{\ifvmode\par\fi }
\newenvironment{docDate}{}{\ifvmode\par\fi }
\newenvironment{docImprint}{\vskip 6pt}{\ifvmode\par\fi }
\newenvironment{docTitle}{\vskip6pt\bfseries\fontsize{22pt}{25pt}\selectfont}{\par }
\newenvironment{msHead}{\vskip 6pt}{\par}
\newenvironment{msItem}{\vskip 6pt}{\par}
\newenvironment{rubric}{}{}
\newenvironment{titlePart}{}{\par }

\newcolumntype{L}[1]{){\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{){\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{){\raggedleft\arraybackslash}p{#1}}
\newcolumntype{P}[1]{){\arraybackslash}p{#1}}
\newcolumntype{B}[1]{){\arraybackslash}b{#1}}
\newcolumntype{M}[1]{){\arraybackslash}m{#1}}
\definecolor{label}{gray}{0.75}
\def\unusedattribute#1{\sout{\textcolor{label}{#1}}}
\DeclareRobustCommand*{\xref}{\hyper@normalise\xref@}
\def\xref@#1#2{\hyper@linkurl{#2}{#1}}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\mathrm{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12\relax

\usepackage[a4paper,twoside,lmargin=1in,rmargin=1in,tmargin=1in,bmargin=1in,marginparwidth=0.75in]{geometry}
\usepackage{framed}

\definecolor{shadecolor}{gray}{0.95}
\usepackage{longtable}
\usepackage[normalem]{ulem}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{marginnote}

\renewcommand{\@cite}[1]{#1}


\renewcommand*{\marginfont}{\itshape\footnotesize}

\def\Gin@extensions{.pdf,.png,.jpg,.mps,.tif}

  \pagestyle{fancy}

\usepackage[pdftitle={Direction based Heuristic for Pathfinding in Video Games},
 pdfauthor={}]{hyperref}
\hyperbaseurl{}

	 \paperwidth210mm
	 \paperheight297mm
              
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}
\clubpenalty=8000
\emergencystretch 3em
\hbadness=4000
\hyphenpenalty=400
\pretolerance=750
\tolerance=2000
\vbadness=4000
\widowpenalty=10000

\renewcommand\section{\@startsection {section}{1}{\z@}%
     {-1.75ex \@plus -0.5ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
     {-1.75ex\@plus -0.5ex \@minus- .2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
     {-1.5ex\@plus -0.35ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\large}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
     {-1ex \@plus-0.35ex \@minus -0.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\normalsize}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
     {1.5ex \@plus1ex \@minus .2ex}%
     {-1em}%
     {\reset@font\normalsize\bfseries}}


\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
 \@tempdima 1.5em \begingroup
 \parindent \z@ \rightskip \@pnumwidth 
 \parfillskip -\@pnumwidth 
 \bfseries \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par
 \endgroup}
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\@ifundefined{c@section}{\newcounter{section}}{}
\@ifundefined{c@chapter}{\newcounter{chapter}}{}
\newif\if@mainmatter 
\@mainmattertrue
\def\chaptername{Chapter}
\def\frontmatter{%
  \pagenumbering{roman}
  \def\thechapter{\@roman\c@chapter}
  \def\theHchapter{\roman{chapter}}
  \def\thesection{\@roman\c@section}
  \def\theHsection{\roman{section}}
  \def\@chapapp{}%
}
\def\mainmatter{%
  \cleardoublepage
  \def\thechapter{\@arabic\c@chapter}
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \pagenumbering{arabic}
  \setcounter{secnumdepth}{6}
  \def\@chapapp{\chaptername}%
  \def\theHchapter{\arabic{chapter}}
  \def\thesection{\@arabic\c@section}
  \def\theHsection{\arabic{section}}
}
\def\backmatter{%
  \cleardoublepage
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \setcounter{secnumdepth}{2}
  \def\@chapapp{\appendixname}%
  \def\thechapter{\@Alph\c@chapter}
  \def\theHchapter{\Alph{chapter}}
  \appendix
}
\newenvironment{bibitemlist}[1]{%
   \list{\@biblabel{\@arabic\c@enumiv}}%
       {\settowidth\labelwidth{\@biblabel{#1}}%
        \leftmargin\labelwidth
        \advance\leftmargin\labelsep
        \@openbib@code
        \usecounter{enumiv}%
        \let\p@enumiv\@empty
        \renewcommand\theenumiv{\@arabic\c@enumiv}%
	}%
  \sloppy
  \clubpenalty4000
  \@clubpenalty \clubpenalty
  \widowpenalty4000%
  \sfcode`\.\@m}%
  {\def\@noitemerr
    {\@latex@warning{Empty `bibitemlist' environment}}%
    \endlist}

\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}}
\parskip0pt
\parindent1em
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\newenvironment{reflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemsep}{0pt}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\itshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{sansreflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\itemsep}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\upshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{specHead}[2]%
 {\vspace{20pt}\hrule\vspace{10pt}%
  \phantomsection\label{#1}\markright{#2}%

  \pdfbookmark[2]{#2}{#1}%
  \hspace{-0.75in}{\bfseries\fontsize{16pt}{18pt}\selectfont#2}%
  }{}
      \def\TheFullDate{2015-01-15 (revised: 15 January 2015)}
\def\TheID{\makeatother }
\def\TheDate{2015-01-15}
\title{Direction based Heuristic for Pathfinding in Video Games}
\author{}\makeatletter 
\makeatletter
\newcommand*{\cleartoleftpage}{%
  \clearpage
    \if@twoside
    \ifodd\c@page
      \hbox{}\newpage
      \if@twocolumn
        \hbox{}\newpage
      \fi
    \fi
  \fi
}
\makeatother
\makeatletter
\thispagestyle{empty}
\markright{\@title}\markboth{\@title}{\@author}
\renewcommand\small{\@setfontsize\small{9pt}{11pt}\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip \z@ plus2\p@
\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
\def\@listi{\leftmargin\leftmargini
               \topsep 2\p@ plus1\p@ minus1\p@
               \parsep 2\p@ plus\p@ minus\p@
               \itemsep 1pt}
}
\makeatother
\fvset{frame=single,numberblanklines=false,xleftmargin=5mm,xrightmargin=5mm}
\fancyhf{} 
\setlength{\headheight}{14pt}
\fancyhead[LE]{\bfseries\leftmark} 
\fancyhead[RO]{\bfseries\rightmark} 
\fancyfoot[RO]{}
\fancyfoot[CO]{\thepage}
\fancyfoot[LO]{\TheID}
\fancyfoot[LE]{}
\fancyfoot[CE]{\thepage}
\fancyfoot[RE]{\TheID}
\hypersetup{citebordercolor=0.75 0.75 0.75,linkbordercolor=0.75 0.75 0.75,urlbordercolor=0.75 0.75 0.75,bookmarksnumbered=true}
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}

\date{}
\usepackage{authblk}

\providecommand{\keywords}[1]
{
\footnotesize
  \textbf{\textit{Index terms---}} #1
}

\usepackage{graphicx,xcolor}
\definecolor{GJBlue}{HTML}{273B81}
\definecolor{GJLightBlue}{HTML}{0A9DD9}
\definecolor{GJMediumGrey}{HTML}{6D6E70}
\definecolor{GJLightGrey}{HTML}{929497} 

\renewenvironment{abstract}{%
   \setlength{\parindent}{0pt}\raggedright
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
   \textcolor{GJBlue}{\large\bfseries\abstractname\space}
}{%   
   \vskip8pt
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
}

\usepackage[absolute,overlay]{textpos}

\makeatother 
      \usepackage{lineno}
      \linenumbers
      
\begin{document}

             \author[1]{Geethu Elizebeth  Mathew}

             \author[2]{Mrs.  G.Malathy}

             \affil[1]{  ksr institute for enginerring and technology/anna university,chennai}

\renewcommand\Authands{ and }

\date{\small \em Received: 11 December 2014 Accepted: 5 January 2015 Published: 15 January 2015}

\maketitle


\begin{abstract}
        


Pathfinding has been one of major research areas in video games for many years. It is a key problem that most of the video games are confronted with. Search algorithms such as the A* algorithm and the Dijkstra?s algorithm representing such regular grid, visibility graphs also have significant impact on the performance. This paper reviews the current widely used solutions for pathfinding and proposes a new method which is expected to generate a higher quality path using less time and memory than other existing solutions. The deployment of the methodologies and techniques is described in detail. The significance of the proposed method in future video games is addressed and the conclusion is given at the end.

\end{abstract}


\keywords{pathfinding, A*, A* optimization, computer game.}

\begin{textblock*}{18cm}(1cm,1cm) % {block width} (coords) 
\textcolor{GJBlue}{\LARGE Global Journals \LaTeX\ JournalKaleidoscope\texttrademark}
\end{textblock*}

\begin{textblock*}{18cm}(1.4cm,1.5cm) % {block width} (coords) 
\textcolor{GJBlue}{\footnotesize \\ Artificial Intelligence formulated this projection for compatibility purposes from the original article published at Global Journals. However, this technology is currently in beta. \emph{Therefore, kindly ignore odd layouts, missed formulae, text, tables, or figures.}}
\end{textblock*}


\let\tabcellsep& 	 	 		 
\section[{Introduction}]{Introduction}\par
athfinding is the plotting, by a computer application, to find the shortest path between two points. It starts from a start node and reaches the goal node by repeatedly searching for the same, for finding a path between these points. Finding the optimal path is a complicated scenario. There are significant difference between the terms path and shortest path. In graph theory, the problem of finding a path between two vertices in a graph such that the sum of the weights this path's edges is minimized is called a shortest path problem. Two primary problems of pathfinding are to find a path between two nodes in a graph and to find the optimal shortest path \hyperref[b4]{[4]}. Pathfinding in the context of video games concerns the way in which an object finds a path around obstacles; the best explained context is real-time strategy games in which the player leads units around a play area containing obstacles, but the variations of this approaches are found in many of the games. path finding has grown in importance as games and their environments have become more complex. Many Artificial Intelligence based platforms and the tools are developed for providing solutions to pathfinding problem. Many of them uses basic pathfinding and provides ready made plugins for users to incorporate in their games. Real-time strategy games sometimes contain large areas of open terrain which is often relatively simple to navigate through, although it is common for more than one unit to travel simultaneously; this makes it necessary to employ different, and often more complex algorithms and methods to avoid traffic problems and bottlenecks at some points in terrain. In strategy games the map is normally divided into subworlds and there are practical methods of applying some algorithms in the smaller problems to apply it to larger sets. 
\section[{II. A* Algorithm}]{II. A* Algorithm}\par
A* is a generic search algorithm that can be used to find solutions to many problems, pathfinding is just one of them. Many problem in the engineering are related to pathfinding problems. The lookahead effort in searching trees are found to provide improved results in pathfinding. The base of the A* algorithm arises from a view that the information from the problem domain can be incorporated in a formal mathematical manner to analyse the problem. The method shows that this approach will always try to find out a path by exploring minimum number of nodes to offer a minimum cost solution. A* is the most popular and widely used AI pathfinding algorithm proposed by Hart, Nilsson and Raphael in the year 1967. Due to its simplicity it guarantees, A* is almost always the search method of choice. This is because A* is guaranteed to find a shortest path on the graph. The problem with A* is that a shortest path on the graph is not equivalent to a shortest path in the continuous environment. Another issue related to A* is that, when the map size is significantly larger, A* algorithm cannot find a minimum path to goal state in limited amount of time. Also for large maps A* uses memory extensively. Even though many other methods are emerging, A* and its variations are widely used in pathfinding. A* uses this heuristic to improve on the behavior relative to Dijkstra's algorithm. When the heuristic evaluates to zero, A* is equivalent to Dijkstra's algorithm. As the heuristic estimate increases and gets closer to the true distance, A* continues to find optimal paths, but runs faster. When the value of the heuristic is exactly the true distance, A* examines the fewest of the nodes .However it is generally impractical to write a heuristic function that always computes the true distance. As the value of the heuristic increases, A* examines fewer nodes but no longer guarantees an optimal path. In many applications this is acceptable and even desirable, in order to keep the algorithm running quickly. In order to expand less number of nodes as possible while searching for an optimal path, A* constantly make informed decision as possible about which node to expand next. Otherwise it is a wasting effort to use that particular method. If the algorithm constantly avoids nodes on optimal path, then there is less chance that the algorithm will come up with a solution. Suppose, we have some evaluation function f(n) to be calculated for some node n. The nodes with f values are considered for exploring next. The node with the minimum f value is explored then we can define the A* search algorithm as follows \hyperref[b9]{[8]}.\par
Search Algorithm A*:  For any sub graph G and goal set T, let f(n) be the actual cost of an optimal path which go through n, from s to a preferred goal node of n. Determination of f(n) is the primary interest. In A* algorithm we see that, the function f(n) can be written as the sum of two functions:f(n)=g(n)+h(n)\par
where g(n) is the actual cost from s to the node n, and h(n) is the actual cost from n to the preferred goal node of n. Let g ?(n) be the estimate of g(n). An excellant choice for g ?(n) is the minimum cost that has found so far. We observe g ?(n) ? g(n). The arcs are shown with arrowheads and costs. Starting from s, we get successors n1, n2. The estimates g ?(n) and g ?(n2) are 3 and 7 respectively. Suppose A* expands n1 next with successors n2,n3. At this stage g ?(n3)=3 + 2 = 5, and g ?(n2) is lowered to 3 + 3 = 6. The value of g ?(n1) remains equal to 3. Next we must have an estimate h ?(n) of h(n). Here we rely on information from the problem domain. Many minimum cost path problems through a paragraph has some information to estimate h ?. In a city example where our paths are roads, we can use airline distance as the heuristic function. If h is any lower bound, then we can say that algorithm is admissible \hyperref[b9]{[8]}.There are variations of A* to optimize algorithm so that less memory is used. 
\section[{Consider the subgraph shown in}]{Consider the subgraph shown in}\par
The traditional A* algorithm has shortages as follows:\par
1. It is slow in searching speed is slow and is poor applicability in the large scale path search environment. For example to get the optimal diagonal path in the 100*100 grid environment needs for searching 513 nodes at least. 2. Due to the limitations of the traditional A* algorithm, the algorithm always lead to fall into failing situation in the unknown and complex grid environment. 3. The traditional A* doesn't support path search operation between multi nodes at the same time which means generating different path from multistarts to multi-target needs to retry. 
\section[{a) Heuristics}]{a) Heuristics}\par
Heuristics is a method used for experience based problem solving, which may or may not end up with an optimal solution. Algorithm's behavior based on the heuristic and cost functions can be very useful in a game. The trade off between speed and accuracy can be exploited to make your game faster. One way to construct an exact heuristic is to precompute the length of the shortest path between every pair of points. This is not feasible for most game maps. However, there are ways to ap proximate this heuristic:\par
? Fit a coarse grid on top of the fine grid. Precompute the shortest path between any pair of coarse grid locations. ? Precompute the shortest path between any pair of waypoints. This is a generalization of the coarse grid approach.\par
In a special circumstance, the heuristic can be exact without precomputing anything. If there is a map with no obstacles and no slow terrain, then the shortest path from the starting point to the goal should be a straight line.On a grid, there are well-known heuristic functions to use  
\section[{b) Manhattan Distance}]{b) Manhattan Distance}\par
The standard heuristic for a square grid is the Manhattan distance. Look at cost function and find the minimum cost D for moving from one space to an adjacent space. In the simple case, we can set D to be 1.The heuristic on a square grid where you can move in 4 directions should be D times the Manhattan distance:\par
Function heuristic(node) dx=abs(node.x-goal.x) dy=abs(node.y-goal.y) return d*(dx+dy) Set D to the lowest cost between adjacent squares. In the absence of obstacles, and on terrain that has the minimum movement cost D, moving one step closer to the goal should increase g by D and decrease h by D. When we find f (which is set to g + h) will stay the same; thats a sign that the heuristic and cost function scales match. 
\section[{c) Grids}]{c) Grids}\par
A grid map uses a uniform subdivision of the world into small regular shapes some-times called tiles. Common grids in use are square, triangular, and hexagonal. Grids are simple and easy to understand. If were using grids for pathfinding, units are not constrained to grids, and movement costs are uniform, We may want to straighten the paths by moving in a straight line from one node to a node far ahead when there are no obstacles between the two. If units can move anywhere within a grid space, or if the tiles are large, think about whether edges or vertices would be better choice for our application. A unit usually enters a tile at one of the edges (often in the middle) and exits tile at another edge. With pathfinding on tiles, the unit moves to the center of the tile, but with pathfinding on edges, the unit will move directly from one edge to the other. Obstacles in a grid system typically have their corners at vertices. The shortest path around an obstacle will be to go around the corners. With pathfinding on vertices, the unit moves from corner to corner. This produces the least wasted movement, but paths need to be adjusted to account for the size of the unit. This is referred as Vertex movement. 
\section[{III.}]{III.} 
\section[{Proposed Work}]{Proposed Work}\par
After performing the literature survey, it is clear that a lot more improvements and optimisations are possible in the field of pathfinding in video games. So in our paper, we are intended to work on the pathfinding and the path planning in games using the Artificial Intelligence principles. The proposed work is aimed at combining different approaches for pathfinding to effectively find out paths in video game environments using less resources by utilizing Artificial Intelligence Concepts.\par
In our paper, we put forward an Efficient Pathfinding Algorithm for video games by\par
? Optimizing search techniques.\par
? Effective terrain mapping.\par
? Improving Heuristics.\par
We here use the direction based approach for pathfinding. New approach is applied in a grid based environment. As most of the game worlds are divided into grids for simplicity, this method has scope in all of them. This method can also be extended to all types of grid based worlds.\par
To find the shortest paths between two points in a map, is an important topic in mathematics and algorithm research. In the present gaming industry, pathfinding has its own requirements:\par
1. We do not really care too much whether a path is optimal in a mathematical sense, so long as it is virtually short enough. 2. We do not want to devote too much resource for pathfinding in the gaming environment which which is usually resource constrained. 
\section[{a) Direction Based Heuristics}]{a) Direction Based Heuristics}\par
In order to apply some sort of optimisation in pathfinding algorithms, the first thing needed is an efficient approach for pathfinding. The method I use here is applied on grid based maps. It uses the direction to the goal state as the heuristic function A grid map example In the above figure there is a starting and an ending point. The Heuristic Information needed is the relative position of a particular node to the end node. We start with the Start node. In order to calculate the information regarding the relative position of the goal node, In our approach, we use four letters (For explanation purpose). They are L, R, U, D which represents Left, Right, Up and Down respectively. Every node will have a Heuristic information which gives a clear idea about the relative position of that node with the goal node. In the above figure, the Heuristic Key can be recorded as L0 (Where 'L' represents left and '0' indicates that end state is in the same horizontal level as that of the start state.) The following figure gives more clear idea about direction based Heuristics 
\section[{Grid showing direction based heuristics of all cell}]{Grid showing direction based heuristics of all cell}\par
As in the above figure, there are 8 Heuristic Keys applied in a pathfinding environment which are explained using table 
\section[{Direction Keys used for determining the direction of exploration}]{Direction Keys used for determining the direction of exploration}\par
These information is used to determine which are the next nodes to be explored in order to reach the goal faster. For example, when the Heuristic key of a node is LU it has children in the top and in the left side. We then check whether those cells are free or not. A cell is said to be free if it is not previously explored or its not a non traversable cell. If there are no free children for a particular node, then we change the direction key by making L as R, R as L, U as D, D as U and '0' is kept as such. In usual practice with lightly obstructed map, this is not required in general. We continue to explore new children obtained through the changed Heuristic key.\par
The method continues as such till it reaches the goal state. The above explained method is just a framework of the method. As it is very simple and straight, many optimizations are possible for the above mentioned method. In this work, We aim to implement the above direction concept so as to reduce the memory overheads and hence execution time. 
\section[{b) Comparison with Other Algorithms in A Small Grid}]{b) Comparison with Other Algorithms in A Small Grid}\par
The new method is compared with other basic grid based pathfinding algorithms and results are analyzed. Here this analysis is made for some fixed grid environments. Preliminary analysis is conducted only to analyse the number of nodes explored in the Direction based Heuristics method and in other methods for a small graph.\par
This algorithm is compared with other algorithms such as breath first search,, A* algorithm. Comparison results are shown below. Even though A* solves a given problem based on heuristics a necessary condition has to be satisfied. Basic comparison with the A* algorithm indicates that, this approach converges to the direction of goal as in the A* algorithm. Comparison with the other two algorithms also shows that the new approach converges to the direction of the goal state, even faster than Breadth First Search. These have to be proved mathematically. 
\section[{c) Converging Behavoiur of Direction Hueristics}]{c) Converging Behavoiur of Direction Hueristics}\par
The method based on Direction Heuristic converges towards the goal state faster than Breadth First Search in tested environments. This makes it more usable. It also explores less number of nodes to reach final state. This is a good expected behaviour for a pathfinding algorithm. The proposed method explores less number of neighbors and hence the number of nodes processed each time is reduced. By using perfect data structures we can make it more appealing. So that the optimization for this particular work mainly concentrate on a data struture which can process nodes faster and which converges to the goal nodes so easily. The converging behaviour and thus the improvement of the work in obtaining a path in less time need to be theoretically proved. The converging behaviour of the algorithm of the algorithm can be explained as 
\section[{? Compared to A* and other algorithms like Breadth}]{? Compared to A* and other algorithms like Breadth}\par
First Search, the direction Heuristic approach explores less node each time. This is because of the fact that only those nodes in the direction of the goal node is considered in for expansion.\par
? Each time this approaches avoids a certain direction, in many of the cases the same direction is chosen. This implies that the portions in the graph which are not relevant is not searched 
\section[{d) Applying The Concept of Direction Based Heuristics On A Star Algorithm}]{d) Applying The Concept of Direction Based Heuristics On A Star Algorithm}\par
Developed in the context of learning based heuristics our method speeds up search by expanding and evaluating only necessary nodes in the map. Further, this method eliminates redundant nodes from the graph which reduces additional memory over-heads. Using this heuristic function, we are able to identify a large set of cells which can be skipped. We have implemented the direction oriented Heuristic function normally in a simple grid based environment. The aim is to study the behaviour of the algorithm. Following are the scenarios taken under consideration:\par
? A square grid of typical size is used. The algorithm works on every kind of grid based maps. But for the ease of calculation of results and observing the performance, square worlds are considered.\par
? The territory type used is spacious maps and lightly obstructed maps. The method is based on finding out the cells to be expanded out of many neighboring cells. So this is perfectly applicable in the above mentioned types. Also it can be applied on mazes. But for experimental purpose I used maps with less obstacle density.\par
Every edge has given same weight as we are considering diagonal direction also. This is a mandatory step in the implementation. Expanding diagonal nodes improves the realistic movement which is very essential in game playing. There are a total of eight neighbors for a node under consideration. Sup-pose we are considering a particular node which can be denoted by (x,y) in a grid based environment. Then we can consider the neighboring nodes as a set: \{(x-1,y-1),(x,y-1),(x+1,y-1), (x1,y),(x+1,y), (x-1,y+1),(x,y+1),(x+1,y+1)\} Our particular aim is to eliminate some nodes from the above eight neighbors to optimize the result. Popular algorithms like the A star algorithm and Breadth First Search algorithm expands every node so that all nodes are to be processed.\par
Here Simple direction based Heuristics is applied for the implementation. We used the same datastructures as used by the A* algorithm and Breadth First Search algorithm to study the behaviour of the algorithm. From the above implementation, we could see that the proposed approach always finds solution without fail. A* algorithm can find out a solution pretty faster and the drawback is it eats up lot of memory. So an efficient optimization applied as this would greatly enhance the approach An example for game world simulated in browser IV. 
\section[{Evaluation}]{Evaluation}\par
Evaluating of the proposed system is perhaps the most important part of a our work. For precisely 
\section[{Global Journal of C omp uter S cience and T echnology}]{Global Journal of C omp uter S cience and T echnology}\par
Volume XV Issue I Version I Year ( ) evaluating the results a common benchmark should be considered where all the algorithms under consideration can be executed. As we know A* algorithm is the most popular algorithm for pathfinding. Based on the time of excecution, Comparisons are made between a* algorithm and direction heuristic approach Every game world is represented as grids in the evaluation. For world representation a multi dimensional array is used. For getting the stable results in every platform, world representations in all such cases should be same. In most of the game worlds are represented using arrays. By using the same representation, results obtained are standard results which can be applied universally. A screen shot for running benchmark for the performance evaluation is given where it uses a 150 × 150 grid. The experiment is done in browser.\par
Map is represented using a 2D array for obtaining standard results.\par
First, both the algorithms are run several times and values are taken for execution time. The time thus calculated in milliseconds is plotted. An important observation is that the time taken by the proposed method is always less than that of A*. Both the algorithms, A* and Direction Heuristic approach are run thousand times and the average of the execution time is calculated for a grid of same size and obstacle density but randomly distributed obstacles. This result is given as the first instance. Fifteen such instances are calculated and result is plotted. By doing this we will get a result which is stable. Here also we have better performance for proposed algorithm Comparision between A* and direction Heuristics for 15 randon worlds of same size V. 
\section[{Conclusion}]{Conclusion}\par
In our work, we have introduced a new Heuristic method for speeding up Pathfinding on uniform cost maps which are represented using grids. The new approach selectively expands certain nodes from grid map so that minimum number of nodes are explored. The most important highlight of this work is identification of the nodes to be explored and proper usage of efficient data structure. we prove that unnecessary nodes are not expanded in this approach, or Direction Heuristics would try to minimize the number of nodes to be explored and yet come up with a solution in less time.\par
One of the important observation is that applying the new logic will not affect the solution. the solution is guaranteed by the new heuristic. it is simple yet highly efficient ,it reduces the amount of the memory needed by wisely choosing the nodes to be explored. It does not require any pre-processing and therefore it is a very fast method. Due to its simplicity it can easily be combined with other pathfinding methods, speedup methods and path smoothing methods to get a solution faster and there is scope for research in all these combinations. Direction based heuristic approach is highly competitive to other works from literature especially when dealing with large maps. When compared to the most popular A* algorithm and its optimized variation which is using priority queue for implementing data structures, Direction Based Heuristics is found to show improve ments.\par
The process speed up the path finding process by implementing an efficient data structure to handle the nodes for the evaluatation. This reflects in improvement in time when compared to traditional list based linear data structures. By efficiently deciding the number of nodes that are to be explored, new approach needs to process less number of nodes than other. This results in a memory efficient solution, Memory efficiency obtained by using Direction Heuristics is a key highlight when compared to A* algorithm which uses more memory. An interesting direction for further work is to extend Direction Based Heuristic approach to other type of grids like hexagonal and triangular grids. This can be easily achieved by employing proper direction keys for obtaining goal information pretty faster. Utility libraries and the pathfinding plug-ins can be developed by employing this idea so that it is avaliable as a package for the pathfinding. Much remains to be done in the field of Artificial Intelligence and pathfinding. Most of the research is oriented towards other areas like robotics and very few has been done towards their application in tile based games. We hope that our work would certainly benefit the game industry. 
\section[{Global Journal of C omp uter S cience and T echnology}]{Global Journal of C omp uter S cience and T echnology}\par
Volume XV Issue I Version I Year ( )\begin{figure}[htbp]
\noindent\textbf{:}\includegraphics[]{image-2.png}
\caption{\label{fig_0}Figure :}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-3.png}
\caption{\label{fig_1}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-4.png}
\caption{\label{fig_2}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{} \par 
\begin{longtable}{}
\end{longtable} \par
  {\small\itshape [Note: ? On a square grid that allows 4 directions of movement, use Manhattan distance?]} 
\caption{\label{tab_1}}\end{figure}
 			\footnote{© 2015 Global Journals Inc. (US)} 			\footnote{© 2015 Global Journals Inc. (US) 1} 			\footnote{Direction Based Heuristic for Pathfinding in Video Games} 		 		\backmatter  			  				\begin{bibitemlist}{1}
\bibitem[Hart and Nilsson]{b0}\label{b0} 	 		\textit{},  		 			E P Hart 		,  		 			N J Nilsson 		.  		 	 
\bibitem[Björnsson and Bulitko]{b4}\label{b4} 	 		\textit{},  		 			Yngvi; Vadim Björnsson 		,  		 			Bulitko 		.  		 	 
\bibitem[Nat and Conf ()]{b17}\label{b17} 	 		\textit{},  		 			Nat 		,  		 			Conf 		.  	 	 		\textit{Artif. Intell}  		2005. p. .  	 
\bibitem[Raphael ()]{b1}\label{b1} 	 		‘A formal basis for the heuristic determination of minimum cost paths’.  		 			B Raphael 		.  	 	 		\textit{IEEE Trans. Syst. Sci. Cybern}  		1968. 4  (2)  p. .  	 	 (Korf, R. Depth-first iterativedeepening) 
\bibitem[Hart et al. ()]{b12}\label{b12} 	 		‘A formal basis for the heuristic determination of minimum cost paths’.  		 			P Hart 		,  		 			N Nilsson 		,  		 			B Raphael 		.  	 	 		\textit{IEEE Trans. Syst. Sci. Cybernet}  		1968. 4  (2)  p. .  	 
\bibitem[Rabin ()]{b15}\label{b15} 	 		\textit{A* speed optimizations},  		 			S Rabin 		.  		2000. Charles River Media, America. p. .  	 	 (in Game Programming GEMS) 
\bibitem[An optimal admissible tree search Artificial Intelligence ()]{b2}\label{b2} 	 		‘An optimal admissible tree search’.  	 	 		\textit{Artificial Intelligence}  		1985. 27 p. .  	 
\bibitem[Nilsson ()]{b11}\label{b11} 	 		\textit{Artificial Intelligence: A New Synthesis},  		 			N Nilsson 		.  		1998. San Francisco: Morgan Kaufmann Publishers.  	 
\bibitem[Tozour ()]{b14}\label{b14} 	 		‘Building a near-optimal navigation mesh’.  		 			P Tozour 		.  	 	 		\textit{AI Game Programming Wisdom},  				 (Charles River Media, America)  		2002. p. .  	 
\bibitem[Xue and Chien ()]{b8}\label{b8} 	 		‘Determining the path search graph and finding a collision-free path by the modified A* algorithm for a 5-link closed chain’.  		 			Qing Xue 		,  		 			Yung-Ping Chien 		.  	 	 		\textit{Applied Artificial Intelligence}  		1995. 92.  	 
\bibitem[Björnsson et al. ()]{b3}\label{b3} 	 		‘Fringe Search: Beating A* at Pathfinding Game Maps’.  		 			Yngvi ; Björnsson 		,  		 			Markus ; Enzenberger 		,  		 			Holte 		,  		 			C Robert 		.  	 	 		\textit{IEEE 2005 Symposium on Computational Intelligence and Games},  				2005. p. .  	 
\bibitem[Kala et al. ()]{b6}\label{b6} 	 		‘Fusion of probabilistic A* algorithm and fuzzy inference system for robotic path planning’.  		 			Rahul Kala 		,  		 			Anupam Shukla 		,  		 			Ritu Tiwari 		.  	 	 		\textit{Artificial Intelligence Review}  		2010. 334.  	 
\bibitem[Zeng et al. ()]{b7}\label{b7} 	 		‘GA-based Global Path Planning for Mobile Robot Employing A* Algorithm’.  		 			Cen Zeng 		,  		 			Qiang Zhang 		,  		 			Xiaopeng Wei 		.  	 	 		\textit{Journal of Computers}  		2012. 72.  	 
\bibitem[Sturtevant ()]{b18}\label{b18} 	 		‘Memory-efficient abstractions for pathfinding’.  		 			N R Sturtevant 		.  	 	 		\textit{Proc. Conf},  				 (Conf)  		2007. p. .  	 
\bibitem[Botea et al. ()]{b10}\label{b10} 	 		‘Near optimal hierarchical path-finding’.  		 			A Botea 		,  		 			M Mueller 		,  		 			J Schaeffer 		.  	 	 		\textit{J. GD}  		2004. 1  (1)  p. .  	 
\bibitem[Sturtevant and Buro]{b16}\label{b16} 	 		‘Partial pathfinding usingmap abstraction and refinement’.  		 			N R Sturtevant 		,  		 			M Buro 		.  	 	 		\textit{Proc. 20th},  				 (20th)  		 	 
\bibitem[Stout ()]{b13}\label{b13} 	 		\textit{Smart moves: intelligent path-finding},  		 			B Stout 		.  		1996. p. .  	 	 (in Game Developer Magazine) 
\bibitem[Sturtevant and Tba*]{b5}\label{b5} 	 		 			Nathan Sturtevant 		,  		 			Tba* 		.  		 IJCAI- 09.  		\textit{Time-Bounded A*. Twenty-first International Joint Conference on Artificial Intelligence},  				 	 
\bibitem[Stout ()]{b9}\label{b9} 	 		\textit{The basics of A* for path planning},  		 			B Stout 		.  		2000. Charles River Meida, America. p. .  	 	 (in Game Programming GEMS) 
\end{bibitemlist}
 			 		 	 
\end{document}
