EFFECTS - UI - ENGINE USABILITY - AI
In this project, I have added and kept up to date the particle system that I developed together with Oscar. You can check the particle system on the Factory Engin3D page.
Before starting the project, I managed to pass all the OpenGL Painting System's paintings to the engine’s shader pipeline. Preparing beforehand this process allowed us to start making particles since the beginning of production and I could help other departments.
As the project moved forward, I prioritized my tasks depending on the artists’ and designers’ new outcoming needs such as preparing 3D acceleration and other animation options.
There are many different ways were particles have not good views with simple forms, so we decided to implement a mesh. The particles emit in randoms positions around the mesh,
When the burst mesh is executed, particles are created on the edges in the same shape. As in the GIF.
To give particles more dynamics and prevent them from being planes, we decided to make different meshes. In this way, you have more variation and it would be useful for example for some rocks when Alita breaks the ground.
- Shader and particles were designed only for planes.
Finally, we decide to prioritize other important tasks and we chose to discard this option.
By passing the particles to the engine before the project, I could help in other areas just to start, such as the UI, since we did not have any base at that time. I implemented the labels with their font resource in the resource manager with the FreeType library. Finally, I made some settings to facilitate the maximum variety of fonts with a minimum amount of memory.
- Freetype gave us a texture for each letter for each font and you could not load it all
- The basic information that Freetype gives us, made our painted do not render properly
- The best solution was making an importer where the designers choose the sizes of each source they are going to use.
- We had to change the UI painting because we did not take into account the labels
I added a Control + Z of all game objects transformations to facilitate designers the level creation. Without this tool, they had to remember the previous transformation
To get the most comfortable partition optimization, I put a quadtree that contains all static objects and adapts in real time.
I implemented an object multiselection to facilitate map creation. With this you can:
- transform game objects
- Add the same component for all game objects
- It can change common attributes like layer, game object active, static or dynamic.
- We could not make a frustum from a quad created on the screen
- Take all the elements that are completely inside the screen
After vertical slice 3, I achieved to have the opportunity to implement the frog behaviour. Instead of getting all we have it, I realized a different FSM with all Sandra behaviours.
Frog jumps were the difference between other enemies, at the same time problematic. When the frog jumps he goes without navmesh, we have to control than frog goes to a correct point.
To facilitate designers works, I added all visual effects made it by Ricardo.
Problems
- The camera starts moving abruptly
- Smooth is not functionality
- Ramps make displace the camera
- It follows Alita with smooth
-The feeling of movement and combat are most comfortable
- Is more simple
When an enemy barrelman is killed and exploited, I made a small vibration of the camera to give it a stronger effect on the explosion
To make the player know how the skills work I have implemented a script that uses the same projector for any of the 3 abilities.
I have also put the shadows with a change in texture when focusing on the enemies to know who you are attacking