Tower Defense
For our fourth and final proof of concept we were given the options of creating a proof of concept that incorporated the following archetypes:
- Tower Defense
- Sports Game
- Management/Simulation
We decided to go ahead and attempt to create a fun and functional tower defense game. The reason that we chose the tower defense archetype was because we had to implement event systems into our code. We thought that the tower defense game would present more opportunity to use them more and use them effectively. We also really wanted to do this archetype because it seemed more fun and achievable in the time frame that we were given.
For this proof of concept my responsibilities were team manager and coding. The responsibilities were a little bit slimmer for this proof of concept because a lot of the code tied in with each other which made for large pieces of work per team mate. As the team manger I made sure that another trello board was created to ensure that everyone knew what they had to accomplish for the proof of concept. I also stressed to my group that it needed to be used more because during our previous proof of concept it was used very little. Consequently, it made things difficult in terms of figuring out what was done and what needed to be done. I also created another google drive folder for our group so that we had place to put our new work for our new proof of concept. Over the course of these proof of concepts, the google drive and the trello boards have made such an positive impact on our organisation and time management. It has kept us on track as well as organized which is key for success in any group environment.
I also held two group meeting during the course of the proof of concept. The first one was the day after we were assigned the proof of concept. During that meeting we started with our usual brainstorming exercises to come up with a lot of ideas so we left no stones unturned. During this meeting we were able to come up with what kind of archetype we wanted to do as well as where we wanted to head with it. For our second meeting we made a lot of changes to the initial idea that we had. This was crucial because looking back on what we had previously I do not think that we would of had something to present with the time frame that we had. After finalizing what we wanted to go forth with we then divided up the tasks equally.
Some challenges I faced this week was the lack of communication between myself and another one my group members. It has been a very busy week in terms of assignments and I have no doubt that this person was very busy. I did try to reach out to make sure that things were being done and that this person was in track. However, I got very minimal responses. For future projects with this individual or with any individual that is lacking communication I think will approach the matter differently. Perhaps having a separate meeting with the individual so that I can express my concern and hopefully get across that communication is key in group.
My other responsibility for this proof of concept was coding. The coding that I did for this concept was the enemy movement and the spawning of the enemy. So in a typical tower defense game you have the enemies that follow a path towards "YOUR" base. So what i had to do was create the path on which the enemies would follow as well as where they would spawn.
For the movement of the enemies I wanted to make them move more organically in terms of turning corners and making them seem like they were on a path. So to do this I used some code from the boxy assets package as well as my own to create movement of the enemies. Using waypoints and speed I was able to create the organic movement that I wanted. I used multiple waypoints in a consecutive fashion to create the smooth organic path.
I did not have any troubles with this code due to act that i have done this type of code numerous time so I recycled and reiterated most of it.
The next part of the coding was the spawning of the enemies. So we had two paths that merged into one, so I had to create two spawns that would spawn the enemies. Using arrays and for loops i created a spawn script that allowed you to create a set amount of enemies that you wanted to spawn and then then delayed the time between them so that they didn't spawn all at the same time. I used an Ienumerator to do that. When the enemies spawned they would then follow their set path.
The trouble that I had with this part was the delaying of the spawn. They just all spawned at one time which was a pain. So I looked up on the unity forums to figure out to best solve this problem and i wound up learning how to use ienumerators. This turned out to be very helpful because before this I did not know how to use this type of code or know what it was used for. So now that i have a pretty decent idea of what it is and does i would like to implement it more into my code seeing how useful it turned out to be.
I am very happy on how this proof of concept turned out. It was a lot of fun to work and I think we have made the most progress on this proof of concept than we have on the past ones. If I were to visit this project again there would be quite of changes that I would make to this game to make it a fun and playable tower defense game.
the first change/implementation of this game would be adding in upgrades for our turrets. Yes we have the upgrade of turrets from light, medium, heavy. But what I would like to implement is an upgrade hierarchy to each individual turret. So I would like to emulate the type of system that Bloons 5 implements. In terms of having different upgrades/abilities/versions of each weapon they have. It makes the game more fun a makes the player strive for the better upgrade to get a better score.
The other thing I would like to implement into our game would be different levels for our game. I find it to be boring just having one set path that never changes. A possible idea for a map would be having a moving map so in some instances the path would change and the enemies would travel to a different location based on how the map moved.
Another thing that I would like to implement would be a more complex currency/economy into our game. Having this would allow us to dictate the unlocks a player gets to the amount of coinage an enemy drops. This would give us a more balanced game would make it a more complete tower defense game.
All-in-all I am very happy with how our last proof of concept turned out. My team has done a great job and has done a lot of great work over the past 4 weeks and i can honestly say I would pick this group over any group due to the work ethic and the drive of wanting to do and help more. Its a blessing to have such diligent workers.