Mind the GeekMind the Geek
Byte Size15min
BEGINNER

Training My Rival in Java: A Deep Q-Learning AI to Play Azul

This talk demonstrates building a Deep Q-Network (DQN) AI opponent for the board game Azul using Java, without relying on frameworks like PyTorch or TensorFlow. Key topics include environment design, state encoding, reward shaping, and training strategies for effective game-playing AI.

Victor Uria Valle
Victor Uria ValleCERN

talkDetail.whenAndWhere

Tuesday, February 10, 12:45-13:00
Room B
talks.roomOccupancytalks.noOccupancyInfo
talks.description
AI has become part of our everyday lives but we often forget one of its earliest and most fascinating uses: creating an opponent to play games with.

We’ve seen it in chess, Go, and countless video games, where AI opponents follow complex strategies or fixed rule sets. But who says you need PyTorch or TensorFlow to do it? Sometimes, the good old Java is all you need.

In this talk, I’ll share how I built a Deep Q-Network (DQN) in Java to teach an AI to play the board game Azul. I’ll cover environment design, state encoding, reward shaping, and training strategies.
java
games
ai
dqn
talks.speakers
Victor Uria Valle

Victor Uria Valle

CERN

Spain

Victor Uria Valle is a Full Stack Software Engineer at CERN, where he works on modernizing and developing enterprise applications that support the lab’s scientific operations. Victor's work includes upgrading CERN’s core document management systems using modern Java and Spring-based technologies.

Passionate about clean architecture, maintainable code, and legacy system transformation, he also leads the Applications and Services Community of Practice at CERN, fostering collaboration and technical excellence.

He is an active speaker in the developer community, with talks at Voxxed Days CERN 2024 (“Custom Spring Data Projections Beyond JPA”), Voxxed Days CERN 2025 (“Guice: Why lightweight dependency injection frameworks are not enough”), and CERN Spring Campus 2025 on Python-powered trading strategies and advanced Power BI data visualization.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription

occupancy.title

occupancy.votingNotYetAvailable

occupancy.votingAvailableBeforeStart

talkDetail.signInRequired

occupancy.signInToVoteDescription

comments.title

comments.speakerNotEnabledComments