Archive for the ‘Art’ Category
Meanwhile…
Tuesday, February 17th, 2009
It’s been an exciting weekend, to say the least. I was checking iTunes Connect as soon as I got out of bed each morning, still bleary eyed from having just woken up. I’m not going to post any sales numbers yet, there’s not enough data yet to draw any kind of reasonable conclusion yet. However, I will post some at some point, I promise. I will say that given the fact that I hadn’t sent out any press releases or promo codes until this morning, I was pleased with the sales so far. I’m not going to be challenging the top 10 any time soon, but it feels good to have any sales at all.
I’ve been looking for a good way to track all my app sales data. The best tool I’ve found so far is AppViz. It will download your daily sales data for you and generate all kinds of pretty graphs. My biggest complaint is that the export feature doesn’t really export the data in a useful way. What I really want is a tool that will generate data that I can import into Excel or Numbers and do my own graphing and statistical analysis on. Ideally I want each country to have it’s own spreadsheet so that I can graph individual countries and then also graph total sales. I might end up building my own tool. That just seems silly, though.
As I hinted at above, I spent this morning (and this afternoon so far) sending out press releases announcing the launch of Dapple. I’ve been sending out promo codes to iPhone gaming review sites in the hopes that I’ll get a few reviews out of it.
My friend Jaysen wrote up a great review of Dapple on his site: I, Game Maker. He is a friend of mine, so I can’t say he’s completely unbiased, but I feel like he provides a pretty honest review of the game.
I’ll probably spend the rest of the day finding sites to send my press release to. Tomorrow I need to get back to my 360|iDev presentation. Time’s running out! Oh, and they just released full descriptions of all the talks at the conference on the 360|iDev site. The conference is going to be amazing. If you’re an iPhone developer, at least check out the website and see if you can make it.
Owen
The Problem with Sub-Classing
Wednesday, January 21st, 2009
Yesterday I got all of the non-gameplay related layout changes implemented for 2-player mode. It looks pretty good. I managed to make everything fit on the screen and look good, so I’m happy about that. Today I’m starting to implement the gameplay-side changes that are required, but I’ve run into a dilemma around how to set up the code.
Warning: coding discussion to follow…
This is the way my game is structured at an extremely high level (lots of classes missing from this diagram, but this gives you a general idea of how things work):

Dapple - High Level Classes
Right now all of the information about whose turn it is (in a two player mode) is stored within the GameState class. It stores the users’ scores, levels, etc, and it knows whose turn it is, and who plays next. The problem I’m running into is with the Board.
Right now the board knows nothing about which player is playing. It’s responsible for all of the logic that handles making matches and searching the board for possible matches. For the most part, it doesn’t care about which player is playing…except that now it needs to. In my 2-player mode, both players play on the same board, but each on their own half of the board. This means that all the searching algorithms now need to take into account which side of the board to search, which means they need to know whose turn it is.
This seems pretty straightforward except that the end-of-turn code flow also needs to completely change. When a player ends his/her turn, instead of checking to see if there are any moves left, I need to check if there any moves left for the opponent.
What I’m trying to decide is whether I should sub-class Board into TwoPlayerBoard, or whether to embed the logic inside Board’s functions. Both have benefits and drawbacks. By sub-classing it allows me to keep the two-player logic separate. It means cleaner code for all game modes. However, it also means that any logic bugs in the board would potentially need to be fixed in two classes instead of one. By embedding the logic in the Board it means I only have to maintain one class, but all of a sudden I have all these conditionals in the code for “if (2 player mode) do this, else do this”, which makes things harder to follow.
I think what I need to do is go through all the functions in Board and see which ones need to change for 2 player mode. If it’s less than 1/3 of them, I’ll subclass. If it’s more, I’ll embed the logic.
Phew, I’m glad we figured that out.
Owen
Breaking my Own Rules
Monday, January 19th, 2009
Back at the end of November I posted about some new rules I had made for my work-life. Basically, I had said that I wasn’t going to do work, or read work emails after 7:00 PM each night. I had also decided that I wasn’t going to work on weekends. All of that went out the window last week.
As I get closer to submission I’m working more and more. Last week I did several nights of working late and I worked a half day on Saturday, and a few hours on Sunday. I’m already paying for it. I haven’t been sleeping well again. The problem is that when I work late, I can’t stop thinking about work, even when I’m supposed to be sleeping. I end up lying awake at night going over things in my head instead of falling asleep. So I’m not really sure what to do. On the one hand, I need to be putting in this extra time right now, but on the other hand, I do like to get some sleep.
The good news is that by working a bit on the weekend I was able to wrap up the Timed Mode for the game. I managed to put in a bunch of new animations including: a countdown animation when you start a timed game, some beeping sounds when your time’s running out (that get more frantic as you get closer to “time’s up”), and a new Game Over animation that differentiates between losing because there were no more moves and because you ran out of time.
I’m quite pleased with how the Timed Mode turned out and I’m also pleased with how long it took to implement it. It took about 3.5 full days of coding to get it all in and working, with all the new animations, UI, etc.
Yesterday I started planning out the 2-Player mode that I want to add this week. The biggest problem I’m running into is the screen layout. The screen is pretty tight in single-player modes for displaying critical information, but now I need to display info for 2 players. So yesterday I spent a few hours mucking around in image editing software playing with the layout. I think I’ve got something that should work. Now I’ve just got to build it and see.
I’ve given myself until the end of the week (i.e. Sunday) to implement this new mode. That’s about as long as I can afford to take and not risk delaying the project significantly. It feels like I should be able to do it. Here’s hoping I’m right.
Owen





