Very nice day out.
Continued to scratch through the Bucket List, finding odds and ends to debug throughout the day yesterday. Successfully compressed the main Sprite sheet down to 1/2 its previous size! Coloring objects via code is totally the way to go.
Got art in at the end of the day and now struggling to integrate it & make everything work. The export process is somehow adding additional pixels onto the image, which is totally destroying my plan of having everything with a centralized pivot point. The reason behind this is to avoid the Popping problem when we shift between animations, where their pivot points are in different positions.
However, I think the culprit is a small checkmark box called SMOOTH....
Need to re-export out everything again now, however this is a much better solution than reimporting the asset into photoshop and cropping them down by hand to their original size...
The animations are also larger than I remember them being.. will investigate this.
Wednesday, July 31, 2013
Tuesday, July 30, 2013
Forma
Warm today, a pretty nice morning.
Success! Apple got the developer/provisioning portal back up yesterday so we pounced on it and.let a new Test Flight build was let out into the wild very shortly after. The build had a lot of little polish tweaks, but two stood out above the rest.
1. Pie charts!
We finally got the Pie-Chart to render correctly. That was a pain to get done, thanks to Matt for sticking with it. The main issue was that Starling does not have the drawing API that Flash has in order to render the circle. What we ended up doing was actually using the Flash rendering method, capturing the result into bitmap data and then adding it to the Stage via Starling, very happy with the result.
2. Campaign Bug
I believe I solved the issue of the campaign breaking bug. It was mostly due to my own laziness/negligence unfortunately. I had never tested what happens when a player completes all sub-levels within a level. The result is a NULL ref error. Really dumb mistake, I was checking to see of the currently completed sub-level number was less than the total number of sub-levels, if so than go ahead do furtherestSubLevel++, and create a new sublevel.
if(sublevel.levelnumber < sublevels.length)
The problem is that all sub-levels are stored in an array. Arrays number things, starting at 0. So an array with five items in it looks like 0,1,2,3,4. Which means I should have been checking
if(sublevel.levelnumber < sublevels.length - 1)
Simple problems have a way of causing large problems.
Success! Apple got the developer/provisioning portal back up yesterday so we pounced on it and.let a new Test Flight build was let out into the wild very shortly after. The build had a lot of little polish tweaks, but two stood out above the rest.
1. Pie charts!

2. Campaign Bug
I believe I solved the issue of the campaign breaking bug. It was mostly due to my own laziness/negligence unfortunately. I had never tested what happens when a player completes all sub-levels within a level. The result is a NULL ref error. Really dumb mistake, I was checking to see of the currently completed sub-level number was less than the total number of sub-levels, if so than go ahead do furtherestSubLevel++, and create a new sublevel.
if(sublevel.levelnumber < sublevels.length)
The problem is that all sub-levels are stored in an array. Arrays number things, starting at 0. So an array with five items in it looks like 0,1,2,3,4. Which means I should have been checking
if(sublevel.levelnumber < sublevels.length - 1)
Simple problems have a way of causing large problems.
Monday, July 29, 2013
Roots
Nice weather today coupled with the lovely sounds of construction....
Last week made some good progress on Pathogen, completed lots of little UI tweeks. The background color now goes through an organic color shift, where one color fades into another. Wanted to make it procedural based off of a parent color, but it was easier to just grab a bunch of analogous colors and have it randomly pick between them.
The Apple developer accounts went live again! Finally we can try to build out to device! We will be trying to get the Test_Flight version up and running as soon as possible. Updated our contest entries as well with new coupon codes that finally expired.
Formatting a computer today, should prove to be good fun.
Last week made some good progress on Pathogen, completed lots of little UI tweeks. The background color now goes through an organic color shift, where one color fades into another. Wanted to make it procedural based off of a parent color, but it was easier to just grab a bunch of analogous colors and have it randomly pick between them.
The Apple developer accounts went live again! Finally we can try to build out to device! We will be trying to get the Test_Flight version up and running as soon as possible. Updated our contest entries as well with new coupon codes that finally expired.
Formatting a computer today, should prove to be good fun.
Friday, July 26, 2013
Changing Gears
Smelled like woodsmoke and summer rain, Vermont is kinda weird this morning.
We have decided on a course of action when it comes to saving/loading online game data. That information will be temporarily held so that it loads quickly if the player is jumping in and out of their online games. However, if they quit the application we will trash the data. On resuming, the application will pull down the whole list of moves ever made and quickly, virtually make them all, returning the game state to its intended point in time.

So why do this?
1.Well, we are storing all of this data anyway so why not use it?
2. If we save the data locally & the user decides to uninstall then re-install the game we are going to run into major issues. When they reach for the online game what happens?
3. Saving game data is also seriously complex... Lots of variables and states that need to be saved out/ loaded in. With online, since it is asynchronous, I'm more than a little worried that the data could be corrupted on the user end, due to unknown issues. However, if the game state lives up on the cloud, it acts like the host, giving its clients (its players) the information they need. So it becomes a single data location instead of potentially 4 separate data locations (1 per player).
We may end up changing our mind/discovering a better way to go about this, but for the moment I believe this is the best path. Matt got this working on a local level, where he makes a bunch of moves, they are logged into a text-doc, he reads it back in & the game automatically generates the game board at the latest state. Its pretty sweet.
I created a custom Button class the other day (much less flashy/cool), however it was necessary. By doing so, we are now generating all of our buttons via code, not with art assets. Which means a few things.
1. No more bugging Marguerite about making X button.
2. Uniformity, since they are generated via code, everything looks the same across the board!.
3. Save space on our sprite sheet, which is the biggest reasons. Here, take a look.
Before:
And we need every inch for some of the new animations Sybil has been creating for us!
After:
We have decided on a course of action when it comes to saving/loading online game data. That information will be temporarily held so that it loads quickly if the player is jumping in and out of their online games. However, if they quit the application we will trash the data. On resuming, the application will pull down the whole list of moves ever made and quickly, virtually make them all, returning the game state to its intended point in time.
So why do this?
1.Well, we are storing all of this data anyway so why not use it?
2. If we save the data locally & the user decides to uninstall then re-install the game we are going to run into major issues. When they reach for the online game what happens?
3. Saving game data is also seriously complex... Lots of variables and states that need to be saved out/ loaded in. With online, since it is asynchronous, I'm more than a little worried that the data could be corrupted on the user end, due to unknown issues. However, if the game state lives up on the cloud, it acts like the host, giving its clients (its players) the information they need. So it becomes a single data location instead of potentially 4 separate data locations (1 per player).
We may end up changing our mind/discovering a better way to go about this, but for the moment I believe this is the best path. Matt got this working on a local level, where he makes a bunch of moves, they are logged into a text-doc, he reads it back in & the game automatically generates the game board at the latest state. Its pretty sweet.
I created a custom Button class the other day (much less flashy/cool), however it was necessary. By doing so, we are now generating all of our buttons via code, not with art assets. Which means a few things.
1. No more bugging Marguerite about making X button.
2. Uniformity, since they are generated via code, everything looks the same across the board!.
3. Save space on our sprite sheet, which is the biggest reasons. Here, take a look.
Before:
And we need every inch for some of the new animations Sybil has been creating for us!
After:
Thursday, July 25, 2013
Cleaning House
A pretty nice day out today, probably what the weathermen promised yesterday.
Jumped back into Pathogen and wow... Did I not know how to code or what... Its more or less a mess, nothing is commented & some of it is just plain not built well. Spent the day re-writing how capture zones & erosion zones function so that they will update correctly during the replay. Commented those pieces as well, feels much better.
Matt is striking into the heart of online. Pretty sure we going with FLOX as our data host, so he is starting to scrap together the online classes. What we decided was that the whole GameManager i.e. the code that runs the game will be cloned into an OnlineGameManager.
Couple of reasons for this:
2. The online systems and the way they deal with pushing/pulling/incrementing turns is vastly different than how it is traditionally done.
3. If we tried to do just 1 universal game manager it would quickly become bloated, with special cases for local, campaign & online since they all have their own unique quirks.
There is a downside.
1. Anything we change in GameManager needs to get re-cloned into OnlineGameManager, which is kinda a painful bit of micromanagement.
Wednesday, July 24, 2013
At long last!
Cloud with a threat to rain, almost powerful windy, but not yet. Potential to rain seems pretty high, not thrilled if that is the case. Biking home in the rain is not that much fun.

Bike chain fell off again. You notice pretty quickly, almost like a baby tooth suddenly coming free.
And finally the big news, we have a contract! Which feels like this: http://www.youtube.com/watch?v=pYzOQFpGPYE (minus the advertisement...). Looking back we have been trying to wrangle a deal since March when Marguerite first made her pilgrimage out to GDC. Its so momentous that you kinda expect the world to respond, like sunny skies & birds in the air, etc instead of the storm clouds vaguely shaking their fists.
There wasn't any balloons falling from the ceiling at work or champagne either, we just circled the chairs and started to break it down. Ok, what needs to go first? Where do we need to focus and what could cause potential issues. Emails went out to the composers we had talked too and meetings have been setup with Marco so we can all come to terms.
Maybe the lack of joyous response is just shock, think we are all going to go out and grab a celebratory dinner that should help get some feeling back.
Bike chain fell off again. You notice pretty quickly, almost like a baby tooth suddenly coming free.
And finally the big news, we have a contract! Which feels like this: http://www.youtube.com/watch?v=pYzOQFpGPYE (minus the advertisement...). Looking back we have been trying to wrangle a deal since March when Marguerite first made her pilgrimage out to GDC. Its so momentous that you kinda expect the world to respond, like sunny skies & birds in the air, etc instead of the storm clouds vaguely shaking their fists.
There wasn't any balloons falling from the ceiling at work or champagne either, we just circled the chairs and started to break it down. Ok, what needs to go first? Where do we need to focus and what could cause potential issues. Emails went out to the composers we had talked too and meetings have been setup with Marco so we can all come to terms.
Maybe the lack of joyous response is just shock, think we are all going to go out and grab a celebratory dinner that should help get some feeling back.
Tuesday, July 23, 2013
Leaping Forward
Started raining just as I left this morning. Not the funnest bike ride, but at least my socks are dry.
Pulling together Trait & skill lists for character classes today. The goal is to get all of the UI stuff working today. The functionality for everything is already in place, Shouts are super easy, Traits aren't that hard, but Skills all need unique functions which is kinda a pain to get up and running.
Leap Motion went on sale the other day. Loc is now on sale once again and somehow we are on the top of the games page: https://airspace.leapmotion.com/categories/games. Very cool to have that all wrapped up. Mike did the whole conversion process by himself and the final product is quite an accomplishment.
Pulling together Trait & skill lists for character classes today. The goal is to get all of the UI stuff working today. The functionality for everything is already in place, Shouts are super easy, Traits aren't that hard, but Skills all need unique functions which is kinda a pain to get up and running.
Leap Motion went on sale the other day. Loc is now on sale once again and somehow we are on the top of the games page: https://airspace.leapmotion.com/categories/games. Very cool to have that all wrapped up. Mike did the whole conversion process by himself and the final product is quite an accomplishment.
Subscribe to:
Posts (Atom)