This was my first GameJam experience. I decided to finally try one only after I had at least a little bit of knowledge about the process. Using Discord for communications and Unity's built-in Teamwork Management framework, our team of three completed this project from scratch in just seven short days.
While it's not something I'm very proud of, I did learn a lot doing it. Working with a team, keeping to a schedule, and exporting the final project were most important.
The biggest challenges our team faced was managing roles and creating a unifying file structure. We each worked on our own part of the project and so we each created our own individual files & folders that were not adhering to a standard framework. This created disorganization as I often found myself wondering what a script was even responsible for, or which object was using it. In the end I simply trusted my team members and kept to my own folder.
Keeping multiple developers up to date and synchronized was a challenge we immediately had to solve, before we could even start work on the project. Github was suggested, but we decided to try Unity's built-in solution instead. It definitely helped alleviate the problem, but we still had a few issues due to our lack of organization. I learned from this project how to effectively separate and group so that I can easily locate them in the future.
I was excited when I realized that we had time left over to add a projectile ability. Originally we had no way for the Player to fight back against the enemies, and adding this was a big contribution to the overall experience. I was responsible for its implementation -- Control binding, UI and the like -- and I went the extra mile by adding some delay on the score counter to show a more visual increase in points.
Adhering to a deadline is without a doubt beneficial to my personal workflow. I know now that I work more efficiently when there is a definitive end date. For this project, I allotted a number of days to work on different parts. We also used Trello to keep our thoughts organized and have a visual representation of the functionality we wanted to implement. On the last day, the game was finished and we had a bit of extra time to clean up and export.