Game day and Action game prototype

We hosted a game day this Saturday and got to show the multi-touch table to our gaming friends. There were about 15 of us and the table was a big hit. We didn’t have Hansa Teutonica complete, but we did have Wits and Wagers, Gem Hoarder, Yahtzee, Texas Holdem, Concentration Sweep, Solitaire Dice, and two action game prototypes. People seemed to enjoy the speed that games of Wits and Wagers and Gem Hoarder could be played compared to the physical versions. And we were surprised by how addictive the action game prototypes were. Even though they lacked a lot of polish and features, they got a lot of play.

We took some video of the action and will get that edited and posted on youtube soon. We wanted to have a video to show off when we pitch game designers on the idea of converting and selling their games. I am planning to contact the designers of “Hansa Teutonica”, “Brass”,  “7 Wonders”, and “The Resistance” this week to see if we can get permission to make their games for the touch table.

On Thursday and Friday of last week I started working on a simple action game to test the responsiveness of the table in a fast paced game. I created a simple game where players use virtual arrow keys to steer a spaceship around a board and fire at the other ships. My first discovery was that it was too hard to release a virtual arrow key. On a physical keyboard it is obvious when you have released a key, but on the virtual keyboard, it seems like the key should be released as soon as your finger comes up off the screen. But with the IR detector above the TV, you have to raise your finger about 1/4″ before the touch is lost. So it would feel like you had stopped pressing a direction, but the game was still registering the touch.

So I replaced the virtual arrow keys with a virtual control wheel where you touch and leave your finger down to steer. The ship turns in the direction that your finger is placed and it’s speed is based on how far your finger is toward the edge. It works significantly better than the keys did, but is still not perfect.

By Saturday, I had two types of weapons, one for taking out shields and the other for damaging hull. When destroyed, the ships would quickly re-spawn.

When we tested the game with the full eight players, we saw some problems with the center player’s touches not being detected. The touch sensor requires visibility to three sides to register, so if there are already touches on both sides, a new touch will not register. To solve this, I will probably need to put the control areas of the center player at a slightly different position than the areas of the left and right players.

Since the game was popular, I will probably add a few more features and polish the graphics. I’ll probably add some obstacles, different ship types/attributes, ship collisions, power-ups and the ability for players to drop out and join the in middle.

Assistant to the Lounge-About

On the advice of a friend, I am starting a blog. I am well aware of how late I am joining the blogging scene. And I have very low expectations of the level of interest that the rest of the world will have in most of the things that I am doing.

However, the multi-touch table we just got is still a fairly new technology, and there may be some interest in our experiences with the hardware itself and our attempt to convert board games to play on it.

I have started this blog by creating a bunch of back-dated entries. These entries come from things that I have written on my web site, Facebook, and Google+. There are also some new entries that I created just for this blog.

I expect most of the entries to be about my programming projects and the multitouch table. But I will also create entries for trips that we take and other things that interest me.

The title of this blog comes from the business cards that William and I created when we left Solidyn. Lacking a “title” to fill in, William became the Lounge-About and taking a cue from “The Office,” I chose Assistant to the Lounge-About.

Tomato Conserva

I made some “tomato conserva” today. I started with 3 lb of tomatoes and ended up with 6 oz of a thick tomato paste. The flavor is incredible though. It is like tomato essence. I got the idea from here:


I’ve also been processing the basil harvest. So far I have spent two hours picking basil leaves off the plants and I probably have another hour to go. I am drying most of it, but I have frozen one batch.

Trip to Las Vegas

We took a trip to Las Vegas with a friend to see the Star Trek convention. It was the 45th Anniversary and Leonard Nimoy’s last appearance. We also rented a car and went to the Hoover Dam and took the tour. We also went to an “Ice Bar” called Minus 5. The room was mostly made of ice and kept at -5 degrees C. They gave us coats and gloves when we went in. And the drink glasses were made of ice. The full set of pictures is here.

SimFinance Progress Update

The SimFinance application is mostly done.

As is always the case, the software was more complex than I thought it would be. The main complications were due to the fact that my partner and I aren’t married. So the application had to try to optimize who paid the bills to manage the size of each of our accounts and how much taxes we each had to pay. The other big complication was trying to manage our traditional and Roth IRAs to minimize taxes each year.

There are some big things yet to do:

  1. Come up with a model for stock dividends. Right now, dividends are simply included in the return of the S&P. However, that is not really accurate, as the yield of dividends lags behind changes in stock prices. Also, taxes are due on dividends the year they are paid instead of the year the stock is sold. Those two differences may end up balancing each other out in the overall results.
  2. Investment strategy comparison. Would dividing our money between bonds, i-bonds, and stocks be better overall than having everything in stocks? Does the reduction in volatility pay off? Or is it better to just accept the volatility and maximize returns?
  3. More optimization post 60. The order of IRA withdraws should change after 60. Need to model medicare.

The model is giving us an 85% chance of success right now. I don’t really think that the things that are left to do will change this number significantly. It is surprising how much money we have to have to get a 95% chance of success and how much variation there is in the possible outcomes.

It is possible that treating the S&P 500 as a random distribution is wrong. While the historic data looks random, there probably are some underlying “fundamentals” that keep the stock prices within a range. I am not sure how to add that to the model besides trying to put an overall cap on the market returns.

Student-t distribution for stock returns

I have been working on the SimFinance 2.0 application and have been struggling to find a way to simulate the stock market. (Note: I am not trying to predict the stock market, I just need a way to generate a random stock market return that is similar to historic returns)

My first idea was to use a normal distribution centered around the average return with the same standard deviation that the real data has. This was close to correct, but if I plotted sample returns from history against the normal distribution, the historical returns had much longer tails. Meaning that, in reality, there are more really bad and really good years than there would be in a normal distribution.

After doing some research (I am not the only one interested in simulating the stock market), I found that some people are using a Student-t distribution. After playing with the parameters of that distribution I was able to get a much more realistic curve. Based on the historical data for the S&P 500, I am using the following parameters for the distribution: DOF = 3.40234, SCALE = 35, OFFSET = 0.00725

In software, I am using the boost library to generate random numbers according to the student-t distribution.

New Photo Gallery

I have changed web hosting companies and re-designed my web page. The biggest change is to the photo galleries. There are a lot of photo gallery programs out there, but I couldn’t find one with the feature that I wanted. I wanted to be able to upload a large set of pictures, but only display a sub-set of them on the main page. The rest of the pictures would be “behind” the displayed set. So, if I go to Paris and take a bunch of pictures of the Eiffel tower, I can put one picture on the main page, but allow users to see the rest of them if that is something they are interested it.

I wrote my own system with php and mySql that lets me manage the photos and the galleries. It also lets me separate the galleries into public and private areas. I have been scanning prints of family photos from my childhood and I put those online for the rest of my family to see.