Jan 012013
 

title

Nostalgia. Nearly ten years ago, I began the long  journey down the path to become a game designer. It was around the same time that a little game called WarioWare, Inc. came out. The game introduced a completely new concept of ‘microgames’, which as the name suggests, are like minigames, but much smaller. The idea behind the game was simple. The player would have to complete several microgames back to back, in a randomized order with a limited amount of time and as the player progressed, the microgames would get faster and more difficult.

I remember spending my birthday money on the game and being completely blown away at how much fun it was. However, my early ambitions to break into the game’s industry had shown me an entirely different side of the game. A side that made me appreciate the game’s simple nature yet complex design and inspired me to think about how they pulled it off programmatically. Since then, it has always been a dream of mine to create a game with my own style that builds on the concepts that were introduced by WarioWare way back in 2003.

Six months ago, that dream was realized when I had to come up with an idea for my senior capstone project. It was finally time to flesh out the idea that I’d been brewing in my brain for all those years. I thought hard about the ways I could innovate on the ‘microgame’ genre and in the end I decided to design the game for Android devices because of the advanced hardware features at my disposal.

I put together a project proposal for my professor and the four other members of my group. Shortly after, I was assigned as Project Lead  and Verge was given the greenlight.

*Note: The pictures in this post display a large amount of temporary art assets that will be replaced and upgraded in the coming months.*

 

gamegrid

After the greenlight we had to confront two primary challenges.

First off, we had to follow the Agile Software Development process known as Extreme Programming (XP), which basically meant we had a lot of rules to follow regarding amount of documentation, methods of programming, user stories, etc. Luckily for us, Verge got along well with XP with the exception of the key practice known as iterative design. The main issue with this was the start up time for developing our project’s foundation was so long that it took up more than one cycle and it threw off the initial schedule a bit. However, since the time we spent was on making our framework efficient, it allowed us to catch right back up in the end.

Secondly, because of the nature of the game, we had to figure out a way to have everything synchronized between the microgames, which are being run by a game mode, and the game mode which is being run by the game application itself. In the end, I designed an approach that used multiple interweaving state machines which could tell each part of the program what was going on at any given moment and handle the events as needed.

Now for less technical details and more fun. Allow me to introduce one of our microgames.

 

mg1

The above microgame was designed to allow us to introduce accelerometer functionality and collision detection between game objects. In this microgame, the player has to turn the device like a steering wheel to weave their speeding car through randomly generated traffic. The higher the difficulty level, the more cars for the player to dodge.

 

mg3

This microgame allowed us to add multi-touch support and a simple A.I. pathfinding system into our framework. The objective of the game is to create a connection between the circuits using one finger to specify the start point, and another to specify the end point. The player has to complete the circuit actively so the spark of electricity, which moves along the circuit, makes it to the end. The game is designed to increase the amount of connections which are required as the difficulty level increases.

 

mg2

When we were creating this microgame we were able to improve our touch and drag support and implement a basic physics engine to create a natural feel to the game. Everything from gravity, to bouncing off the backboard is simulated. The goal is just as one would expect, to make baskets. The way to do this is by touching the ball and flicking it in the direction the player would like it to go. As the difficulty rises, the player has to make more baskets.

 

transition

On top of offering several microgames which allow the player to interact with their device in many different and interesting ways, Verge also offers multiple gameplay modes which allows the player to enjoy the same microgames in new and refreshing situations. For example, in the Survival mode the player is given three lives and an endless set of microgames to clear. As the mode progresses, the difficulty and speed of the microgames will naturally increase until the player loses all of their lives.

There are so many microgames, modes and features in Verge that aren’t displayed here, and even more are on the way. Expect to see it on the Google Play store this Summer.

May 302012
 

“Success is a science; if you have the conditions, you get the result. ”  -Oscar Wilde

A new project is on the horizon. Because of this, I have attempted to analyze what makes a game successful to guide my design. After a bit of thought, I narrowed it down to two primary areas.

I have listed these below, along with reasons why I think they valid foundations for a successful game and can stand alone.

  • Fun
    • Valid: Enjoyable gameplay is an obvious reason of why someone would play a game, and therefore, benefit its success.
    • Stand Alone: Enjoyable gameplay does not imply that there is an addictive nature to it. For example, the God of War series. The games were fun, but I personally found them easy to put down while playing, and I never found a reason to pick them back up after completion.
  • Addictive
    • Valid: An addictive nature is beneficial to the success of a game by keeping players coming back and adding life to the product.
    • Stand Alone: A game can be addictive without being fun. For example, Animal Crossing. Personally, I played Animal Crossing for countless hours, but it wasn’t until I had already lost all of that time that I realized I wasn’t having fun. Single button fishing, yard work and conversing with fake animal-people wasn’t enjoyable, but the game kept me hooked because I felt some attachment to the place.

Once the two areas were isolated, I made this Venn diagram to show some elements that make a game fun, addictive or both. I feel that, historically, all successful games have some, if not most, of the elements shown below. I also feel that the overlapping elements are found more commonly in successful titles.

May 232012
 

“A deadline is negative inspiration. Still, it’s better than no inspiration at all.”-Rita Brown

The college semester is finally over. With finals week in the past and a bit of R&R, I’m ready to start on bigger and better things. However, before I begin, I thought I would take the time to share my final project for my Object-Oriented Design class, since it was quite the experience for me.

The last project was an Android application that had to be completed in a week, our grading would be based on a demonstration to potential customers, and was yet another group project. This time around however, I was in a group of four and was appointed to be the team leader. This was the first time the professor had ever assigned leaders, and it pretty much meant that I was responsible for the success or failure of the project.

As it turned out, no one in my group, including myself, had any experience with Android development. This was the most difficult hurdle to overcome, given we had a week to not only learn how to program an Android application, but to actually create one to be marketed to customers.

Unfortunately, this hurdle forced me to decide against doing a game, which is normally my first choice, because I knew that half of the week would have to be spent just learning the Android SDK and creating the design. After ruling out games as an option, the decision ended up being a simple unit conversion application.

In retrospect, it was certainly a rough week, but as with all of my previous projects, I learned quite a bit.

  1. In a leadership position, you need to know how to set realistic deadlines and prioritize tasks to be able to produce the highest quality product possible in the allotted time. If I did not set such strict learning, design and feature deadlines, it would have never gotten completed in such a short time period.
  2. Being a leader you must also know when to cut features based on the scope and deadlines you are dealing with.
  3. Feedback from users is crucial to make great software. When doing the user demonstration of the software I found that many of the users had different opinions about certain features than what I expected, as well as ideas for features that didn’t even cross my mind.

In the end, I got a 100 on the project and an A in the class.

Below is the download link for the Android .apk. It should be noted that due to deadlines and priority of other areas of the program, the currency conversion being updated to current market value was never fully completed. Because of this, the currency conversions should be taken as estimates. I have plans to add new features and finish old ones, then upload it to the Android Market at some point in the future, but for now I would like to return to having my focus on games again. Maybe an Android title?

Smart Converter .apk

Apr 252012
 

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”

So another project rolled around for my Object-Oriented Design class. The program this time around was Tetris. A game that I am not personally a fan of, and even after two weeks programming it, I still don’t enjoy it. However, I did learn quite a bit, as I did with the last project.

  1. Account for every possible case and implement it in your design before you start programming. This is something I thought I understood beforehand, but apparently not to the extent that I should have. Basically, my original design which used strategy, singleton, observer, and facade patterns was not really extensible, so when the professor wanted to add features at the last minute, I wasn’t prepared. Since I wasn’t expecting the sudden changes to the rubric, I had to spend a lot of extra time changing my design.
  2. Debug early and often. I only had two weeks to do this project, and I was already knee-deep in work to begin with. Because of the stress, I ended up cutting corners and skipped all serious debugging until the end, and then I ended up finding a few bugs but it too late for me to do anything about them. Had I started earlier in my coding process, I may have caught them sooner.
  3. Comment as you go and remember that code organization is key. Sometimes the logic of the code is difficult enough to understand without having to figure out how to read it. I had a lot of long nights programming and I could find myself getting demoralized when it came to putting comments in my code as I went. However, when I woke up the next morning and had to reinterpret what I was doing, the importance of simple commenting really sank in. Also, editor-folds are amazing. I recommend using editor folds for fields, initialization, getters/setters, and class methods to improve the overall readability of your code.

At the end of the day, I think I could have done a much better job if I could do it over again, but I feel that train of thought just proves that it was a valuable experience. The “Final” version is downloadable below, with the few known bugs. If I get time, I may go back and clean it up, but I have a lot on my plate right now, and even more coming up for me in the next few months.

Tetris Zip File

Mar 212012
 

“Experience is a comb which nature gives us when we are bald.” -Proverb

I am currently taking a class at Salisbury University that revolves around “Object-Oriented Design Patterns, GUI and Event-Driven Programming”, as the class name specifies.

In this class, we were assigned a project that needed to be completed in 3 days notice. The project had to meet several requirements, such as: it had to be written in Java, design patterns discussed in lectures were to be used, GUI had to be implemented with Swing or AWT, it was to be a partner assignment, and the program could be anything we wanted it to be.

When getting to choose what to program, I am heavily biased towards games, for obvious reasons. I wanted to focus on a very small scope since it was to be completed in a short time span, and during the same segment of time that my other classes were having projects. Knowing this, several simple game ideas came to my mind but because I feared over-expanding the scope, I decided to go with a classic strategy game, Connect Four.

I was quite a bit rusty on Java, given it had been about 3 to 4 years since I had to use it last. So I spent the first bit of time refreshing on Java, while my partner learned it from the ground up, having no prior experience himself. My partner was not familiar with the concept of a simple game loop, so I wrote up the entire design and started work on the game while he did the main menu, with plans for him to eventually help with the game logic. However, as time started to draw near to the deadline I ended up finishing it all myself, though quality did suffer from the time I had waited for him to catch up.

Being my first experience working with a partner in a programming environment, I learned quite a bit.

  1. If you breakdown the design into parts that don’t rely on each other, it seems to be the easiest way to split up the work so you can both make progress simultaneously, rather than running a less effective “relay race.”
  2. Team servers, once setup properly, save a massive amount of time for partner/group work. I didn’t have to worry about when he was going to be available to get the latest versions of his code, and vise-versa.
  3. Relearning syntax can be quite time consuming, especially with specific libraries.
  4. Communication is key, as it is in any job. I actually left a reminder to myself in this version of the project. The original design specified that the game pieces were going to be black and red, and the grid was to be yellow. However, my partner took a picture of a Connect Four set that had a very different color scheme, and used it as the background for the menu, which made the game inconsistent.
  5. Team projects need teamwork, but solo work on them is just as vital. Poor solo work means more work for the rest of the team.

In the end, I believe the quality of work was much lower than what it could have been as a solo project, but I understand that effectively working in a team with programming projects takes practice, and I know if I was put in the same scenario again that the finished product would be vastly superior now that I have this experience under my belt.

Connect Four Executable Jar File

Mar 142012
 

“It’s just a flesh wound.” -The Black Knight, Monty Python and the Holy Grail

I am a huge fan of the Ninja Gaiden series. With release of Ninja Gaiden 3 is just around the corner, I can’t help but get hyped up for the new title. However, there are some things about the game that are off-putting to me at first glance.

It is a well known fact to Ninja Gaiden fans that there have been some significant changes to the game’s formula in the upcoming title. This is because the title is under a new lead, Yosuke Hayashi, since Tomonobu Itagaki, the former lead, is no longer a part of Team Ninja. Hayashi’s viewpoint on game design varies majorly from Itagaki, and his changes to the formula are causing quite the controversy among the fans.

Some of the most evident changes include a new voice actor for Ryu, more story dominance, online multiplayer and the removal of additional weapons that were featured the other titles.

However, The change that has the biggest uproar is the removal of dismemberment. This feature was in the original Ninja Gaiden for the Xbox in the form of decapitations. Dismemberment was also heavily featured in Ninja Gaiden 2 to the point where it became a gameplay element by allowing you to effectively disarm your enemy by “disarming” them, or halting their movements by removing their legs.

In Ninja Gaiden Sigma 2, a re-released and updated version of 2, was the first Ninja Gaiden under Hayashi but the title was built upon an old title, so it did not give him free reign over the design and it limited him to minor changes. It featured toned down dismemberment from the original, going as far as removing blood and gore from the cutscenes and changing the blood red color of the Game Over screen to blue.

Now, Ninja Gaiden 3 is the first title that has given Hayashi full power to design it the way he wants and he is using that power to implement a lot of formula changes, including his toned down violence system.

In response to the worries of toned down violence, Hayashi states that the changes will have the opposite effect and Ninja Gaiden 3 will become a far more violent title than its predecessors.

“For Ninja Gaiden 3, we wanted to focus on the act of cutting someone down, and what it’s like to actually kill someone with a sword. Once you start lopping off limbs, your enemy goes from being a living thing that you’re killing to just a thing. When you’re actually cutting into a person, and you feel them getting scared, and the blood is spraying right on you, you hear their dying breaths in your ear — that’s the kind of visceral violence we’re going for in Ninja Gaiden 3.”

After giving his perspective a chance, I could start to see where he was coming from, but I still personally think it would be better to find a middle ground between the two extremes. Nevertheless, I will withhold my final opinions until I get a chance to play it firsthand on March 20th.

Feb 292012
 

“No one here or anywhere was really expecting this Kickstarter to blow up the way it did. I mean, Dave told us it was an awesome idea, but who ever takes that guy seriously?”

If there is anyone who knows the troubles of dealing with publishers, it is Tim Schafer. Tim faced publishing issues with several titles in his career, notably with Psychonauts and Brütal Legend. His experience with trying to find a reliable publisher has seemed to have left a bad taste in his mouth. Because of this he has decided to try another approach with his new title, currently known as Double Fine Adventure, which is planned to be an old-school style point and click adventure game brought to the modern times.

This new approach was to try to get the community to become the publisher, and using Kickstarter to do so. Originally, the game was planned to be small and because of that he was only looking to get $400,000 to back his project. As an added incentive, there were a large variety of  pledge rewards added, such as $15 or more gets you the game, access to the beta, a video series documenting the game’s development, and access to a private discussion community.

It took 8 hours to get the $400,000 and as of this moment, they are at $2.4 million. This massive success came as a shock to everyone at Double Fine and 2 Player Productions, and they have decided to expand the project with their new expanded budget.

This new found publishing method might just pave the way for a lot of new projects. The benefits of this approach are limitless. Not only does it give you more freedom as a developer, I believe when your boss is the community that you are making your game for, you will end up with a much more successful title. Being a backer myself, I feel much more attached to the game because I aided in its creation even if it is just with my money.

If you are interested in becoming a backer for this project, follow the link below. Hurry, while the project is still taking pledges.

Double Fine Adventure Kickstarter

Feb 222012
 

“In the beginning, the universe was created. This made a lot of people angry and has been widely regarded as a bad move.” -Douglas Adams

A bad move, indeed. However, I have designed a patch that should be able to fix this mess.

Here is a brief overview:

General

  • Added more servers to help with the high population issues.
  • Moon Base expansion support added.
  • Checkpoint system added.
  • Improved graphics.
  • Added one day to the weekend to attempt to balance reduce the harshness of Mondays.
  • Improved mainstream music tastes.

Characters

  • Average character size was far too large, made it easier to obtain Strength and Agility stats.
  • Some quest lines involving dating were too difficult to complete for high Intelligence-based characters. The affected characters have had their Charisma improved.
  • Decreased base sleep requirement for all characters by 50%, and 100% for characters of the College Student class.
  • Removed Hipster class.

PvP

  • All PvP servers are currently being shutdown for being overactive. (World Peace Mode)
  • Breaking the peace will now result in permaban.

Quests

  • “NASA Moon Base” quest line is now accessible.
  • “A Cure for Cancer” quest line is now accessible.
  • “The Final Countdown: 2012″ quest line is now accessible.
  • “You Can’t Eat All Those Apples ” quest line is now accessible.

Currency

  • The economy was getting way out of hand, so it has been balanced now.
  • All currency is now digital.
  • Reduced income of the Celebrity class, while increasing the income of all others.

Creatures

  • More animals, such as penguins, giraffes  and other wild animals, are able to become pets now.
  • Added more cat videos, pictures and content to the “Internet.”
  • Improved flavor of all creatures.
  • Decreased D.o.T. damage of most venomous creatures.

Locations

  • Removed New Jersey.
  • Pluto is now considered a planet again.

Items

  • Price of fuel has been decreased and fuel efficiency has been improved in all mounts.
  • Increased drop rate of bacon from pigs.
  • Added flavor to vegetables, water and other low-level food.
  • Generic alarm clock sound was found to be too annoying and has been changed to something much better.
  • Psychonauts 2 added.

User Interface

  • Improved visual quality for older characters.
  • Added X-Ray vision.

Bug Fixes

  • Fixed an issue that made it unusually hot on some servers.
  • Fixed a bug where high-level food would have negative health effects.
  • Fixed memory leaking issue, aka “Déjà vu.”
  • Fixed a bug where Sarah Jessica Parker had the model of a horse.
  • Fixed an issue where some characters were classless.
  • Fixed Politician NPCs dialog. There was a bug that set their default language to Nonsense, regardless of localization.
  • Fixed a bug where some female faces shared attributes with water fowl, aka “Duck Face.”
Feb 152012
 

“Daring ideas are like chessmen moved forward. They may be beaten, but they may start a winning game.”  - Goethe

Hello, and welcome to the new and improved Rocket Surgery Studios website. Though the site is currently light on content, I have a bunch of wonderful things in store in the coming weeks, but before I go into that, I feel that I should explain the foundation of this site.

Currently, the layout of the site is broken down into three main sections.

  • The Operating Room – All things game design, including non-RSS content.
  • The Padded Cell – General insanity and random nonsense.
  • About Me – Contains a brief description of me, RSS and contact information.

It should be noted that you can access all of the blog posts from The Operating Room or The Padded Cell on the home page of this site, but I have separated them on the header so you can select the topics individually.

I am normally swamped with a large amount of work, but as of now the plan is to update weekly. I aim to keep that goal, but focusing on college is an important step for me to further myself down this career path. In the case that I can’t uphold this, please take my “weekly” update plan and treat it in “Valve Time.”

To new beginnings.