Speaker

Michele Caci

Michele Caci

Amadeus, Senior Software Engineer

Antibes, France

Actions

I'm Michele, Italian from Sicily, I am a passionate Go programmer (a.k.a. Gopher) since 2018 and before then I used to work in Java, Scala and C++. Besides programming, I enjoy swimming, cooking and learning languages: currently, I'm learning Japanese. I always like to discover and develop new things. Yoroshiku onegai shimasu!

Area of Expertise

  • Information & Communications Technology

Topics

  • golang
  • Cloud & DevOps
  • Application Development

Graphs and games: can Go take a Ticket to Ride?

With this session, I propose to have a look at how we can make the world of Go match with the world of board games.
In particular I wish to share the challenges and highlights of implementing a game of Ticket to Ride game in Go.

Since the basics concepts of Ticket to Ride are related to graphs, I will start by sharing some concepts about graphs, their relation to Ticket to Ride and how they can be implemented in Go.

Several Go features, like generics and interfaces, will be in the spotlight and show the simplicity that Go brings to tackle the complexity of the problem to solve.

To drive this point home I will go on to describe how to implement some examples of gameplay in its code structure and execution.

Programming games is fun and entertaining and, most importantly, a good playground for learning and practicing a language and as a Gopher I want to share how the simplicity of Go makes it easy to approach the creation of applicationsprograms/games of a relatively high level of complexity.

This proposal comes from my passion about playing board games: it gave me the motivation to try implement one in Go and I thought about Ticket to Ride as it would have helped me also revising graph algorithms.

I can taylor this session for a talk that last from 35 to 50 minutes and I plan to show the code in live and explain what specific features of Go made the game simple to create.

I have already created a repository with the code that handles graphs algorithms and data structures in Go: https://github.com/mcaci/graphgo
and I'm currently working on my free time on expanding it to have a playable simplified version of the Ticket to Ride board game.

From the image package to real‑world image processing tools

Go’s standard library hides a surprisingly capable set of tools for working with pixels, colors, and images. In this talk, we’ll explore how far we can push those capabilities to build real-world, production-ready image tooling mainly staying within the boundaries of the standard library.

Beyond the playful introduction about how to create images and gifs, we’ll walk through practical use cases such as generating images from data, creating lightweight reports, building time‑series visualizations and assembling GIF animations.

We’ll then connect these techniques to practical engineering problems: generating dynamic thumbnails, building an image converter, automating image transformations with pipelines and exposing PNG rendering through an HTTP API.

Whether you're building infrastructure, tools, dashboards, or automations, with this talk I will show how Go enables expressive image generation and processing while keeping things simple, fast and maintainable.

Can Go take a Ticket to Ride?

As a hobby I started implementing a simplified Ticket to Ride in Go using graph algorithms with routes as edges, cities as nodes, and the shortest paths algorithm to illustrate gameplay. This year, I wanted to go further and show how AI can make more complex strategies and how image processing can make it visible. We’ll use Go structures to model the board as a graph, simulate gameplay, and compare classic pathfinding (Dijkstra/A*) with a Monte Carlo Tree Search (MCTS) policy and, if time permits, other AI models to choose routes. Then we’ll render the chosen paths on the map, frame‑by‑frame, and assemble animated GIFs that explain decisions as they happen. For teams, this is both an engineering exercise (create a clean architecture, add testing to verify gameplay actions and check for performance issues) and a fun playground for algorithms and visualization. Come for the board games, stay for the AI, and leave with patterns you can reuse in backends, simulations, and other tools.

From Graphs to GIFs: Teaching Go to Play Ticket to Ride

Board games are one of my passions and when I decided to implement one, I went for Ticket to Ride which is a perfect canvas for Go: the board is a graph, the strategy is pathfinding, and the story is in the visuals.

We’ll see on how to build a simplified engine in Go using Go's data structures for routes and tickets, compare shortest‑path strategies with a Monte Carlo Tree Search policy and, if time permits, other AI models to choose the action to take, and then visualize them in an animated GIF that shows the effect of these actions on the board.

The talk mixes exploration and decision making with graph design, algorithm comparison and visual tools to display the game in action. It will be a playful session where we will show how Go is well capable to think, decide, and draw at the same time.

GoLab 2024 Sessionize Event

November 2024 Florence, Italy

Michele Caci

Amadeus, Senior Software Engineer

Antibes, France

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top