Wednesday, December 14, 2011

Board Game Library

Over the last couple of years, I have gradually become a fan of designer board games (if you don't know what this means, go to http://www.boardgamegeek.com and look at some of the games there). A few months ago, a friend bought an iPad, and was telling me about all the cool games he has access to: Puerto Rico, Tichu, an Alien Frontiers app on the way, and much more.

When I got my Asus Transformer, I was quite disappointed to discover that only a couple good board games have been implemented on Android (Settlers of Catan and Carcassonne). Neither are my favorite games, and neither have options for networked play. I don't want to belittle the accomplishment of Exozet, who produced those games. Instead, I would like to think about ways that the board gaming options for Android can be expanded.

With this in mind, I have started working on a board gaming library for Android. The goal will be to define a hierarchy of classes and views that can be used to hide some of the details of displaying game boards, cards, hands, dice rolls and token movement; hide some of the complexity of networking, threading and managing game control; and ultimately allow a game developer to focus on implementing the unique rules of a game and developing compelling AIs and not have to worry about aspects of the game that are common to all games.

My thinking right now is that I will use this blog to document my progress as I slowly work through some of the issues surrounding my project. I am typically a rather inconsistent blogger, so it is possible that you won't see another post on this. Also, this is purely a hobby project. I have a full-time job which is, unfortunately, unrelated to games. To ensure I have time for this hobby, I wake up each morning 3 hours before I have to be at work, and spend 2-3 hours programming in Android as possible before I have to head into work and become a slave to the world of ASP.NET and C#. I'm not complaining, just pointing out that this will not likely move too quickly.

In the next few days, I'll discuss my design and some of the rationale behind it.

Friday, November 12, 2010

Barbershop Tags


My new app has been posted, Barbershop Tags. It is an app to help with singing Barbershop Harmony. Now, most people are too too familiar with Barbershop Harmony, so here is some background to you will need understand what this app is intended for.

1. It is 4-part harmony. The four parts are Tenor, Lead, Baritone and Bass. Usually Lead has the melody.
2. When Barbershoppers congregrate, we like to do something called tagging, which is basically where 4 or more people sing the last few bars of a song, since this is the best part and everyone can learn it fast, since we may not know any full songs in common. Usually there is someone who knows all 4 parts of a tag, and they'll teach it to everyone, we'll sing it, and then move on to the next one.
3. Barbershoppers use a neat little thing called Learning Tracks to learn music. There are usually 5 learning tracks to a song: All Parts, and one for each part. Each part-specific track is in stereo. It has its main part in the right channel, and the other three in the left channel (or vice versa). This way, you can shift the balance on your stereo to hear ONLY your part, or ONLY the other 3 parts.
4. The website www.barbershoptags.com hosts learning tracks and sheet music (as gifs or pdfs) for over 1,000 tags.
5. There is a book of 125 Classic Tags that are the most popular ones sang at Barbershop events. These tags are also hosted at www.barbershoptags.com in a special section.

Now that you understand Barbershop harmony and tagging, here is what my app does:
You can browse and search the tags on www.barbershoptags.com and download the sheet music and learning tracks. Once downloaded, you can play the learning tracks and view the sheet music at the same time. You can choose which learning track to listen to, and shift the balance as needed.

Friday, April 30, 2010

New Grocery List

A version of Grocery List has been posted to the Android Market. There are quite a few small changes, too many to list in the description on the Market, so they are listed here:

  • The Manage Items screen has a slider like in the contacts activity.
  • You can click "Duplicate Item" from the Manage Items screen.
  • You can mark an item as "Not Available At This Store" and it will move to the bottom of the list.
  • You no longer hold over quantity and notes from previous purchases of the same item
  • Items were sorted lexicographically rather than alphabetically, this is fixed.
  • You can click "Edit Item" from the main list with a long click
  • You can add items to your list from the "Manage Items" page
  • You can edit quantity and note while adding an item by long-clicking the Add button
  • Fixed a bug with showing the item you just added.
  • Changed the backend to keep a history of purchased items. This isn't being used yet, but sets the stage for future features.

Thursday, January 28, 2010

Grocery List

Grocery List is an Android application that remembers where your commonly bought items are located in the grocery stores in which you frequently shop. This allows you to sort your list based on the order of the aisles in the store, making your shopping trip quicker and more efficient.

The problem it solves is simple: When I went grocery shopping with a paper list, I would write the items down in the order I thought of them, which did not correlate to the order they were in the store. This led to one of two scenarios: a) I had to walk back and forth across the store as I got the items in the order they were on the list, or b) I tried to sort the list in my head, which led to missed items and a lot of time spent standing in the middle of the aisle studying the list, especially when I couldn't remember exactly where something was.

The Grocery List solves this problem by allowing you to teach it where your items are located in the store. You can set up layouts for multiple stores in case you go shopping at different places. Each time you buy an item off your list, you can let the Grocery List know in which aisle that store was located. Next time you need that item, it will remember any items you've bought before and sort them by their location. After only a few shopping trips, most of your most commonly bought items will be remembered, and you can even guess the locations to get a rough sorting for your first few trips.

Grocery List Beta is available for free on the Android Market. Please use the following form to report any bugs:
http://spreadsheets.google.com/viewform?formkey=dHpJc0xQZ0pnOXc4X1o5ci1UX1RqV1E6MA