Internal Quality Process

The quality of the code is very important to ensure the stability and playability of the game.
To ensure that we have the least number of problems and make it easier to detect and correct them, we created different branches on GitHub for each project delivery. Branches were also created for each member of the team so that there would be no conflicts with the code of the other members. Each time a member had to merge their code to the branch of the current delivery. That code was tested by the member and by the lead or other member that was available at that time. With this, we greatly diminished the chances of creating problems by putting the code together.
To ensure the performance of the engine, we used a profiler to detect in which sections of the code we had performance problems and correct them more quickly.
Finally we used a small library to detect memory leaks in the engine code.

Learned Lessons

Although we came from previous projects where we had already learned several lessons about what it is like to work in teams. This project was much bigger and everything became more difficult. In our case, our team had very few people, so each team member had to dedicate himself specifically to an engine system. That although it gave us facilities in terms of organization because everyone knew what he had to do but at the same time it was a big problem in communication since each member did not know what the others were doing and that has caused problems such as merging, many things stopped working or a member changed code that was also used by other members and they did not know it. With this I conclude that the most important lesson without a doubt is that the communication between the members of a team is fundamental.