Sam Hein - Programmer


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.

  • Example: I was having a really tough time with some code I was having an issue with, and once I finally found the problem, I was so excited I found the solution (any programmer knows this feeling of relief and excitement). I pushed the changes without making sure what files I touched, and who else was using those files. I was very lucky that my problem was a simple fix, and I was able to say, "please overwrite my changes, that was my fault, I forgot to speak with them on that." I'm very grateful that it was simple fixes for me this time, as it was a first-time offense for me, but nonetheless extremely eye opening so that I can keep this in mind for future projects, and don't make similar mistakes. There were countless other times, where I copy and pasted my work, discarded changes and waited until those files were available. So, what I think happened that one time was I got too comfortable and needed a gentle reminder to keep the communication in mind with other team members.

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

  • Interaction and Weapon System in BP_ThirdPersonCharacter
    • This communicated directly with BP_GunBase created by Ralph that then other programmers derived their weapons from.
  • Implemented other programmer's blueprints into the BP_ThirdPersonCharacter
    • Jabob's Wall Run
    • Ralph's BP_GunBase
    • Justice's movement values
    • Pedro's Shield and Dash
  • UI functionality
    • I took the UI the Vincent created and made these communicate with BP_ThirdPersonCharacter and other blueprints
    • The UI included health bar
    • Ammo count
    • Shield bar
    • Dash bar

Get Wroughted Iron

Leave a comment

Log in with itch.io to leave a comment.