Thursday, February 28, 2013

Fingers Crossed

Last day before we head on down to Mass. The build is looking pretty solid, going to do some spelling cleanup on the presentation build as well.

Yesterday pushed a new build out which its UI tweaked a little bit, the main menu simplified, and the replay system fixed to actually step through the game.

Went to testing the other night to some great positive responses. The students really seemed to like its simplicity and depth + they found a bug! Go testers!

So wish us luck for the competition, we have no idea what we are getting ourselves into or what the competition is going to look like, except for the two Champlain Senior teams that are heading down as well. However, were are in different categories, so at least we are not directly competing against one another. Best of luck to them and us.

 

Wednesday, February 27, 2013

Replay System

going back over the replay system today. I really want to get it to a place where you can actually see it animate between moves. Currently, the replay system is pretty cheap actually. After every move the game takes a snapshot of the board, by grabbing all the cell "states" and owners. The animation i played in Overflow, was a simple trick of the eye, i simply told all the pieces that were supposed to be on the board to flip and appear, making it look like the game was playing the game. However, in reality it was just resetting the board to a moment in time.

What should happen is when you move to a moment in time, the board should not only reset but it actually play out the move that happened. Which means I need to now save the location of the tile location that was clicked, whose turn it was, as well as the type of tile placed at that location.

Tuesday, February 26, 2013

Random Updates

So after all that  work figuring out how bitmap objects work, tablet devices actually couldn't take it... Redrawing the whole screen every frame was actually too demanding. Looks like i'm going to stick with what i built earlier... whatever Flash.

Presentation is nearly complete, looks good so far. Testing at Champlain before we go.

Cleaned up the animations (got rid of the legacy symbols) and did a little bit of color correction. The cells pop way more now on the screen.

A few strange bugs persist, but i have yet to track them to the source which is irritating. Sometimes we play a game and it breaks, other times not. No pattern has emerged so i'll keep an eye out.

Monday, February 25, 2013

Presentation Time

Last week was all over the place. Travel down and back kinda took it out of me, however the gala event was a lot of fun. Met a lot of people, old Champlain grads as well as some of the graduates from our own year which was a pleasant surprise.

Came back, buckled down and really started to think about my rendering issues at hand. The really nice transformation animations that i want to do (moving, scaling objects on the screen) is too expensive on mobile devices. I began to dig into how bitmap objects work and have integrated it successfully into my background manager. Which means more particles!

However it will not work for my transition stuff :(. So why is that? Well, with using bitmap data objects, instead of adding all of my movieclips (those things you see on screen, the buttons and what not) directly to the stage where they are rendered, they are instead pushed into a bitmap data object and then rendered as a single bit map on screen. This bitmap is then redrawn every frame.

This is pretty cost efficient. It takes the same amount of time to redraw the entire screen as it does with redrawing a portion of it. The problem though, is that when objects are drawn into the bitmap I lose all ability to communicate with them because the entire thing is one flat image, not individual parts. In this way i cant tell the difference between two different buttons the player could click on.

This leaves me with two choices:

1. Work around this issue by doing something fancy. i.e. check player mouse position, compare that to where the button should be within the bitmap being drawn, if they are the same then I know the player clicked on it.

or.

2. Simply cut out that the transformation kind of animation I was doing.

And right now, with basically four days to go and a desperate need to get a presentation working, I chose door number two.

Tuesday, February 19, 2013

Testing Tonight

Game setup is reaching completion (once again). Got map size switching in, map editor got a facelift. Just trying to iron out the little wrinkles aesthetically.

Was tired of waiting for the finished animation sets so I cloned that current tile animations I have, changed the color and presto the game is now fully playable with 4 different players. Its good to have the game in a solid state. I am probably going to build out to TestFlight today as well so that we can have some other people get their hands on it and give us some feedback.

Working on a newish system to give better feedback to players about how close the actual game is. Right now when the bars get super close it gets difficult to tell who is winning.

Headed to Champlain tonight to go test the game, which is good. Wish I could take more than 1 device with me, but oh well. Wont be posting tomorrow, headed down to the industry gala event to go rub elbows with some other indies and try to make an impression as well as have a venue for showing off the game.

T- 1 week until the contest, really need to start working on that presentation.

Friday, February 15, 2013

Bitmap Objects

That is how they do it. Now i just need to figure out how they work.

Currently I create an object, it draws itself onto the screen. done. Every frame the computer has to redraw that object on the screen. If that object has an alpha (a transparency) then the object has to draw the background, itself, and then the various shades causing a lot more processing power to take place.

The concept behind bitmap Objects is that every frame you draw the whole screen, but only the result of what has taken place in code. For example, if a screen has 50 buttons on it, instead of calling a draw function 50 times (1 per button), it only draws the screen once. All objects become 1 image.

This allows the developer to make those really nice animations, or smooth motion, or a zillion objects on screen.

Thursday, February 14, 2013

Flash Builder...

tried to start another round of memory management and guess what? Flash Builder just did not want to cooperate. For absolutely no reason, it refused to show me the memory portion of the profile system. Three hours... and didn't get it to budge. Found a few forum posts stating that a few people had identical problems which were fixed with a reinstall...

But guess what?! Flash Develop has one too! That is just as good! That was the last minute victory that came out of yesterday. So good to start rolling on that, which Mike has said he is up to work on.

Need to figure out what I'm going to be up to, a few things presented themselves when I started a giant list of what needs to be accomplished.

6 days before the Boston thing, which is one of the milestones I'm shooting for. Need to start preparing a presentation too.

Wednesday, February 13, 2013

Looking good

Getting there. The Game setup screen is basically done now, which is pretty awesome. Need to put in the option of changing map sizes in, but that's pretty easy to do. Mike has jumped in and is now helping out! Which is huge relief, there is just so much to do. He is tackling the map editor and associated mayhem it comes with (saving & loading player generated content). About to go through the paces of making the transition into the normal game pretty.

Having things fadein/out all that jazz.

Still thinking about names, we know its not going to be Overflow. The game has beyond that, which requires a new name. Playing with names. Hopefully testing at Champlain next week with all new animations/stuff.

Those on TestFlight will get a new build next week some time I think. Need to get the animation from Matt before anything happens, not to mention doing some more memory management.

Tuesday, February 12, 2013

Ease of Use

The game setup screen is almost done, got about a half days work to get it functional again. Its taking much more time then when I last rewrote this code over December break since this time I'm focusing on something else as the major feature. Its all about ease of use and first time players this go around with the UI.

The previous screen can be a daunting challenge for people who have no previous RTS or game playing experience. There is simply put a very  large number of buttons and information presented to them all on a singular screen. One of the real selling points about overflow is that its a strategy game anyone can play, because it harkens back to traditional board games. The "pieces" you play on are very limited and the rules, once learned, apply to all new pieces that player later gains access too.

When players first approach the game setup screen, I really only wanted them to only have to answer a single question at a time. How many players are you playing with? What color do you want to be? etc. Making this a reality on the other hand takes a far longer time. Its a pretty heavy mix of animation work coupled with a complete rewrite of my original classes.

Monday, February 11, 2013

So much to do...

The countdown has begun...

I have roughly 14 days before the March 1st deadline for the MassDigi competition. I lose a couple days going to the event on the 20th, which is kinda a bummer.

So, knowing that is my limit I've started to layout what needs to be done. The highest priority at the moment is taking another stab at the game setup screen. I am currently in the midst of reworking the entire layout, making it match our new art style as well as making it way more user friendly for the first go around.

Then the Post Game Screen needs an art pass and finally the map editor.

Tutorial messages should appear in game, a system i haven't even started... And I need the final animations from Matt which should take a good day to get in there and make sure everything is functioning on the code end.

In addition we might want to think about a new website layout, marketing material, etc. We need business cards to hand out at the event, a presentation we need to plan, and at some point in time I have to make a real design doc, not just my illustrator file filled with random notes.

Oh boy, here we go.

Thursday, February 7, 2013

Memory Management

Learned some new stuff yesterday about how memory works in Flash. MemoryWhat I thought was a memory leak was not one, instead it was poor memory allocation. When I was destroying objects in Flash (i.e. removing them from the screen) they were in fact not being fully destroyed, their memory footprint remained. Which means that every time someone finished a game and opened a new one, another 228 instances of the tiles were instantiated (created) ontop of the old ones that had not been properly removed from memory.

So basically, as you played the game grew in size. The more memory it took up, the slower the game would begin to play. A really big problem in short.

That is where Flash Builder comes into play. With its handy-dandy profiler tool i can watch in real time the memory allocation of that game, take snapshots of memory at different points in time, compare them, and ultimately discover what in the world is not being destroyed when I tell it too.

Right now, I'm getting pretty close to being perfectly efficient. Still adding about 100-200 K per game to the memory stack, but I should hopefully be able to tackle that problem today.

Wednesday, February 6, 2013

On the right track

Time to sit down and puzzle out this memory leak. Went a-testing last night and discovered that it still existed, even when the online features were disabled. So, that's a problem. Also found a pretty random null ref error as well in a particular instance that I will need to figure out as well.

But overall testing we a pretty good success, the new art/mechanics were well received and people tended to pick the game up far quicker than previously.

Buttons are also on the menu today, I want to try to solidify their look and feel to match the rest of our art style.

Tuesday, February 5, 2013

Microscope!

One of the best parts about design is looking at the source material, whatever that may be. In our current case that is the cellular world. Words from AP Bio back in high school are beginning to float back to the top, mitosis & meiosis. Looking at microscopes, virus, and most importantly other games that have a similar aesthetic (of which there almost always are).

Splice, Flow, Spore (the cell state), and Osmos are what I constantly turning too just to see what they did in X instance and then recreating whatever X is in my own way.

Monday, February 4, 2013

Stabilized

Worked hard this weekend and got everything back to a nice stable place. Fixed the undo function (which broke as a result of the new animation system) and worked out  all of the  bugs associated with the new system. Its just a really good place to be right now, about a week ahead of schedule.

So now we are going to sit back, play test the game, make sure that everything is in fact working. The next thing on the list is creating a new animating background, thinking of some kind of watery scene. Like Osmos/Splice/Flow.

A new member has joined the Overflow team. Matt Adamac, who we graduated with and someone i've worked with in the past, has agreed to help us out on the animation front. Which is so awesome because otherwise I would have had to animate everything. So three cheers for Matt, and now back to work.

Friday, February 1, 2013

Looking for an Artist

So we have reached that important step in development where we need a professional to step in and start driving. My experience as an animator is limited and having someone skilled would be such a load off of my shoulders.

Here is what we need:TileArtStyleEvolution

A 2D animator who can take the newest cells that i mocked up and turn them into this kind of animation. Yes, this is frame by frame and would need to be done in some Vector based program either Flash or Illustrator. If you are interested in working with me, please contact zachbohn@msn.com.

To find more about the game, play it here: http://www.birnamwoodgames.com/overflow.php



 

Update

While we were at the state house it quickly became apparent that Overflow, on our iPad2, was getting slower and slower after every game I completed. To make sure I wasn't mistaken i quit out of the application and launched it again, and sure enough the game ran better. All this can only mean one thing, a memory leak...

I believe it stems from the online component somewhere, stopping & starting online games, something like that. So that's another project to add to the list of things to do. Running diagnostics like that with Flash is a tricky piece of business. Mike told me that Unity can be run in a diagnostic mode when hooked up to a mac running Xcode, and it will print out what functions are being call.

So we are going to try something in that vein at some point in the future, because currently the game is all kinds of broken. Putting in a new animation system has caused me to reassess how the game code recursively runs the cascade of tiles. So on top of integrating animations I have to debug and make sure that change doesn't create complications in other systems.

Still working on art direction, got a kind of prototype working, basic stuff, which was good. But we are still battling over what the tiles should look like, should we change the symbols? etc. Lots of animation tests to try to predict what something will look like, however it becomes difficult because there are simply so many tiles on the board. The animation might look good alone, but when its surrounded by other tiles, maybe not. Or, will it look good when its repeated several times? Or even in various color shades.

Overall, a lot to think about moving forward. We had tentative deadlines since we are trying to polish the core game up as much as possible for the MassDigi competition in Cambridge that we are attending on March 1st.