Tuesday, January 22, 2013

Bug Hunting

Got invites in yesterday and then preceded to start tracking down and squishing some bugs. Discovered that you could join/quick join your own games! So put a stop to that pretty quickly. The other big buggy thing that was happening was when two games were played/saved simultaneously. The game id's were not getting saved correctly, resulting in moves in game 1 being played in game 2. It was all the fault of a global variable, was able to fix it yesterday.

Should be able to go into closed beta pretty soon, realized that we need to put in some kind of reporting system where players, or us, can flag inappropriate content or names. With user generated content that is just the reality of the situation.

Got scrolling to work in the iPad version as well, did it the cheap way by putting buttons in that control the scroll. Will eventually get a smooth scroll in, but that code base that would help me do that had way too many variables for me to struggle through. I'll come back to it at some point.

Monday, January 21, 2013

Now Announcing

So this week I think we are going to do a closed beta of Overflow this week. Those on test flight get to be the first ones to try it out, give us some initial feedback and stress test against our server. Invites are today, need to finish those off and then do an overall critique on the visuals for all of the menus systems. Oh, need to put scrolling into the iPad version, its mousewheel for PC's so that needs to happen. Probably by the end of the week is what I'm shooting for.

Also have a presentation on Friday about Overflow which I need to prepare for. Going to go down and talk at JDK and explain the game and get a critique hopefully. They are known for their graphic work so some insight would be helpful.

We didn't make it into the Pax Independent Showcase :( kind of a bummer, oh well. Called up the Pax people and tried to get a table, but they were all gone. Now we are on a waiting list to see if one miraculously opens up.

Friday, January 18, 2013

iPad Asyc

Is a go! And Mike became the victor of our very first match! Surrender has now been fully implemented, which is great. When a player surrenders, their special tiles grey out and the game skips their turn. If all other players surrender, the remaining player is declared the victor. Victory stats are uploaded upon completion and after the game is over its pulled from the players game list. At some point we will log these completed games so that players can go back and look at them potentially, but not today.

Focus is now on getting a better join system. Currently we have a quick join system, players pick their map size & player count and the server places them in the first available slot.

What we will do instead is have the players pull down a list of potential games they can join, players will be able to filter the list (map size, player count) and from there narrow their search and view the map layout before they commit to joining  a game.

I also need to start dealing with the potential web crashes, of server fetches that fail. If that happens now, the game simply crashes, so i need to account for that kind of error checking.

Online Game Setup

IMG_0283

 

 

 

 

 

 

Browse User generated Maps

 

Thursday, January 17, 2013

It worked!

Got it working yesterday! And whats even more incredible is that we are running the game in sudo-real time! What happens is after a player sends their move up to the server the game refreshes itself, looking for additional moves. When it detects a move was played it pulls down the information and plays the game right in front of you. So, in essence if two players are active at the same time, their async game becomes a real time one! Which is just so awesome.

Today is dedicated to trying to get a surrender system in place. If a player quits, all other players should be notified and the game system should simply skip their turn. If all other players surrender the remaining player should win.

Prediction for the async update: get it out by the end of the month.

Wednesday, January 16, 2013

Ok, that worked

Yay! Converting the game data to XML and saving it worked Was able to successfully load in a save file, grab all of the game data and then create a new game based off that data! Now its step by step. Need to bring in the current states of all player tiles as well, and log the analytic data as well so that the post game report displays correctly. As of this moment i am wary that I will get the replay function to work...

I have to store the game history every turn... which means my save file would get pretty big pretty quickly and the last thing i want is to bloat the size of the game with a save file. However, flash has the ability to convert XML files down into an array of bytes, drastically reducing its size.

But, by saving multiplayer data on the local machine load times will be drastically shortened and the risk of data loss due to intermittent internet is reduced.

Tuesday, January 15, 2013

Stuck

Made it 98% of the way until Async fell on its face. The problem is saving game state data with online games. Each game has a pretty complex amount of data it needs to play. Each player holds its own analytic data, ie: number of each particular tile they put down every turn. The game also holds a history of all turn moves, this history records what that status of the game board was and who owned what. The last big piece of information is the holding of each of the player's special tile states.

All of this information is held in the onlineGameManager class, originally I wanted to just try to save that entire class. However yesterday every time i tried to do so the save would fail. What I have come to understand is that its simply too complex to save.

I don't want to push all this data up the cloud every turn either, that just data loss waiting to happen. So Matt suggested this morning that I grab all of the data out and store it in an XML doc, which is way less intensive.

 

Monday, January 14, 2013

So Close!

Put in a good 8 - 10 hours into Overflow this weekend and now we are so close to getting a-sync working!!! I ended up cloning the group of classes that are needed for the primary game to function (gameManager, Tile, SelectedTile) and created Online versions of them so that i could tweak them without endangering the core code used in the local game mode. Matt helped me out and built four additional PHP scripts as well so now its just debugged.

My prediction: A working, testable version of Async by the end of the week.