My name is Pauline Khun and I'm 26 years old.
Getting my Master degree at Epitech a European institute of technology in 2007,
I next experienced 2 years of development as a Software Engineer in the R&D team of VirtuOz.
I had the oportunity to work on different dialog server technologies used on different products like chatterbots for business (eBay, AOL, Voyages-Sncf,...)
and talking avatars on community website (www.skaaz.com).
After these years of experience in the natural language processing domain, I've decided today to specialize in the video games development and maybe more specifically in game artificial intelligence.
These past few weeks, I test myself on video games development. I first started with a simple path finding implementation with the A* algorithm. Next, I developped my first game AI prototype using
OpenSteer, an open source library providing steering behaviors for autonomous characters.
I finally made it look better in building the behaviors on an Ogre3D, an open source graphics rendering engine, application.
You'll find more details about these prototypes on the following parts:
Behavior with annotation
I implemented this prototype with the OpenSteer library which also provide basic drawing methods and a camera management.
The circuit is generated with checkpoints (circles) representing the intersections of each road subdivisions. The road width is defined by the checkpoint diameter.
I created 2 types of vehicle behavior:
- the first one simply follows the successively checkpoints in avoiding to go out the road,
- the second one, on the contrary, simply move forward with wandering behavior (randomly makes right turn or left turn) in avoiding to go out the road.
An additional behavior they all have is to avoid each other.
I made an application from Ogre3D ExampleApplication class. I adapted the Ogre camera to the same behavior of the OpenSteer camera: It looks in the vehicle's forward direction and its position
has a fixed offset from the vehicle. I took a free blender model and convert it into a mesh file. The vehicles are then represented by a simple white car.
The circuit is created with ManualObject and a road texture. The world is defined with a terrain configuration having a grass texture.
Path Finding
Developped in C++ with OpenGL library for the display, this path finding implementation is tested on a labyrinth as showed upper. The black, white, blue and yellow colors respectively represent the wall,
the lanes, the starting point and the destination point. The red line represents the shortest path founded by the algorithm and the grey color represents the explored area.