One Canvas to Rule Them All…
By: Ryan Yamura
Tags: Intern, Projects, Software Engineering, Gamedevhq, Learn To Code

Aloha and welcome back to the story, folks! It’s been a CRAZY last couple days, so let’s get into the bulk of days 48 and 49!

In the last chronicle, we spoke about the importance of group communication, dynamics and a brief mention of the game mechanic I was was working on — the UI pause menu.

Well, after getting together with team, we ran into issues merging.

Womp Womp

However, this actually created opportunity for us to work though them. As this is a learning process, its our time to make mistakes, and ask questions. To make things even more realistic in this case, our GitGuru was busy in another meeting, leaving the six of us to resolve the merge conflicts.

It was actually strange, but we had a merge conflict show up via the console in Unity, versus the console for Git. Git showed no conflicts, and a clean working tree during the whole process. We determined that we should take a look at the files in question with a text editor to see the conflicts that git had flagged during the merge.

Using this approach we were able to see the differences between the two merged branch’s files and figure out together, which version of the file we wanted in the final. After editing out the head file to update to the new dev build, low and behold it all worked!

Merge conflicts? GIT OUTTA HERE!

With those conflicts we were able to merge the latest builds all together and after a couple MORE merge conflicts, we made a new baseline for the project.

Next came a more challenging part, which was figuring out how to move forward to finished Minimal Viable Product build, with all of our scripts and functions working together in harmony. As you can imagine, just mashing these features and scripts together isn’t as clean as one person who has control over everything and knows all the parts. So we did run into issues with clashing scripts, or just not knowing where certain functions and logic was called in order to troubleshoot issues and implement bug and feature fixes.

Luckily, our group is pretty great at communication and dedication, everyone sticking as a group and together we we able to fix bugs, explain logic, and put together a working product, albeit not finished, by end of day 48.

Day 49 consisted of me putting a completed UI system together. Using the UI’s that my other team members created I was able to piece together and organized and systematic UI canvas, using panels that the other’s placed their components on (this was agreed upon beforehand to help organize and develop things better).

Yay for Organization!

My next challenge was to take three different people’s work and streamline it, so it didn’t LOOK like three different people worked on it.

What did I do?

Normalize font sizes and types

Create consistent buttons and aesthetics

Re-organize scripts to account for a singular UI system

Play test functionality and fix errors due to inconsistent coding implementation

Out of all of these, the last part was the hardest. While I don’t think its too hard to look at other’s codes to figure out what logic they used to make their functions work, it is a challenge to sometimes integrate that system into your own. Not only was I working with another person’s style of function and logic calling, but I was working with TWO other people’s completely different way of doing things! It’s also not that their code is “wrong” or anything even remotely close to that, it’s more that we all have our own way of doing things and achieving our goals, especially in a field where there are just so many different ways to do things.

I was able to communicate with my teammates and figure it all out, and devise my own method to the different scripts and adapt my own code to work with theirs! I felt this was actually one of the most rewarding aspects of this part of the process. I learned a lot about the way things CAN and DO work through my peer’s coding and created avenues for me to use and utilize through adapting my own code, as well as use in future projects!

After all was said and done, we unfortunately still are not done done, however we are so much closer than we were, and can clearly see the finish line. Hopefully we can knock out what’s left on the Trello board, called a Kanban board by our GitGuru and project team lead/advisor— A GREAT TOOL BY THE WAY!

A snapshot of the Kanban Board — USE IT!

I’ll be working on the post processing, marketing and the credits screen to hopefully be finished by end of day Monday. And while I’ve learned and witnessed that things hardly go as scheduled and planned, I’m hopeful that with the lessons we’ve learned and challenges we’ve encountered, we will be infinitely more prepared for what lies ahead.

I’m definitely more confident in my skills, my competency with Git, and the team in general, and I’m despite the short project, and the time crunches it brings, I’m having fun.

So, until next time folks, I’m signing off!

— Ryan

Hopeful realist