Jared Kirschner : Engineer

  • Home
  • Work Experience
    • LabVIEW Student Ambassador for National Instruments
    • Electrical and Computer Engineer at Lit Motors
    • Digital Signal Processing Course Assistant at Olin College
    • Motion Control Engineer at National Instruments
    • Educational Research Statistician at Olin College
    • Bioinformatician at TGen
  • Competencies
    • Embedded Systems
    • Mechatonics, Robotics, and Controls
    • Software Development
    • Electrical Engineering
    • Product Design and Entrepreneurship
    • Mathematics and Computer Modeling
    • Sustainability
    • Miscellaneous
  • Resume
  • Contact

Settlers of Catan Board Randomizer

The Settlers of Catan by Klaus Teuber is a fun board game with excellent replay value... if you can reliably generate a unique, fair experience. Enter the Settlers of Catan Board Randomizer—see the github repository and live website.
Picture
Randomly generated terrain map for a Settlers of Catan game.

The Goal

Some of my friends and family members will exploit any information they can in the pursuit of sweet board game victory. In Settlers of Catan, this takes the form of shaping the terrain map in ways that subtly bias the results. After several attempts at manual procedures for generating unique, fair maps were thwarted, I decided that an automated approach was in order.

The Process

Whatever I created, I wanted it to be usable by my friends and family members, even when I wasn't around to complain about the "uniqueness" or "fairness" of the terrain map. I needed something with an intuitive interface that would be accessible to non-techies. I also wanted to learn something in the process.

The Solution

I decided on a browser-based solution so that the interface would be familiar and accessible to my audience. I also wanted to learn how to use Javascript. All of the map generation logic is performed by client-side Javascript and then displayed using an HTML5 canvas. The board randomizer website is hosted freely by Github and is tied directly to the code repository, making maintenance easy for me and use easy for my audience.

My Responsibilities

  • Design and implementation of full software architecture
  • Design and implementation of user interface
  • Design and implementation of map definition, random generation, and display
  • Image editing to produce terrain hexes

Powered by Create your own unique website with customizable templates.