Wednesday, May 29, 2013

Build 1.9

Its finally here.

Build 1.9 is a huge step sideways in development. We are back to where we were about a month ago, however everything is now different. Without the crutch of the Flash Display list we have been forced to come to terms with the actual huge number of sprites in the game. The cell animations in particular are pretty huge, spanning 3 full 2048x2048 sheets. To compensate we have had to optimize in every conceivable way. Starling has given us the tools to do some pretty fancy things like creating dynamic scaling textures (as used in the vast majority of our UI as backgrounds).

The learning process was pretty swift thanks to the fact that the parent/child/syntax from Flash professional has been maintained in Starling. And as a result I would probably never really go back, though Flash Builder has its own set of quirks. (Autocomplete?!)

And now its mostly there, at a full 60 fps. Menu systems have been completely scrapped and rebuilt in a number of instances from how you interact with the later campaign levels, to saving/loading in the map editor, to how you manage adding/removing players in a local game. The number of changes is so vast that I don't even know exactly how much we have changed over for the better.

Tomorrow we are headed out to Burlington High School to talk about the development of Pathogen & design in general. Friday we are moving into our new space located in downtown Burlington near Perkins Pier. We will be in the shared space that JDK owns which is pretty exciting to be around more creative people.

Pictures will be up soon as we step into our second year as Birnam Wood Games

 

Thursday, May 16, 2013

Almost back to where we started

Whew, almost there.

Over the past few week we have learned a ton about Starling and how to get it function. Today is another milestone in terms of efficiency and development as we are compressing our sprites sheets down to the smallest possible configuration. We have been tackling the issue of loading assets and yesterday Matt seemed to crack it.

We are building a preloader which displays a loading bar at the beginning while we background load all of our assets from our condensed sprite sheets to their targeted texture atlases. Which is just a complicated way to say we load everything up front so that the experience is smooth without any additional loading times.

The Campaign structure has been rebuilt better than ever thanks to the Scrolling properties in Feathers (a UI extension of Starling). All of the modes have been added as well except for the Invasion Game mode. Today is going to be another gloss over on the map Editor, putting the save/load functionality back in and Matt is going to be tackling the undo/replay functionality again.

We were using a flashbased library to render the Pie Chart originally, however it was not compatible with Starling so we ended up converting it over which is pretty awesome since no one else has done graphing in Starling apparently, so we should be posting that pretty soon on their forums.

In about two weeks we are headed to Burlington High School to give a talk about development/show off the game and right now the goal is to do that with the Starling build and we seem to be on track.

 

Thursday, May 9, 2013

Been Quiet

Last couple of weeks have been pretty quiet from us. Rewriting the entire game has been kind all consuming, but we are getting closer now. Pathogen is playable again with the Starling Framework, which is exciting. The code is looking a lot better now, way more structured and hopefully more efficient. Slowly putting functionality back in, Matt is tackling undo/replay and I'm setting the campaign structure up again.

Overall its coming together, we have about another full week of this before we will be back to where we left off. Then from there it will be learning the in's and outs of Game Center.

 

Tuesday, April 23, 2013

So, kinda a big change.

After months and months of working on Pathogen we have come to the realization that I built it on the wrong kind of foundation. There had been warning signs, questions raised about "Why can't we animate this?", or "Why is it running so slowly?".

The answer is that Flash Professional was never meant to create full fledged games, animations/prototypes yes, but full games no. The reason is the Flash Display List. Every time you call addChild(thing), that object is added to the display list. It doesn't matter if all of those children are being drawn to a parent object, each is being drawn individually through the Flash Display List. Which means that every frame (in our case 24 times a second) the whole of the flash display list is being redraw. In a normal game that breaks down into each "tile", all 228 of them on a small map is being redrawn, each of those tiles have a grid space, so double that, add the player selector buttons as well as the GUI objects and your talking somewhere in the realm of 500+ objects being redrawn every frame for just a small map.



This limitation is what causes those little loading hiccups when switching map sizes on the game setup screen as well as loading a game in general.

It also limited the number of artifacts we could have moving around in the background, how fast the slider responds, and was one of the big reasons why we decided to ditch phone development.

So after a long talk about it, we have decided to address the problem. The answer is to virtually rewrite the game using a known flash engine such as Citrus, Starling, Flash-punk  or Flixel.  These engines are created in such a way that all assets, no matter their number, are all drawn at the same time and thus drastically increasing efficiency. 

The first step in the process is research. What do these different engines have to offer, how active is the community, how well does it integrate, etc.

After a few frustrating days of testing we have come to a decision, Pathogen will be rebuilt using the Starling AS3 Framework.

Why did we choose Starling? Well, it had a lot of things going for it.

1. Adobe seems like they wholeheartedly officially support the engine, which means in the future they may plan with it in mind.

2. The community is pretty strong, a lot of big name games (Angry Birds) have been created with it and there are some great tutorials out there.

3. It mimics the native Flash syntax, addChild, EventListener, all has a Starling variant making it far easier for me to switch my thinking over to a newer system.

So a wide new world await us, tomorrow I will be talking about my experiences in getting Starling working(not an easy task) as well as what the big code changes will be making the switch over to this engine.

 

Wednesday, April 17, 2013

Sound...

Thanks to Ryan for letting us know about the continuing AI issues, Matt turned around and took another look and I think we plugged the rest of the holes for AI.

Learned that the way I had been loading in external libraries into Flash was all wrong, as a result the game had a ridiculous build time as well as a bit of lag time when running a level for the first time. Now I know what not to do.

When Pathogen first launches, it sits on a pure black screen for a second or two before actually loading the game. That black screen I discovered is the initial load period and a splash image can be displayed if named correctly and loaded into the IPA, looks a little more professional now.

Sound...

Sound/music is kinda my blind spot in game development. I don't know where to even begin, so i've been avoiding it for a long, long time. But finally, I have come to the realization that we do really kinda need it. So I started simple, no button sounds, just a background track that loops. Since Matt has come aboard he has shown me the awesome power of Static classes (not something i learned about in school) So the music stuff came along a lot faster in part because of that, but also because i found a really great sound code library called ASound, which simplifies the calls you need to make and gives a breadth of control over the tracks that are being played.

 

 

Friday, April 12, 2013

Build Day! Pathogen 1.06

Single player should be coming to an iPad near you (if your a tester)!

Which means a host of new changes.

Patch Notes for Pathogen 1.06

- New Grid art!

- Visual bugs with the cell selector have been address

- Introduction of a new mode: Erosion! Erosion Zones on the map will randomly decay over time, allowing for new paths and areas to appear throughout the game. The new erosion tile has also been added to the map editor.

- Single Player-

This is our first release of the single player experience. As we continue development we will be adding additional levels, elements, and difficulty levels to this campaign. At the moment the farthest you may progress is to the levels Underdog & Win in X Moves.

The single player campaign will save you progress with every level unlocked & each game is saved when exited to the main menu so that a local game can be played.

Thursday, April 11, 2013

Plugging Away

I think we are going to make our end of the week deadline for a build. Having a little problem with the AI, its causing the game to crash in certain instances, but Matt is working through that today. Initial saving feature for the campaign is in, if you leave a game to go do a local game the campaign remembers were you were, auto launches the level, and reloads the map to where it was at that moment.

The tricky thing i still have yet to do is save all the the game's history as well... This would allow the replay system to be fully functional after completing a level.

Laid out a preliminary list of achievements that we will be including, which is always fun. Looks like we should have a pretty large chunk, more that 25 at least.