***********************************************************************
Video on Neural Network Assisted Decision Making
***********************************************************************
by Skeel LEE Keng Siang
skeel@skeelogy.com
http://cg.skeelogy.com/


--------------------------------------
SYSTEM REQUIREMENTS
--------------------------------------

To view the .mov video, you need QuickTime 7 (due to the H.264 codec) or better.
Quicktime 7 is available for download for free at http://www.apple.com/

If you cannot view the video for any reason, you can view an online version of the video at http://cg.skeelogy.com/knowledge-ai.php. An up-to-date version of the Flash Player is required.


--------------------------------------
DESCRIPTION
--------------------------------------

Neural Network was used in this demo to show how the decision making of computer agents can be learnt using data sampled from a human. 

First of all, the sampling of data is done via a training program. This program is similar to the actual mini-game but is modified to be able to sample data from the user's actions. 
In this training program, the user controls the behaviour of an enemy robot, while the supposed player robot is controlled by the computer. When the supposed player robot moves around and attacks, your intelligent response as the enemy robot will be sampled and fed into the neural network for training. 

Once the sampling is done, the actual mini-game (as seen in the video) is executed. The enemy robots react according to the attacks of the player. The quality of their reactions is based on the quality of the training data done in the previous step.

Notice these things about the trained robots in the video:

1) They approach me when I am near and stop to attack when they are in shooting distance. They approach me again when I back away. 

2) Once their HP is low, they know that they should flee instead of trying to attack again.

3) Although they have started to flee, they try to attack me again when I am not facing them. Once I point the cursor at them, they know that they should flee, even though I have not even started shooting. This implies that they are especially good at back attacks. 

All the responses to these different situations are handled solely by a single trained neural network without any if-statements to make decisions.

Note that the zig-zag fleeing manner is procedural and not done by the neural networks.


--------------------------------------
CREDITS
--------------------------------------

The video was captured from a mini-game created specifically for the purposes of demonstrating the capabilities of Neural Networks in machine learning.

The mini-game was created by

	Skeel LEE Keng Siang 
	(Data sampling, Network training, Integration of Network)
	skeel@skeelogy.com
	http://cg.skeelogy.com/
	
	GOH Cheng Teng 
	(Scene Setup in OGRE)
	chengteng@alumni.nus.edu.sg
	
	TONG Derong Andre 
	(Neural Network implementation)
	neckoid@hotmail.com

and done using 

	OGRE (Object-oriented Graphics Rendering Engine), an open-source rendering engine.
	http://www.ogre3d.org/

The mini-game was developed as a programming lab for

	CS4213 Game Development
	School of Computing
	National University of Singapore

as taught by

	Dr. Golam Ashraf
	gashraf@nus.edu.sg
	http://www.comp.nus.edu.sg/~ashraf/
