Introduction
I'm Eric Sola, a CITM student, and i've been working in this project as a AI programmer and later as a graphic programmer. This project have shown me how it is to work in a multidisciplinary and relatively large team, using scrum methodology and our own game engine. In general, my perception of the project and the subject is positive and the result is a enjoyable game.
Scrum AI:
-
PathFinding:
First of all I implemented a Pathfinder class which calculates paths when an entity asks for it using an A* algorithm.
-
First Enemy:
After finishing the pathfinding I started working in a simple enemy which will follow and attack you when he hears you, and return to his initial position when he loses sight of you. All the functionality was inside a single script.
-
New Movement:
At this point the AI scrum growed up to 4 programmers. The first days we modified how the AI will work, instead of using a single script we will use some called actions, and we started by changing from a linear movement to an accelerated one using steering behaviours as Align, Arrive, Seek and the Movement_Action.
-
Perception System:
For the AI perception I did an event system using an Observer pattern where events are triggered from different sources and sended to the listeners by the manager. Althought it could be extended with more events we decide to stay only with hear and sight events due to the needs of the game. For example when the player moves it triggers a hear event and if a entity is close enought it will react.
-
Investigate Action:
This is one of the new AI behaviours. When the Enemy_Listener recieve a hear event close enought it will go to investigate to the position where the event have been triggered, interrumping it's current action. After a time investigating the entity will return to the position where it was before.
-
Integrate Enemies FXs:
I added all the audios to the enemies such as hurt, shield hit, die, unsheathe sword...
-
Bug Fixing:
At this time, we were 5 programmers at the AI scrum and for my last time there i didn't added any new feature, instead, I've had been working in fixing a lot of bugs, some of them were in the AI code such as errors in the Chase_Action and FacePlayer_Action, the Pathfinder or the Perception System and other were in the engine such as the C# Garbage Collector bug.
Scrum Map:
-
Added new options to Partiles:
This was my first work out of the AI scrum and to learn how the event system and the render work I added some new options to the particles such as different Blend Modes and Glow.
-
Shaders:
I created a reflexion shader with Miquel Izquierdo that it's made using a Cube Map Texture which is baked at the beginning, when the level starts, and then displayed in the boss floor. The result is not as good as it should when playing but to not affect the game performance this was the best option. Later I created a Fresnel shader and integrated it into the default shader, the purpose was to use it in some of the map elements but, at the end, it's used in the boss floor to dissimulate the reflexions errors.