Trials of the Rift
is a top-down, competitive couch co-op party game. Two teams of two local Players each control wizard apprentices completing a series of challenges to earn the rank of master. The team which completes every room of their dungeon first is the winner, but players must also contend with the Rift, a magical entity separating the two teams from each other.
requires four dual-stick game controllers to play. Move and aim using the thumbsticks and cast spells using the bumpers and triggers. (If you don't have four controllers, you can use the spacebar dev hotkey to skip through the menus to get to the main game.)
Senior Design is a three-term, nine-month sequence. Teams of four to seven Computer Science majors design, implement, test, and deliver a product to an external stakeholder. The main goal of the project is to learn to work as a company and go through all the steps of the development process, from idea to launch. One option is to partner with a team of Game Art and Production majors and create a game. In this model, the GMAP Team becomes the customer, with the CS Team serving mostly as contractors with limited control over the game's design or content. The GMAP schedule and project requirements are much stricter than the CS ones, so these multi-disciplinary teams nearly always defer to them.
The focal point and USP of our game was The Rift, a magical entity which physically separated the two teams of Players and caused adverse in-game effects for them, such as spawning Enemies, shooting deathbolts, or even totally clearing the board at its max volatility. This volatility level increases every time a Player interacts with The Rift, either by shooting Spells over, crossing it themselves, or just by completing the Trials themselves, all of which were designed to force such interactions.
From a long list of potential Trials, playtesting helped us narrow down to the four that were the most fun: the self-explanatory Capture the Flag; Crystal Hockey, where Players use their Spells to direct a puck into their Opponents' goal; Defeat Necromancers, where Players must pursue a fleeing Enemy, avoiding the traps it drops and other Enemies is spawns; and The Rift Boss, which is always played last and whose health is determined by team performance in each of the previous Trials.
To help Players complete these Objectives, they are armed with an assortment of Spells: a basic, unlimited but low-damage Magic Missile; an Ice Spell that freezes anything it hits and creates a wall in its path; a Sticky Ooze spell that slows and damages over time anything in its area of effect; and a Wind Parry, which knocks-back anything it hits, including directly reflecting the other Spells.
Other things to note about our game are the features that made it actually feel like a game, like dual-stick controller support, fully-interactable UI menus, and coolest of all, a parameters screen. Originally included as a dev tool for quickly adjusting the in-game values without having to make a new build each time, the GMAP Team eventually requested that we publicly expose it for use during playtests as well. This feature remains in the final game, so settings can be adjusted before every match for a unique and customized play experience.
I had two main roles on the project team: System Design Lead and overall CS Team lead. As the System Design Lead, I was responsible for having a complete knowledge of the codebase and how all of the components interacted with each other. I drew all the UML diagrams, wrote the SDD, and performed a majority of the code reviews for the rest of the team. This was the job I knew I wanted from the very beginning, and I was extremely happy with it. As CS Team Lead, I drew up meeting schedules and kept the others on-task. We all worked very well together, so this was an easy job. However, I was also the main point of contact and negotiator with the GMAP Team, and there was always some sort of tension there that never got fully resolved. Even at the end of the project, we still viewed each other as the two separate groups rather than one large Development Team. However, I always made sure to conduct myself professionally, making sure to maintain my team's work ethic and reputation above all else.
It is for this reason that our advisor selected our team to compete in the CCI "Final Four", saying "Throughout the academic year, the Trials of the Rift team has done an exceptional job planning, managing, and executing their work. I have often remarked to my colleagues that 'this team is better than many of the professional teams I have worked with in the past'. We gave a half-hour presentation about our project, our technical accomplishments, our workflow, and the lessons we learned from the experience. We took third place in the competition.
So, what were the lessons learned from Senior Design? Besides the ones regarding workflows and negotiation mentioned as part of the project's development (basically, how to function as such a large team), I'd say that I discovered what I really want in a job: rather than the "contracted coder" role I played here, I want to be a game designer, so that I have more control over the mechanics, dynamics, and interactions, not just the implementation. I want to be more involved in the whole process, which will allow me to raise concerns and prevent problems early-on (like I did within my CS Team). I want a position where my consciousness of "big picture" things can be best appreciated and put to use, and my ideas can be taken and turned into something more.
Final Four Poster:
Final Four Presentation: