Posted December 08, 2024 by Sam Hein
What I Learned?
The idealism behind working from home but also meeting up in person: With the day in age we live in, working from home is almost becoming a norm in some workplaces. I think it has many benefits, but I think in certain careers and industries it has different downfalls. I would say for me personally I can stay focused and work from home pretty easily, however I need a few hours of collaboration time. There were quite a few days on this project where I was able to say "I got this far on my own, but now I'm stuck. Any suggestions?" And the ability to work physically next to someone else, bounce ideas off of each other, and look over the same screen at the same time is such a benefit. For me, it's not necessarily I need someone else to complete the work for me, I just need to talk through my problem with someone. Then I'm able to realize "it should work like this" or "maybe I should try it this way", etc. So, getting a brief time to work on a large team of programmers, and get the luxury of working together some days really opened my eyes to the benefit of a hybrid workplace.
Communication is key: Doing a large collaboration project like this, there are a lot of people to worry about. Which is not a bad thing, but it is a tedious process. You have to have a good understanding of what you're doing and how it affects others, and how does one get that understanding? Communication!! Programming needs to talk to narrative to understand the lore correctly to develop an object correctly. Programming needs to talk to art to make sure the object the artist has in their mind for creation is going to line up correctly for what the programmer is developing. Programmer needs to talk to programmer because odds are a lot of what one person is creating ties into and affects what someone else is making. Obviously, art needs to talk with every group and so does narrative, but I am only going to speak from a programming standpoint as that's what team I was a member of. There was so much I learned on this project about good communication and understanding of other's work. There were times when I felt I executed it really well and I'm proud of myself for that, however there was a time I can think of where I dropped the ball. I think it's good to identify these moments, because there's no better way to learn than from your mistakes.
The difficulties in merging my code with others: On this project one of my tasks was creating the functionality for the UI. For the health bar it was all my code and tied to the third person character blueprint I had been working in previously. However, there were other progression bars that tied to other people's code. I really needed to understand their code to be sure to know where my code needed to go for the UI. Luckily, most people commented out what each section of code was doing, but I still needed the general idea of what each node was doing to understand the correct placement for my nodes. There were also times where other people added nodes to their blueprints that negatively affected my code, so I need to figure out where and how that was going wrong. All of these issues do tie into my topics above of communication and working together in person, but I feel this also adds a new component of having a strong understanding of blueprint coding as a whole. It's okay to not know every single node in Unreal Engine, but it is good to have a basic understanding so that I can navigate my way through code I didn't create.
Most Surprising Part?
For me it was how much the class could get done in a rather short amount of timing. I have to admit, seeing our timeline at first, I was skeptical of how much we would actually get done. I was thinking we'd only have the one level, but our teams were all able to pull off two levels. Now, I don't want this to be perceived as I didn't think my classmates and I were incapable of making a game. I know we all have really great skills, talents, and abilities. It was more that we all have lives outside of this one class - other classes, jobs, mental health, personal issues/life, etc. However, we really created a great piece of work. Art made it look so good; narrative added some really good lore and detail behind it, and programming added some really fun functionality to it. Overall, it was exciting to see the progress of this game during development.
Greatest Achievement
For me personally, I feel I really developed some progressive communication skills during this project. I tend to be pretty shy, and I like to stick with my small group of friends to work with. However, this time most of the people I worked with closely on this project I've never worked with before. I learned more about them professionally and personally, and I learned the importance of both. You need to be able to get along with your peers. How are you supposed to do that if you only know them at work/school? So just asking the simple question of how your day was, weekend, holiday, etc. with the right person at the right time can actually spark interesting conversations that creates better workplace friendships. So, me opening up out of my shell made me proud of myself because I found friendships I didn't think I would and opened up the possibility of working with new people in the future. In addition to this, I also got more confidence in my voice. There were times in the past when I'd let people walk over me and make me feel bad. However, this time I tried to speak up for myself more. I was able to learn the best way to do so as well. I never wanted to cause issues with other team members, there's a polite but firm way to speak up for myself in specific situations, and I feel I navigated those moments really well the few times they presented themselves.
What I Did