Psellos
Life So Short, the Craft So Long to Learn

Notes and Comments

February 25, 2012

Schnapsen/66 iPhone App

Master Schnapsen/66 Icon

The Schnapsen/66 iPhone app evolved into a larger project than we originally expected. It’s been keeping us busy, and is appearing a little later than we planned.

After a survey of web sites and card-playing books, we revamped the rules of the app to agree better with those in use today among Schnapsen and Sixty-Six players. There’s a lot of ambiguity to sort through, but when we did this, we found that Schnapsen and Sixty-Six are less similar than we thought, and that they are both a lot more fun to play under the new rules.

The most surprising part was that our Sixty-Six engine plays a much better game under the new rules. Maybe it’s because the outcomes are less dependent on luck. If so, it shouldn’t be surprising, as that’s really what makes a game fun to play.

We also spent a lot of time running experiments and adjusting the play of the Schnapsen and Sixty-Six engines to be the best possible. Along the way we learned a lot about the games. As I’ve said before, this is a cool thing about software. It assumes the forms of many different things, and teaches you about them.

The Schnapsen/66 app has now reached in-house “gold master” status, and should be appearing in the iOS App Store any day now. Because it plays so well, we’re calling it Master Schnapsen/66. Many thanks to the beta testers who helped us improve the app.

Schnapsen Log

Schnapsen Log Icon

Our friend Martin Tompa has become very interested in Schnapsen, and has agreed to write a series of articles (you might almost call it a “blog”) about the game and how to play like a master. The first few articles of the Schnapsen Log are already written, and they are fantastic. We’re hoping to start a worldwide Schnapsen craze, and this seems like a pretty good way to start.

Martin is also the one who surveyed websites of many lands to determine the best rules to use. And he gave us tremendous advice on improving the engine’s play. We’re very grateful to him for doing all this—it really improved the app.

To get ready for the Schnapsen Log, I’ve spent some time modifying the website software to support commenting. I’m going to start allowing comments on my own blog posts (starting with this one). If you do comment, please be temperate, as I have a shy, retiring nature.

OCaml on iOS

iPhone Showing Lambda

A few people have written to ask me whether I’m planning to upgrade the OCaml-to-iOS compiler OCamlXARM to work with the latest versions of OS X and Xcode. I’m definitely planning to do this. The reason I haven’t done it yet is that I’ve been busy with the Schnapsen/66 project.

Now that the release is nearly ready, I hope to get the OCamlXSim and OCamlXARM compilers and the test apps working over the next few weeks. In the past it has not been difficult to adapt to a new Xcode release, but I won’t know until I look at the details.

After this is done, I’ll turn my attention to using the latest OCaml (3.12) compiler for compiling to iOS. This is likely to be trickier than adapting the current OCamlXARM to to the latest Xcode. I don’t know when the results will be ready. But it’s important, and I think it might interest more people in doing OCaml-on-iOS programming (or embedded OCaml programming in general).

We’d also like to start a worldwide OCaml-on-iOS programming craze, though a small group of guys can only start so many worldwide crazes. Perhaps there is room for an iPhone app to manage the various worldwide crazes that one is attempting to start.

If you follow OCaml, you know that there have been some excellent developments recently with the ARM back-end. In particular, Benedikt Meurer has added support for ARM hardware floating point to the development version of OCaml. I very much like the sound of this. One reason we’ve been sticking with an older compiler version is that there are patches (by others, not us) to generate hardware floating point. Although I haven’t run any tests, I suspect that this is a real benefit for iOS apps, especially apps like ours that need to do fairly intense computation in short bursts. So this is something I’ll be looking at also.

Posted by: Jeffrey

Comments

blog comments powered by Disqus