Making Sloppy Progress

A New Side Project

recreating sidereal confluence using ddd

I recently picked up an old classic by Eric Evans called Domain-Driven Design. I’m moving pretty slowly through the book doing my best to let it soak in. My process so far has been to highlight points of interest and take some notes in the margins. Then, at the end of the chapter, I try to summarize what I’ve learned. I really don’t want to get through this book and only have vague ideas of what was talked about. In addition, while working through the book I started a little side project. I’m recreating the game Sidereal Confluence. It has a ridiculous name, but it really is a fascinating game.

I enjoy just about any game that involves a heavy element of social interaction. If that interaction involves striking deals I’m even more interested! Well, this one has up to nine players sitting in a circle bartering and trading, wheeling and dealing. The premise is that players buy “converters” and use their resources on those converters to generate more resources. With their ever expanding piles of resources they’ll be able to begin converting into victory points. The player with the most victory points wins. If you’re still curious about how the game works, check out this 4 minute video.

I chose this as my side project for two major reasons. One, I really enjoy board games, and I love learning how they tick. Two, board games provide a really nice set of clear “business rules” perfect for implementing using Domain-Driven Design.

I’m currently focusing strictly on implementing the game in Go. That is, no framework, no database interaction, nothing. Eventually, I should have a library that’s guaranteed to be loosely coupled with whatever the rest of the solution looks like. I’ll add another post here later once I’ve gotten through that part. Wish me luck!

About Me

I'm a father of three and a software engineer for both hobby and trade. I enjoy tabletop role-playing and board games - especially of the heavily social variety! I also occasionally participate in game jams with friends.

I'm particularly interested in self-improvement in all of those things. I enjoy progressing through a new skill and learning ways of maximizing my time and focus.

Follow Me

The best way to reach me is via email. When I'm in a coding mood I've usually got some kind of personal project going on my github.