Saturday, December 8, 2012

Devlog Space Runner

Here is an update on our work in progress for the OUYA console.  This week we spent quite a bit of time completing our game design document.  This took us several days and it is something that we love/hate  doing.  Making design decisions is difficult and the best answers aren't always obvious, so although the design may not be the best, it is a start that will allow us to complete the game.

From the design document we were able to sketch a development roadmap that we're now following for the coming months. What follows are individual updates on the graphics and programming sides.

Graphics (Jake)

This week I've been working on our trench model and ship textures/lighting.

For the trench my basic plan this week was to get that bland look out of the scene with texture
tweaking and baked lightmapping. I also wanted to get the trench in a spot I liked so I could
easily bake different types of light maps and textures for it. (You can see comparison photos
Old Trench Map
New Trench Map Variation 1
New Trench Map Variation 2

So that's it for the trenches for right now! I'll be working hard on the next week trying to do more
improvements to the light mapping and textures.

Now for the ship! This week I had to redo the back end of the ship because it was just costing us too
much in tri count. So first I remodeled the back end, then textured it and then re-baked everything. I
then started working on lighting and textures. I'm still not even close to happy with how it's looking in
the game right now (below are comparison images).

Old Ship Map
Old Ship Map
New Ship Map
New Ship Map

New Ship Map

As you can see the maps need a lot of work still, but they're getting closer. That's it for this week as far as what I've been hard at work on. (bullet points for next week, see below)

  • Modeling 32 vert collectable
  • Texturing scene obstacles
  • Continued improvements to lightmapping on trench and ship

Programming (Zach)

This week I added parameters to the ship physics system that allows changing:

  • Acceleration
  • Braking
  • Max velocity
  • Movement speed
Once those were implemented, I started on the arduous task of creating a UI system to handle purchasing and equipping upgrades.

I wanted a helper UI that I could use throughout the game that displays useable buttons along with their respective actions.  I am quite pleased with the initial implementation and how flexible it is.  The helper transitions between button states using translation and opacity and looks good enough.

I don't have OUYA button graphics so am using XBOX for now.  However, I added the ability to convert between XBOX, OUYA and PC graphics based on what the user has.  The only thing I'm not entirely happy with is the spacing between elements, but to fix it I'd need to write a function that trims and calculates exact pixel sizes of the labels (which are all fixed at the same width for now).
UI Helper with 2 actions

UI Helper with 5 actions
Next I designed a basic item HUD, an image preview will go in the gray box, maybe.
Item HUD
Finally I put these together and designed a scene where you can select between 3 sets of components.  When a set such as Engines is selected:
  1. The camera begins panning to a pre-defined camera position
  2. The purchasable/equipable item HUDs load on the screen.  
Items can be selected by hitting left/right etc. The transitions look good, it just needs some graphical tuning now, a revisit to label sizes/alignment and eventually some sound effects.
The final upgrade screen
The next steps from here are:
  • Export the items list from google docs to CSV
  • Load the items list
  • Store environment variables for purchased and equipped items
  • Allow purchasing/equipping items
  • Show stat differentials to determine the best item
  • Sleep