ʕ•ᴥ•ʔ Insights into Tech, Data, and Life ʕᵔᴥᵔʔ

The Odyssey of Team Synergy

“In the fell clutch of circumstance, we have not winced nor cried aloud”

👋 If you'd like to play our game, check it out here. Only works on desktops for now

RR-image.jpg

I enjoy playing video games and I was always curious about how to go about creating one. Towards the end of coding boot camp, the pressure was on to form teams in order to create a final portfolio project, which I thought presented the perfect opportunity to finally write a game.

My final portfolio project team comprised of William Dyrland-Marquis, Christian Williams and myself. After working with these guys on several programming endeavors in the past, from hyper-competitive hacktahons, to interpreters for obscure programming languages, I concluded that you can’t ask for a better team of programmers to work with.

team-s-1.jpg

From Left to Right: Will, Myself, Chris

I formally met Chris at our school’s cantina. We were in the middle of a frenzied day of coding, attempting to meet a very tight deadline on a project which involved pointers in the C Programming Language. We exchanged small talk for a little while, and then I asked “What do you plan to do with the education you receive here?”. Without missing a beat, Chris declared, “I want to be the best software engineer in the world. I’ll do what others won’t do in order to become great". I knew right then that I’d want to work with Chris in the near future.

My first interaction with Will was quite unpleasant. I had been coding frenetically for about 12 hours, beleaguered by a tight project deadline. An error message which I had never encountered before, and which Google had failed to yield a solution to, threatened to derail the final portion of the project.

It was apparent from the first week that when it came to programming, Will knew what he was doing. By the end of the second day, he was already writing advanced scripts in Ruby which would automate repetitive tasks. During downtime, when we weren’t exchanging Spongebob themed programming memes (yes, those exist), he would lug out this massive tome which was replete with theoretical computer science concepts, and study. If you spend any amount of time with Chris and Will, you’ll discover that they’re always attempting to improve. They compete in hackathons, attend meetups, and solve programming challenges — In addition to their heavy workload at coding bootcamp!

team-s-4.jpg

Anyway, I approached Will with the hope that he would assist me with resolving the problem which kept generating that error message. I pointed to the error message on the screen and inquired “What is that error message?”. “Probably an error message”, Will replied.

Not what I wanted to hear after the stumbling along to fix an elusive bug.

What really convinced me that Chris and Will would be excellent teammates was their performance and actions during a fiendishly difficult project where Students were tasked with building a Shell emulator(Check mine out, here. I worked on it with another excellent engineer, Andrew Graf). Will, Chris, and another one of our good friends, Jose Alvarez de Lugo, went out of their way to assist all of us in completing our Shell emulator projects. Even though they completed their projects early, they burned the midnight oil with us for two weeks in order to make sure our code worked and was up to standard.

team-s-2.jpg

The champs! From Left to Right: Jose, Will, Chris

I had to work assiduously to convince Chris and Will to form a team with me. Since I entered coding bootcamp with virtually no programming experience, I had to put in those 12–15 hour days (on site) for months at a time in order to attain a high level of software engineering competency. Fortunately, when I popped the question(Chris, Will, will you work with me?), they agreed. Yeah!!

Now, let’s talk about the tech

There are two major components to our project: The game itself, and the portfolio website where we’re hosting our game. Let’s examine each part.

Roles for Team Members

The roles for our team were decided based on our interests and career aspirations. Here is a breakdown of what each member of Team Synergy did:

Problems We Encountered

Creating Rocket Riders wasn’t all sunshine and rainbows. What I will say is that our team was perceptive enough to understand that forming our group with those of similar values would eliminate many complications. Because our values were consistent across team members, we encountered very few problems in communication or perspective.

Problem 1: Feature Creep

team-s-5.png

According to SearchCIO, Feature creep is the tendency for product or project requirements to increase during development beyond those originally foreseen.

We wanted our game to be really cool and creative. We had a list of features which we prioritized This included having a certain amount enemy types, design elements, and level structure. Inevitably my team wished for more enemies, levels, and special effects.

A common mistake which most project managers make is asking their team “How long will it take you to create and implement this feature?”. This question is one dimensional and invites a one word answer in the form of a number. OK, you have your number, now what?

The questions which I asked my team when they approached me to pitch the implementation of a new feature during production are “How much will this enhance the user experience?” and “How much time and resources will creating this take away from all the cool stuff we’ve already committed to make?”. I’ve discovered that asking these two questions invite discussions and debates which are Socratic and have the effect of cultivating practical thinking skills. The great engineers eventually figure out for themselves that the costs of implementing the vast majority of their extra features during production are too high. Chris and Will are great engineers.

Problem 2: Bad Documentation of the Library We Used.

By far, the most difficult technical challenge which we encountered, and overcame, was the implementation of text boxes into our game.

team-s-6.jpg

Our team felt like this a few times

I know, it doesn’t sound difficult, but we were plagued by horrendously bad documentation in Phaser 3. We attempted to use a Phaser 3 plugin called rexUI. We studied the documentation, used the example code on the phaser 3 website, and the text boxes still wouldn’t load. After performing some digging, we figured out how to include just the specific part of the plugin that we were going to use. We decided to place this portion of the plugin into a script, which would load from a JavaScript content delivery network. Fortunately, this worked as intended.

In Conclusion

I believe we ended up creating a very fun game. If you'd like to play it, check it out here(just desktop for now).

#Coding #Javascript #Learning #Programming #Teamwork