Thursday, September 23, 2004

Tres Amigos Update

I worked some on the AI for the cardplay, and now the little buggers are much tougher to beat; I actually lose now and then. I had already worked on the role selection and post-bid card management routines. All that's left is the initial bid, which is by far the most difficult part of the game, in my opinion. After that, I'll go back to the existing routines and tweak them so that they account for long suits, short suits, etc.

One major shortcoming of Microsoft Hearts is that the AI seemingly ignores the scores when playing out a given hand. That is, each player mini-maxes their own score, without worrying about who they need to stick it to in order to have a shot at winning; it's pretty frustrating to have one of the AI players way ahead, and then have another happily throw the queen of spades your way early in the hand. I have to figure out whether, and how, I am going to address this in Tres Amigos; the nature of the scoring demands it even more than MS Hearts, as a single point in the former game carries about 60% of the weight of the queen of spades in the latter game!

Wednesday, September 22, 2004

Bee Gees

When I grew up, my older brother's favorite band was the Bee Gees. I remember liking "Nights on Broadway" a lot; otherwise, I wasn't crazy about them. Last year, I was at a friend's vacation home and was sightreading a 70s collection of sheet music, and really got stumped on "How Deep Is Your Love" (bear in mind I haven't played piano regularly in 10+ years). I was impressed by the chord changes, so I did some research on them. I had no idea their history was so old and varied! I first got Odessa (1969), and was blown away. I then got all the LPs from the 60s and 70s.

While they seemed to have made a career ripping off many other artists' sounds, they have an uncanny ability to write solid songs in all of those genres, and have very interesting arrangements. I think the key to their success thru 1975 was Barry's amazing voice, and how he can cover so many styles. I could listen to the guy all day, and sometimes do.

At this point, I would rank the albums as follows (adding a blank line where there is a natural break):

  • Horizontal (easily on my top 100)
  • Main Course (All great songs, except for "Fanny")
  • Odessa
  • To Whom It May Concern

  • Bee Gees 1st
  • Cucumber Castle
  • Life in a Tin Can
  • Mr. Natural
  • Spirits Having Flown

  • Idea
  • 2 Years On
  • Trafalgar
  • Children of the World

Tuesday, September 21, 2004

Time keeps tickin' away...

Thanks to Chris Brooks for pointing out the Timer control that's available on Windows Forms as a replacement for Sleep. It's a bummer because I then have to make the logic layer more state-driven, but at least it's a viable solution that requires a minimum amount of code.

I don't get to do (much) UI programming at work. That's one of the main reasons I do these personal projects - to learn things I can apply on "real" projects.

Sunday, September 19, 2004

Tres Amigos Update

Got the basic game in place. The AI is dumb as nails, but the program effectively demonstrates the flow of the game (which allows KC to determine whether I got any rules wrong!).

Before I work on the AI, I have to work on the UI. There are two main areas that need work:
  1. The game logic is now coded in a synchronous flow, which forced me to use dialog boxes to get inputs from the user. This week, I will change it so that the logical layer will respond to events from the UI asynchronously.
  2. As far as I can tell, Windows Forms don't allow "sleep", as you have to have the thread inactive so that the window can refresh. To keep the action from flying by (such as seeing the result of the previous hand), I'll have to force the user to respond to some events (e.g., "click OK to continue"). I'll research whether there's other ways around this (without splitting up my program into multiple processes).

Tuesday, September 14, 2004

Tres Amigos Update

The first design of KC's I will be coding is a card game called Tres Amigos, a fairly straight-forward trick-taking game with a couple of twists. The project kicked off tonight, and here's what I started:
  • I created a new project and imported my Card Library stuff into it; this provides a basic framework to handle stuff like decks, discard piles, hands, shuffling, human players, and AI players. I've used it for a few projects so far, so it's pretty good to go.
  • I created a mockup of what I wanted the screen to look like. Form follows function and all that, using concepts I've used in other games.
  • I added the code to programatically create the widgets based on how many players are in the game.
  • I customized the deck (which differs based on the number of players).

Tomorrow night I've got some CCG action lined up, and Thursday night is my boardgaming night, but I hope to have the basic game (sans AI) wrapped up by Sunday night.

Howdy, folks!

When I created this blog some time ago, I fancied myself writing about music, gaming, software engineering, program management, and other things I am interested in. There are a couple of problems with this. First, I don't think I have much interesting to say. Second, I don't think my writing skills can close the gap. Finally, I enjoy the above so much, along with many other interests, that I would rather spend my time engaging in them than writing about them.

In any case, I'll leave this here in case the bug bites me.

In the meantime, I will be using this as a development journal for a short-term coding project I am working on. My gaming buddy KC is an avid (and, currently, amateur) game designer, and he asked me to whip up a PC version of a couple of his titles to help promote his designs. I'll post updates here.