Martí Majó

Management

In this area i will explain how i have contributed in various ways to this project. Apart from the management of the team which has been a great challenge I have helped and contributed in many other aspects mostly related to code.

Management

Scrum

We have used the scrum method with smaller sprints than what is usually used in companies. I made that call given the nature of the project and of us students and I believe it has worked wonders.

Our scrum was basically one week sprints with each member having their own separate tasks. The sprints sometimes varied in lenght due to university schedule but unless we had exams or lots of "hand in" we maintained it at one week sprints. Each Monday we had an hour to two hour long meeting where, with the whole team, we analysed the objectives that had to be completed the week before and defined that weeks objectives for everyone. this way nobody stayed too long disconnected from work or the team and we all knew what the rest where working on, we also could make sure all tasks contingent to other objectives where done and tested when it was needed to make sure everybody was able to work.

Planning

I divided a Gantt at the start together with a management plan and a contingencies plan. This allowed us to stay on track and know at what point in development we where. This Gantt was updated weekly in our scrum meeting.

Analysis

I had special interest in 360 evaluations and analysis. When the project was suficiently advanced to make use of both these tools I devised a 360 feedback survey and after the projects completion i have analysed every member and sprint. This was thanks to the whole team contributing from the start to the management system where they would say what they estimated a task would take them before they did it and what it really took after. We now have a deviation analysis based on nature of task, on member and of the project as a whole:

- Analysis of whole project and tasks by sprint and nature.

- Analysis Based on members.

About the 360 survey we ended up using a standardised version given by the subject and that made a real difference in some members specifically one which made a 360 turn in attitude.

Code

Camera

I implemented the camera of the game with its own movement with the mouse and keyboard, limits and culling so that anything outside of it would not blit and use up the PC. 

Renderer

We were given a basic renderer which I improved. I made it be able to blit things in the game world and outside of it such as UI. Later I implemented sprite ordering so that sprites where blited depending on their nature: first map then entities, selection on top and UI at the end. After i made entities blit depending on their y coordinates so that entities in front of others appear to be so.

JPS Path Finding optimization

Jump Point Search is an optimisation of the A* algorithm that only visits certain indispensable nodes making the path finding algorithm way more efficient. This implementation was quite challenging and I would regard it as one of the strong points of our code and a very fun experience to code.

https://gyazo.com/688d71666ddc6dd1cbd53d9fe3334c07

Quad Tree

I implemented a search and space algorithm to optimise management of entities. The quad tree algorithm is an algorithm which divides the space when necessary by dividing into quarters and stores entities within an area so that only a much reduced number has to be checked for a given action. I believe this is another strong point of our code that makes me proud.

https://gyazo.com/0cc258f2266d380962eae3e192984045

Buttons & UI Manager

Together with Juliá we implemented a UI Manager to manage all UI components making great improvements from a base he had implemented. Later we also made a similar reform with the button class changing various things, most notably we made all buttons work with a task class that i had devised so that they didn't need to make use of pointers and be associated to such.

Entity Manager

I implemented a factory module to trace care of all creation, management and deletion of all entities. This is the base factory for all interactive game components which are all childs of the entity class.

Entity Class

The entity class is a class I implemented to be parent of all interactive game components. In the end project it is used as parent to:

- Units

- Turrets

- Resources

- University

- Town Hall

Unit Class

This is a class I implemented with Marc Latorre which makes the units in the game. I found quite interesting its AI and movement, first of which i did implement alone in a state machine.

https://gyazo.com/349f816aaaabac2823abcb8a66f57ee6
https://gyazo.com/5eba064bfff4ad25e220625991ba8253

Resource Manager

I implemented a small class so that the game scene could manage the resources and their use. It holds all prices and spends resources to create entities through the entity manager. 

Selection

I implemented the entity selection through the quad tree in entity manager. I implemented both selections, with a click which checks if the player is clicking in any entities sprite and group selection which checks if any entities are inside the selection rect and allows for groups of entities to be selected.

Scene Manager

I improved greatly the Scene Manager class which is used to change scenes in between Menu, Game scene and Score scene.

Isometric Primitives

I fully reformed the isometric primitives we used and all their functions to have a good geometrical base we could use in the game.

Animation Manager

Together with Marc Latorre we implemented a module to load and manage all animations in the game. He later improved upon what we had made giving place to the last version of said module but the core workings of it have not changed.

Wave Manager

I implemented a module to manage the creation of waves which was later improved by Dani and Marc Latorre.

Bug Fixes

In the end of the project I have been in charge of fixing a great number of bugs which have popped up during development and which have been fixed for the last release; the Gold.

CITM, C/ de la Igualtat, 33, 08222 Terrassa, Barcelona
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar