Working on Projects

IGM offers many project-based courses. Before coming here, I did not understand what that means. In high school, I did plenty of projects including team-projects. Those were not like the projects I am doing for classes now.

For one of my classes, I'm working on the project for RIT's MAGIC Center (https://magic.rit.edu/). MAGIC (Media Arts Game Interaction Creativity) is a research center/ commercial production company inside of RIT where students can go work projects, start businesses, and do research. It blends technology and art to make awesome things. Many IGM students go there to work on their own projects and also faculty projects. This semester, I am taking a Research Studio class to help build the game Fragile Equilibrium.

Fragile Equilibrium

Professor Andy Phelps, the man behind the MAGIC center, came up with an idea for a game about balance, imperfection, and decay made in the shoot-em-up genre. The plan is to eventually put the game on a service like Steam. To be honest though, the main reason I took this class was that I wanted to experience what it is like to work on a project like this. And, I wanted something that I could put on my portfolio.
 

FRAGILE EQUILIBRIUM

 

First Steps

On the first day, we divided the class into two teams: the developers and the artists. The artists were mainly comprised from people in the College of Imaging Arts & Sciences. Their role is to define the look of the game and create the art assets. The developers are responsible for writing the code and developing the systems. I am part of the developer group.

During the first week, Professor Phelps introduced the concept he has for the game. It was up to the class to design the systems that implemented that concept. We worked together to brainstorm and create reference material. I played several classic shoot-em-up games and studied concepts like Wabi-Sabi. The art team drew concept art and built rough-drafts of art assets.

Early Concept Art from Fragile Equilibrium 

 

The most important thing to do early on is create prototypes. Prototypes allow you to see how things work in practice. You learn lessons and gain insight through the process of making these small pieces of software. Our prototypes were made in Unity, though we would switch to an internal game engine for the final version.

Part of the original concept was a game work that broke apart around you. I helped developed prototypes of how the game would work in terms of gameplay. I also worked on a prototype weapon system.

I had an idea of how to visually show the corruption. I remembered a piece of concept art Andy showed me:



Early Concept Art from Fragile Equilibrium 

 

I wanted that image of reality shattering like glass. But, this effect is rather tricky. Before we could make this a real part of the game, I would have to prove it doable. First, I figured out how to make a 2d plane that displays images recorded in the game world, like a TV hooked to a live camera. Second, I would have to figure out how to split that plane into shards. Lastly, I would have to find a way of moving the shards individually. I also had to show it off and explain how I did it. This was the result of the prototype (please excuse the programmer art):

Alpha Prototype (Unity) for Fragile Equilibrium

 

The Middle Stage

With our Unity prototypes done, it was time to move into production proper. The artists moved from pencils to Maya. The developers moved from Unity to Three.JS. Communication became key.

Our team uses Slack as a way of communicating with each other. Slack provides a messenger service that can be used on desktop and mobile devices. It is good for one-to-one communications and large group discussions. The developer and art teams have their own messaging channels. Art posts screenshot of their work. I make animated gifs of what I am working on and post it for feedback. This level of communication is something that I never did in high school.

To organize our work, the project leads uses JIRA. JIRA is software designed to track tasks and the people they are assigned to. These tasks are organized into one-to-two week sprints. As a developer, every week I would look at my tasks and work on them. When I finish, I mark them as “In Review” and move on to the next one. Someone will check over my code, and, if everything works, they accept them into the project proper. When I first entered RIT, I never really had a system like this. I had to-do lists, but I did not track my tasks or put them in review. It was another thing I learned here.

One aspect of software projects I did not know before RIT is source control. Source control allows teams to work on the same code at the same time. Imagine if one of the developers was working on the weapons code while I was working on the enemy code. We would like to work on our parts at the same time. With source control, we create separate versions of the software, each with our changes. These version (or branches) can be merged together to make a program with both our contributions. Imagine having hundreds of these versions all branching and then merging back into a master version. That is what it is like working on a video game of any real scale. That is how we can manage and complete our individual tasks with everyone working on their own thing.

Alpha Prototype (Unity) for Fragile Equilibrium

 

Polish

A few weeks back, we finished the main development stage (at least for this semester). Now we are in the polish stage. Our main goal here is to get rid of the remaining bugs and refine the systems we have. We stopped making major changes and additions to the project. It is also the part where we make sure everything has been properly documented for those who are going to continue the project. We ultimately want something that can be shown off to industry professionals.

Lessons Learned

I am having a great time working on this. It is not always easy, and I have to work solid hours, but I learned a lot doing so. It is easy when you are caught up in a project to lose track of how far you have come. However, writing this has given me a greater perspective. We started with very little and now we have a functional game.

If the idea of working on projects like these seem daunting, it is. If you are willing to work hard, IGM will prepare you for all of this.

 

The MAGIC Center