Tuesday, September 21, 2010

More UI updates and Alpha 3 status

I've been working on the UI layouts for the Easy and Medium difficulty levels. So far it's been going pretty well with the change in direction, so I've got some ideas I need to get feedback on, so if you have an opinion, please share!
The latest version is showing the green and blue boxes around correct answers (green is correct placement). I'm trying to see whether the colors/placement/layout/style seem usable or if it's somewhat unpleasant. I'd like it to be a little more stylized eventually - probably rounded corners and they wouldn't necessarily abut one another - but for Alpha 3 it may be "good enough" to get feedback about the difficulty level game play. The good thing is that things have gone really well with this update. The only thing remaining for functionality is saving/loading and loading old games. The upgrade path has to be supported. I've also considered allowing games of more and less than 5 letters as that's all hooked up on the back-end already. And I'm considering allowing multiple games now, just no more than one game with a particular word length (no more than one 5 letter word game, for instance). Those would be some small updates but might make Alpha 3 a little bigger release.
I was just checking on my list of things that I wanted to do for Alpha 3 and I do have a little bit of work left. What I had on my list to accomplish was the following:
  • Online Leaderboard
  • Player data tracking for game play
Interestingly, I didn't do either of those, but the need to get difficulty levels was more compelling this time around. I may dump those for Alpha 3 just to finish this up and get it out to testers. I'm really curious how the game play works with the easy and medium difficulty levels. It may be cleaner as well because I'm going to be doing a LOT of back-end work with Alpha 4. That next big thing is two-player gaming, so that should be interesting. A LOT of things to do there; could easily take a couple of months to get everything working. It will be a huge amount of work to get all of the different elements integrated, but I do hope that I'll be finished with it by around November. I'd like to get it submitted to Apple around Halloween if possible so I can try to get it out to reviewers before Thanksgiving and out in time for the Christmas season. I don't think sales would be heavily impacted by the holidays, but folks who get a gift card for Christmas might drop $0.99 on my game.
So, if you have any feedback on the UI, please let me know. I think I like it "enough" for the time being to not really worry about it. I'm trying to get this all wrapped up by the weekend so I can get it released and then out to testers. Then it's all two-player games. Wowser!

Saturday, September 18, 2010

Potential change for Alpha 3 UI

Original Jotto (tm)
sheet
I've been considering the conundrum I've made for myself with this text coloring issue. I've not be able to get the text to display as I wanted without having to almost completely draw it by hand (and make using the Cocoa Touch classes worthless). I did, however, have something of an epiphany while deciding what to do. What I considered is this - what if the word the player picked was EERIE. Would a blue "I" be that terribly visible to a player? It would like very much like this: EERIE (the I is bolded in that word). In other words, yes, the word EERIE looks good when it's laid out in regular text, but for the game, it might make more sense to instead display the letters independently in boxes/labels, rather than try to just change the colors of individual letters. Stumbling upon this epiphany was kind of interesting. I had been, just to get the bloody thing done, considering doing some "lights" under the letters to show which were correct/right position, etc. But then it dawned on me that it's not a fixed font - it's proportional. Which meant that some letters, like W, would be very obviously green or blue, but that others, like I and J, would be much harder to see with colors.
Detail of the Jotto (tm) sheet
I had been thinking of NOT doing this but in retrospect it's what the original game does as well (as shown to the left). And yes, that was lifted from Wiki. Using the boxes (which will need to be dynamic, based on the number of letters in the game) will change the look of the game a little bit, but I think it will make it a lot cleaner in terms of what the player is viewing and should help simplify the display issues I was seeing. I just kind of wish that I had thought of this sooner.
On an amusing aside, before the advent of real word processors, my mom and I used to play this game a lot. Unfortunately, we ended up going through a lot of sheets and had an issue where we couldn't play without making sheets of our own. The places where we would normally buy the game didn't carry it anymore (it had sort of petered out in popularity by then), so we were kind of out of luck. There's only so much time you want to spend making tally sheets versus actually playing the game. My grandmother lives in New York (on Long Island) and there was actually a distributor of Jotto there on Long Island.
The notice at the bottom of the sheet
I recall the two of us driving there to get what felt like boxes and boxes of sheets. I then took those back with me to Laramie where we probably played a full box in the first two weeks I was home. Ahhh, good times.
I'm hoping this new direction will make things a lot easier moving forward. It should simplify the work that needs to be done and only slightly complicates the code (need to figure out which labels I'll be using for the different length words). Beyond that, though, I'm actually thinking I might be able to get this puppy done by Wednesday if things continue going as well as they have. Which they won't, so we're likely looking at Halloween. Here's hoping!

Friday, September 17, 2010

*headdesk*

I've been working on OttoJotts all night and now I'm starting to get a headache from something I'm trying to do. The plan I had was to change the color of the letters in the word a person guessed to show them which letters were correct (blue) and which were correct and in the correct position (green). The problem is that there doesn't appear to be an easy way to change the color of a single letter without making a single UILabel object (which I don't want to do) - it would separate the letter and make it look pretty funky.
There is a type called NSAttributedString and NSMutableAttributedString which seem to satisfy my needs, but what I need (apparently) isn't available on iOS 4. And while I can create these objects, I can't seem to modify them easily. Or even difficultly. The problem seems to lie in a constant called NSForegroundColorAttributeName (jeez, Apple) that's not declared anywhere but AppKit. Unfortunately, AppKit is not an iPhone/iOS framework - just Mac OS X. So while I can create these things, I can't seem to manipulate them and change colors like I want. *headdesk*
I've got the code working for the new game play for the difficulty levels - that came together surprisingly quickly. I still need to do a little work on serializing (saving/restoring) the data, but for now, within the bounds of a single instantiation of the game, it seems to be working beautifully. I've got a lot more testing on it to make sure it's solid, but so far it's looking good.
Now all I need is to get it to display properly. *headdesk*

Thursday, September 16, 2010

I keep distracting myself...

I've found that when I'm working on things that occasionally I'll focus on things that aren't terribly important rather than getting something working. For instance, I've been working on Alpha 3 and making some good progress - got the entire create new game system reworked and it's acting well. Now I need to start looking at changing the game logic and display to work with the Easy, Medium, and Nightmare modes. And what I did I most recently find myself doing? Taking a snapshot and working on the background for the main game screen.
I mean, the background does need to be completed, but honestly - it can wait until I'm closer to being completed with the game play. It's hard, though, because I know that it needs to be done, it's something I can work on in my mental background, and I'm playing with the colors and layout anyway due to the Easy and Medium play. Still, though - like reading quickly - I sometimes have to remind myself to re-focus on what's important.
The clunky main game
interface screen
It's a little harder with independent projects because I'm not tracking it as closely as I would a project at work. The background IS ugly as compared to the rest of the app now because it's all clunky (as shown to the right). I did ask if the interface seemed non-intuitive and such and got back (from one person) that it seemed fine. I'm hoping that if I can make it a little prettier, use some better images, etc., that I can make it clearer what's being used for what. I need to just make sure that it's not becoming a "high priority" item for me, but rather staying in the background. I know that I'll get it done before I put out Alpha 3 and I'm actually making faster progress than I expected. Still have a couple of changes to make to the data flow to support the additional checks for letters - which ones are right and which ones are in the right position. Sort of brings in some skills I haven't done with Xcode and objective-C, so it'll be a good learning experience. I just hope that I can get it sorted out quickly and back to doing what doesn't matter.
What kinds of things do you do when you're developing to keep yourself focused on the major tasks and not get sidetracked by the "cool" things you still have to do?

Tuesday, September 14, 2010

Ex Mediis Aevīs, Scientia

Hey all. Just a quick note to check out my medieval blog as well. It's called Ex Mediis Aevīs, Scientia and it's located at http://exmediisaevis.blogspot.com. I hope you'll find it an interesting and amusing trip through the middle ages!

Alpha 3 Update (redux)

Things are progressing well on the Alpha 3 front. I've redesigned the create game logic now, so it's a little cleaner in terms of creating single player games (the two player games are targeted for next release). Overall I'm pretty happy - spent about 3 hours and redesigned how games are created, including difficulty level. I've got a weird bug where it's not cleaning up completed games, but in retrospect I need to think about whether I should even do that as I plan on having those available after you finish. At the same time, that might be all server-based, so I'll punt for now and worry about it later.
I've got the levels sorted out for the game (the screen shot to the right shows the difficulty levels available). I still need to get the UI changes in place for the new difficulty levels, but I don't think it will take too long to get that sorted out. Nightmare is easy as it's just a simplification of what I've already got. It's Medium and Easy that are going to require the most revision. I did find out how to do what I want to do with them, which is good. I'm planning on having Easy show you the correctly placed matching letters in green and correct letters but in the wrong position in blue. Everything else will be black. Medium will just show you which letters are correct (in blue), not whether they're placed correctly. Hard will be the game the way it is now and Nightmare will be hella-hard (pun intended).
I'm hoping to make some good progress this week and maybe even have the new version available by next week. That would be just awesome if I can pull it off. Then, perhaps, it's time to spend a couple of months making Alpha 4 with two player games. OooOOooo. Ahhhhhh. Ohhhhhh. (For those of you who went to the Colorado Renaissance Festival when Dextre Tripp was there, it all makes sense; for everyone else, just nod your head.)

Saturday, September 11, 2010

Alpha 3 Update

It's been over a month since I sent out Alpha 2 and the main comment back from testers was: this game is really hard! I've decided I need to focus for Alpha 3 on adding in game difficulty. It's something I wasn't really planning on doing quite yet (it was going to be after this next release), but I think that in order to get the most feedback and to make the game approachable I need to get difficulty levels sorted out.
There are two main changes I need to make to get it working. The first is that I need to redesign the "create new game" functionality. It's kind of clunky right now design-wise, so I'm going to delve into that and get it cleaned up and segmented a little better than it is. The second is that I need to change the main game screen UI to support the easier levels.
The current UI looks like the image on the right. It's obviously very basic (and not terribly helpful), but the idea is that you find out how many letters from your word are in the computer's word. For TOMBS, none of those letters are in the computer's word. FIRED and GLYPH both share one letter, but that letter may or may not be in the right place. (In case you're wondering, the "Debug" button in the corner will show you the word in case you get stuck - but just in the Alpha games.)
I'm envisioning 4 different levels of game play. The first - Easy - will show you which letters are correct and in the right place and also which letters are correct but not in the correct position. Medium will display which letters are correct, just not whether they're in the right position. Hard will be the standard game - you only see how many letters in your word are correct, but not which ones. And Nightmare (because I do love me some Quake and Doom) will only let you know when you place the right letter in the right position (but won't show which letter). Yeah - nightmare indeed.
This is going to require quite a bit of redesign to the UITableViewCell to display this additional information. Plus, the whole background for the game board is very bland and uninteresting right now - just white with controls on it. I think it makes sense to beautify it a bit so it's not so jarringly different from the rest of the screens. So Alpha 3 will be a significant release. I just hope that I can get it working in relatively short order. I guess I better get cracking on it...