Saturday, October 2, 2010

Alpha 3 Release

The announcement on Facebook!
It's official - I just sent out Alpha 3 tonight. I wish it were a little more solid, but I've been testing it for a while and it seems stable. I've had a couple of bugs that I haven't been able to reproduce, so I'm going to spend a little time this next build working on using the Build and Analyze functionality. The next version is going to be HUGE, so it's important to get it all working solidly.
As I posted previously, the UI and game play changes for Alpha 3 are pretty good. I've added difficulty levels (making the game a lot easier to actually play), and the UI is cleaner. I've also captured some things and sent it over to a designer friend I'm hoping will be able to help with the graphics and the layout. I feel like there are places where it's pretty good but that there are far more places where it's just clunky and not working at all.
Of course the big thing is that this should let people play a little more frequently as the game won't be quite as impossible as the original. Jotto was a pretty niche product (and my mom and I were firmly centered in that niche), but I think it just couldn't really excel as a game because of it's difficulty. I expect that the game will be much more approachable now and to a wider variety of people.
There is still one thing I need to sort out with the word list, though, which is creating a simple word evaluation page so that people can rate words as Easy, Medium, or Hard. That should help segment some of the much harder words from casual players. I'm hoping that some of my Facebook friends will be able to help parse the list (it's pretty extensive) and provide a basic clumping of words by difficulty. It should be a quick change to the code to enable that in the code.
The next big step (and the next Alpha) will be to have two player games, which entails a TON. I need to get user accounts set up, figure out how to deal with people who change phones but want to keep their information, creating friend lists, getting multiple games working, and, of course, manage the basics of having a server-based game as opposed to a device-based one. Definitely a big challenge, especially the back-end piece. Still, I'm hoping that I'll be able to get it done in time for Christmas - that's my big goal. Hopefully before Thanksgiving - that would be awesome.
So, now that Alpha 3 is out the door, I guess I better get working on Alpha 4!

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...

Saturday, August 7, 2010

Alpha 2 Love

It's official. On Thursday evening I sent out OttoJotts Alpha 2 to testers. I've picked up 3 more testers since Alpha 1, which I'm hoping will help when I start getting into needing to test multiplayer. The Alpha 2 has a LOT of stuff in it, including:
  • Statistics for game play, including games played, won, and average guesses per game
  • New help file - this is a huge improvement and MUCH better than Alpha 1's
  • New background images - basic changes, but look pretty good; not final, though
  • Server-based word lists (the entire word list is on the server now)
  • Persistence between launches. Less of an issue with multitasking in iOS 4, but a major pain in anything previously
  • Automatically scrolls to the bottom of the guesses list on load - something that should have been done for Alpha 1
  • Upgrade to iOS 4 support - this was far more involved than I expected it to be
  • Numerous UI improvements and tweaks - just a lot of pet peeves and usability tweaks to make it easier to use and understand (I hope)
So quite a lot, but the lion's share of the time was spent in migrating from iOS 3.1.3 support to iOS 4, primarily because some things just didn't work as expected in iOS 4. Part of that arose from needing to refactor a bunch of stuff and reworking some of the child/parent messaging, but overall things seem pretty stable with Alpha 2 (on my devices), so I'm happy for the nonce. I'm hoping to get some feedback on the build while I start work on Alpha 3 (almost completely multiplayer stuff). It's coming together - slower than I expected, but I think it's going to end up being pretty good when I'm done.
Back to the salt mines.

Tuesday, August 3, 2010

Quick Departure

I'm going to take a few paragraphs here to discuss another topic outside the typical vein of the blog. That issue is Net Neutrality.
As a netizen for lo these many years (almost 25 now), the thought of a free (as in liberty) and open internet has been something that seemed completely inherent in the 'net. That someone would come along and consider restricting access was bound to crop up, but the thought is anathema to the openness of the 'net.
I look at the issue from two perspectives - as a consumer and as a small business owner - and this latter perspective is where I have the primary concerns. As a consumer, I already (over)pay for access to the internet and it seems reasonable, based on other costs, that I should. I already pay for electricity, gas, and water - internet access seems like another service being provided and the provider deserves to be compensated for that access. I can even choose how much I want to pay for the bandwidth I choose to consume - again, all reasonable. I would, however, be concerned with a "prioritized traffic" provider. I should be able to access all of the legal content I want to access when I want to access it, provided that I'm paying for that right.
As a business owner, though, I have serious concerns. The crux of the net neutrality debate is centered around businesses providing content. Services like BitTorrent were just a symptom of what the industry as a whole was experiencing - a lot of people using a lot of bandwidth. That BitTorrent could be used to break the law was, I'm certain, an impetus for internet providers. They saw this as an opportunity to "tax" business owners to get access to their services. As an ISP, the thought of all of the potential funding just below the surface would be irresistible. And it makes sense. "As a user of our network," they'd reason, "you should be required to pay commensurate with the amount of traffic you're pushing over our network." This is, however, just over the concept of "reasonable". Why? Business owners are already paying for access to the internet from their hosting services. And there are, literally, thousands of ISPs - should businesses have to pay every since ISP to prioritize their traffic? I can only assume the ISP answer to that question would be a resounding "yes!"
The biggest concern for me is the following scenario. Assume that the providers are able to prioritize their traffic based on who pays them. As a company that's not Google or Microsoft or Apple, I'm at a significant competitive disadvantage if I can't pay to get my traffic prioritized. The average person using the web will not wait more than a few seconds for a web page to display before they pick a different page (i.e, not mine). If there's a delay in displaying my information because my traffic isn't prioritized highly because I couldn't afford to pay every telco that wants to provide internet access, I lose customers or, at the very least, customer satisfaction suffers.
One of the arguments against net neutrality is that if companies haven't done it yet, there's no reason for them to do so in the future. There are a few points to be debated here, but the three that ring most true for me are: a) companies haven't really been able to do this yet, so there's been no real test of this concept, b) companies have a terrible history of doing things in people's best interest (look at the labor revolution of the late 19th century for a great example - and then go thank a union worker), and c) they're already looking at it. Comcast began to packet filter BitTorrent traffic - determined via empirical tests. And it's not that far of a leap from selectively filtering traffic to charging for that traffic. This also causes problems for consumers who now need to determine whether their provider will allow them to access the content they want to view.
So you may be asking where I stand on the whole issue (if you haven't already jumped to a conclusion). Actually, I prefer that we take a "wait and see" attitude, but we need to provide an organization - it can be the FCC, but I'd prefer an elected body rather than appointed - to oversee and insure that things don't get out of hand. We should be proactive rather than reactive to the potential direction this issue could move. Time and again we've seen that as things progress without direct confrontation about it, people become willing to accept the status quo, not status quo ante. I don't believe we need regulation, but we do need the ability to quickly address any complaints.