Thursday, November 21, 2013

Better Late Than Never...

Hello everyone.  It's been a long time since my last blog post.  I've been incredibly busy the past few months, and haven't had the time to provide an update on the various projects I've been working on.  I hate to say, but I've stopped and started this blog post several times for two months now...

Which is unfortunate, as a lot of cool things have happened.  Buckle in, this could be a long ride.

Updates on Prisma
We're still trucking along with Prisma.  It's been a very slow process, but we have made some notable improvements to the game since I last talked about it.  Firstly, the user interface...


As you can see, the main menu has been completely revamped.  Hank did a fantastic job creating illustrations for the title screen.  In order to make them move based on the player's current selection, I used a handy, free plug-in called HOTween.

However, the main menu wasn't the only part of the user interface that was revamped...


We also revamped the gameplay HUD.  Alex selected a different, more readable and thematically appropriate typeface, and Hank created a new power indicator as well.

But wait!  There's more...



We've also updated the pause menu and end of level menu.  Basically, everything has been changed and revamped.  This process took about a month and a half to complete, but I wanted the team to move slowly and confidently instead of rushing ahead without care.

In late August, the team determined the next steps towards polishing Prisma.  I drafted a flow chart -- which is visible on the left -- that demonstrated our current priorities and the order in which we should approach tasks.  I also decided to continue with a two-sided approach where the art director focuses on defining the visual look of the game and the designers and programmers implement functional constructions.

Alex took charge of the menu design, and created rudimentary frameworks that the Hank could draw over. After the draw overs were completed, Khoa and I implemented them into the engine.  Overall, I think it is a tremendous improvement over what we had before.

With the updated user interface, we also implemented a ranking system that grades the player on how quickly they complete a level.  Each level has a set of par times (Goddess, Guardian, Titan, and Underling) which are all stored in a single XML document.  My script then grabs the XML document and determines the par time for the level.


Another big update to Prisma is that our diffuse swapping shaders finally have the ability to accept lights.  This update has, in my opinion, tremendously improved the look of the game.  There is now actual depth and a sense of three-dimensional space to the environments.

Behold...

Out with the old...

...and in with the new

Finally, we decided to revamp the red ability.  Originally, when the player was in the red dimension, the player would be able to push and pull specific objects around the environment.  The player's range of possibility was somewhat constrained, yet it still allowed for some interesting emergent behaviors.

That being said, we felt that it did not synergize with the blue and yellow abilities, which let you jump higher and run faster, respectively.  In other words, the red power could not stack with the blue and yellow abilities, which almost always disappointed play testers.

Why were we introducing two abilities that were explicitly related to each other, yet the third and final ability had no direct relationship to the other two?  In hindsight, simply pushing and pulling objects was not the logical conclusion for this mechanic.  Despite these problems, we did like how pushing and pulling added a new dynamic to the play area.  A level was no longer a static construct that the player had to navigate around; instead, it was now something that the player could modify within limit.

What am I getting at here?  It's actually quite simple:  we had a good idea, but the execution wasn't fun. Therefore, it needed to be changed.  So now, instead of simply pushing and pulling blocks, the player can now physically pick up and carry objects around the environment.  On a surface level, this might not seem like much of a change, but in reality it modified the dynamics of Prisma by a great degree. Below is a list of reasons why:

  • Most importantly, the player can now use the blue and yellow abilities when carrying a movable object.  By picking up an object with the red power, the player can then switch to blue or yellow to take advantage of those abilities as well.  With this change, it is possible for the player to have all three abilities activated at once.
  • Before, the player could only fully control the movement of objects along the x axis.  Movement along the y axis was constrained to downward movements.  By being able to pick up objects, the player can now carry objects upwards as well as downwards.

Naturally, such a big change required us to go back to the drawing board for the third world.  Alex is currently heading the charge, and from what I've seen, the levels are a big improvement over what we had before.  I look forward to sharing more of that at a later day.  Please be excited! *wink*

Introducing Bala

When I haven't been working on Prisma or independent contracts, I've been assisting Angelica, David, Daniel, Hank, and Khoa develop Bala.  Bala is a twin-stick shooter that focuses on exploration and discovery over linear action, and is being developed for Angelica's and David's senior-studio class.  I'm acting as lead programmer and level designer on the project.

We began work on Bala in the middle of September, and we just recently cleared the Alpha milestone. A lot of Bala's team worked on Prisma, and I think it's pretty clear that a lot of the lessons we learned from Prisma are showing in Bala.  Below are some of the cooler elements that are currently in the game:


We've implemented eleven enemies for the Alpha build.  Some of these enemies even have textures and animations applied to them!  I'm also really happy we got to experiment with rigging a rudimentary model and basing its attack pattern on animations.  You can sort of get a glimpse of them in the animation above.

I'm not sure how much else I'll post about Bala on this blog, but if you want to read more about my specific contributions you can start here.

That about covers a good portion of my past two months.  I'll try to update more frequently, from now on...but we'll see.  Thanks for reading!