↑ Best viewed this side up ↑
Dmitry Leskov

How I Play 18xx Games Online – Oct 2018 Edition

18xx games are quite suitable for asynchronous online play. First, computer aided play relieves you from the need to track money and shares and care about rules enforcement. Second, you have more time to think about your moves, maybe even play out some scenarios on a spreadsheet at a critical moment of the game. Third, many titles that are available online are out of print or are rather expensive. But perhaps most importantly, for many people it is much easier to find players online than locally. In my case, it is almost infinitely easier, as 18xx games are almost unknown in my country. Over the last six months, I’ve played half a dozen games of 1846, a couple 1889, gave 1867 a shot, and recently began tipping my toes in the classic, brutal 1830. At the same time, my copies of 1846 and 1889 have each seen just a single 2p training game so far…

So how do I play 18xx online? There are actually many options, of which I have so far had experience with three:

  • Rails is an open source Java application that works on Windows and Linux PCs and on Macs. You can use to play a real-time game with players sitting in front of a big screen, but the intended use is to facilitate play-by-email. You would make your move, save the game and email the save file to the next player. These days, you are more likely to upload that file to a shared folder and ping the next player via a messenger or a Slack/Discord channel.

    As of version 2.0 RC3, Rails supports 1830, 18Kaas, 1889, 1856, 18AL, 1851, 18EU, 18TN, 18GA, 1835, 1880 and 18NL. It automates everything and enforces rules. To date, I’ve only used it to play 1889; it worked well.

  • rr18xx is a Web site that provides essentially the same functionality as the Rails app but through a Web interface. It has been in the “under construction” state for many years, so not only the registration form is hidden, but it also requires a promo code that you can either dig up from the archives of a certain Yahoo group or learn from someone who is already registered.

    The biggest issue with rr18xx is that it is painfully slow. You may need to wait 20-30 seconds after each click, and sometimes it will time out. Otherwise, it look to be pretty solid despite the permanent “Under Construction” status.

    The list of available games is relatively small and includes 1830, 1853, 1856, 1870, 18C2C, and 1817.

  • Board18 is again a free Web service that provides means for tracking the board state, as its name kind of implies. All you can do is place tiles and tokens, without any rules enforcement. There is also a separate screen with the stock price chart, where the players again have to place and move tokens manually. A shared spreadsheet is typically used to to track the rest of the game state – money, shares, tokens, trains, private companies, etc., and Discord, Slack or forum is used for communication.

    One big advantage of Board18 is the sheer amount of available titles. There are so many that I won’t list them here and link to the respective Wiki page instead. Most importantly, it has 1846, which is my favorite game at the moment.

    Another detail is that Board18 is open source and it is relatively easy to create a new “game box” for it or modify an existing one. So you can run it on your own Web site with a different set of games or customized graphics. I played 1846 on a personal Web site which used a hi-res scan of the GMT edition board (the game box on the main Board18 site apparently uses a modest quality scan of the original board).

Despite the amount of manual labor and ample room for error, I by far prefer the Board18 + shared spreadsheet combo to the other two options. Exactly because of those errors there is much more communication between players, so the game has a bit of the face-to-face feeling, whereas Rails and especially rr18xx feels like playing against an incredibly slow AI, as 95% of all communication is “Your turn” nudges.

Anyway, the main question is not “How do you play 18xx online?“, but “Where do you find players for your online 18xx games?

The Heavy Cardboard Slack is way superior to everything else I’ve tried — it often takes me literally a few minutes to gather a group willing to join my game. But you’d need to become a patron to join it ($5/month minimum, totally worth it to me, but YMMV). Speaking of Slack, HOGGS and 18xx Games are free to join but way more quiet. I’ve also had success in the #boardgames IRC channel on Freenode and in the 18xx play by email game clearinghouse thread in BoardGameGeek forums.

TIL That Layered Coffee Drinks Make Themselves

I used to think that making a layered coffee drink takes as much care as pouring a layered cocktail. Got a glass mug the other day and discovered that the process is pretty simple.

Opening My First Ever Donations Season

"Start donating to the authors of free and open source programs that I am using" was one of my failed New Year resolutions on multiple occasions. It is not anymore, and I hope this post will inspire you to follow suit.

The Finite Laziness of Scala Streams

The official Haskell wiki discusses literally dozens of ways to produce a list of prime numbers, but the one that caught my attention the other day is not listed there. Its centerpiece is a fold of a recursively defined infinite list of infinite lists (lists are lazy in Haskell). In this post, I’ve documented my attempt to rewrite it in Scala using streams.

How I Would Have Price Positioned JetBrains Toolbox

Now that my previous post on the topic has got so much attention from Reddit users, as a software engineer turned marketer I feel obliged to follow up.

Read the rest of this entry »

What Microsoft Got Right That JetBrains Didn’t

Blog postsrants, angry tweets, comment threads hundreds of items long — the user community has unleashed quite some emotion onto JetBrains after the company’s decision to change the pricing model for its desktop products to 100% subscription-based. The news seems to have made the day for Eclipse guys, and at least one other commercial IDE vendor, though.

Read the rest of this entry »

Scala Stream Hygiene III: Scalaz EphemeralStream Fills Quite A Canyon

Scalaz, an open-source pure functional programming library for Scala, provides the EphemeralStream class that does not exhibit the memory leak issues inherent to the standard scala Stream. However, it carries its own set of problems: memory overheads, performance penalties, and application disk footprint increase.

Scala Stream Hygiene II: HotSpot Kicks In

Infinite Scala streams should be marked “not for production use”, even though you can get away with breaking most of the rules listed in Part I.

Scala Stream Hygiene I: Avoiding Memory Leaks

The standard Scala Stream class is essentially a lazy List with memoization. However, memoization is undesirable when defining infinite data structures. It is possible to avoid memoization of streams by following a set of five rules, described in this first post in a 3-part series.

Updated AddFLACs to Extract Track Metadata From Pathnames

Match your FLAC files pathnames against a regular expression, then refer to capture groups when specifying iTunes field values.

« Older Entries |