Post Mortem - PermaCheck
PermaCheck is now available to the world! Time to reflect
What went right?
Luckily, a lot went right during the development of our game! The programmer was great; he worked really hard to ensure all his systems ran without noticeable issues. He worked on most of the major systems in the game, from the player and enemy attack functions to the grid placement system, and even the mid-game boss rounds. It was never a question of if he would get something done; it was just a matter of when. The designer was also a huge help. Aside from developing the game's core concept and creating all the necessary documentation, he also helped a lot with programming and setting up various in-engine features. I believe the biggest system he designed was the enemy spawning system, which he spent a lot of time after class hours to get right. This quick workflow was a huge help for me, as it meant I was always able to stay up to date on my work, and the next features were always ready for me to begin working on when I needed them.
Both teammates were always very helpful whenever I encountered an issue or just needed some guidance on how or where to implement something. For example, I needed help figuring out where to implement the sound effects for various actions in the game. So, I asked the programmer, and he sat down with me and quickly directed me on where within each blueprint to place the nodes, so I was able to get a handle on it, but still finish the process on my own.

As for implementing my work, most of it went very well. I was able to implement all of my sound effects in the correct spots. The majority of my particle effects worked perfectly once we added them to each tower blueprint. The easiest and most satisfying part was adding the visuals for the main menu background and game over/victory screens. Those were as easy as creating the image, adding a new image component to the blueprint for each screen, and setting it to use the desired image file. I'm really happy with how they all turned out, especially the background for the main menu.

Some other things I worked on that went well were the modifier icons and the game-over and victory animations. The modifier icons were really fun to work on because I illustrated each one by hand, and since I use an iPad for illustrations, I'm not limited to working in one single location, which is refreshing. Michael provided very useful descriptions for what each one should include, which was a huge help for me as I didn't have to think too hard about ideas and could instead just jump straight into making them. Implementing them was as simple as swapping the source file within the widget.
The game-over and victory animations were also very fun to make, as I've never made an animation like that before. I did a bit of research to get some reference on how they should look to animate smoothly, and then hand-animated each frame on an iPad. Once I had the frames, I just had to import them into the project and add them to a new animation within both widgets, where I could then control the speed of each frame and have it play when the screen opened.

What went wrong?
I would say the biggest challenge I faced with my own work, and what I believe was the biggest challenge for all of us, was figuring out how to implement the upgrade animation. The way I created it, I used two different Niagara particle systems and an overlay material set up in a sequencer to space out each part of the animation and ensure it plays properly. The problem was that if we tried to use normal sequencers for this, it would be hard, since we would need to spawn a new one for each upgrade and figure out how to make it appear on the actual model. We tried using Actor Sequencers, but unfortunately couldn't figure out how to get the particle systems to appear properly. What we ended up doing was using a sequence of nodes placed inside each tower blueprint that would call each segment of the effect, with delays in between, to act as a pseudo-sequencer. Thankfully, this worked, and we were able to implement it successfully in the game!

Other than that, there wasn't any major difficulty for me, although we did have some general issues with production structure. However, it went well for the most part, and we were able to successfully release the game in a working and pretty nice visual state.
What would I do differently?
I don't think there's much I would have done differently in my own work. I do think that with the knowledge I have now, I wouldn't have tried to use normal sequencers for the particle effects, and maybe look into how to condense that type of effect in a way that is easier to implement. Besides that, there weren't many things that I think I would change about my own processes. I don't believe there was anything I had to redo or greatly adjust, and I feel that, for the most part, it went very well, even despite the adjustment I had to make when moving from one group to another towards the beginning of the production cycle. I'm pretty happy with how the game turned out, and I would absolutely work with these teammates again.








