The penultimate Bologna Game Farm event of 2025 took place on 19 November, bringing together developers, students and professionals for a series of technical talks dedicated to the future of game development. From the impact of generative artificial intelligence on video games to the management of the most complex codebases, the event focused on practical, surprising topics that are, above all, rooted in the real-world experience of those who develop games every day.

Generative AI in game development

Vincenzo Armandi from Effingo opened the day with an overview of what he describes as “a paradigm shift” in the development of artificial intelligence for video games.

Game development is undergoing a period of profound transformation thanks to Large Language Models (LLMs) and generative artificial intelligence, which are redefining the ways in which video games are created, interacted with and narrated. The impact is not only technological but also cultural: AI is redefining the very concept of the gaming experience, enabling the creation of games that evolve based on the player’s choices, emotions and language, ushering in a new era of shared creativity between humans and machines.

The traditional behaviour tree-based approach shows clear limitations as the complexity of the game increases: it is not very scalable, is rigid and requires constant maintenance.
The new frontier, however, is AI based on generative models, organised in a cycle:

Perceive → Reason → Act

A structure that allows NPCs not only to react, but also to improvise, adapting to the context and giving rise to more believable behaviour.

Cloud APIs or local models?

Two main technical approaches were subsequently identified:

API-based, relying on external cloud-based models: easy to implement, but with latency issues and a reliance on third-party services.
Local, with models running directly on the machine: more expensive and complex, but ideal for lag-free experiences with maximum control.

For those wishing to experiment without getting lost in the complexity, Armandi highlighted a range of accessible tools that allow you to get to grips with generative AI: LM Studio, Ollama, ComfyUI. These solutions make it possible to test models locally and then gradually integrate them into your own projects.

Code: from theory to reality

The talk by Tomas Bacchiocca of Overkillas offered a glimpse into the day-to-day reality of a video game programmer.
It began with a simple observation: when you dive into an existing codebase, what you expect rarely matches what you’ll actually find.

For those who want to experiment without getting lost in the complexity, Armandi highlighted a range of accessible tools that allow you to get to grips with generative AI: LM Studio, Ollama and ComfyUI. These solutions make it possible to test models locally and then gradually integrate them into your own projects.

Many developers imagine they’ll start coding straight away, implementing innovative systems and mechanics. Instead, far more often you find yourself faced with: a codebase built up over several years, thousands of files and an ecosystem of bugs desperately crying out for attention.

Debugging as a superpower

Debugging is an incredibly powerful learning tool:

“Debugging teaches you how the game works better than documentation — especially when the documentation… isn’t there.”

Working through errors, broken code flows and intertwined systems allows you to truly understand the project’s architecture.

The danger of zombie code

One of the most insidious problems is zombie code: abandoned functions, systems that were started but never finished, missing comments, forgotten variables.
These are pieces of code where it is no longer clear what their purpose is, whether they are still needed, or whether they can be removed — a nightmare for anyone inheriting the project.

Writing for your ‘future self’

The conclusion is a golden rule for every developer:

Comment
Communicate
Make what you write readable

This approach will prove invaluable when you need to revisit the code, perhaps some time later.

Surviving code: principles, patterns and best practices for navigating the complexity of development

Moreno Lovato from RuneHeads spoke about the creation of a video game not only as a creative act, but as an exercise in balancing ideas, technology and time.

The basic concept is that the architecture serves the game, and not the other way round.

A good code structure can:

support complexity
reduce costs
foster collaboration
leave room for creativity.

Using examples, analogies and real-world cases, the talk explained how to recognise the red flags that lead to chaos and how to apply design patterns and principles to maintain control of the project over time.

From the efficiency of the agile cycle to code readability, and from patterns to principles such as DRY, KISS and SRP, the talk provided a clear and comprehensive overview of what it means to build a solid yet lightweight architecture: robust enough to support the project, yet flexible enough to allow the game to evolve.

Engineering gameplay systems: bringing order to complexity through modular gameplay systems

Davide Mercurio, Lead Game Programmer at Nacon Studio Milan, explained how to manage a project when it becomes complex from a programming perspective.

During complex projects, gameplay systems tend to multiply and intertwine, risking becoming difficult to maintain and evolve.

Various approaches to tackling this problem were explored through the construction of modular systems, designed to communicate with one another in a clear and scalable manner:

  • the Collection, a framework that manages tokens and values as a shared database across different gameplay systems
  • Conditions, which allow for flexible responses to in-game events
  • the Save System, demonstrating how to utilise Unreal Engine’s native features to serialise the state of the game world
  • Technical art: technical constraints as a language of expression

Andrea Tabacco and Lara Giannotti from Antab Studio explained how, in the context of video games, the artistic aspect is constantly shaped by technical constraints, particularly in cross-platform development.
Through a brief retrospective on Antab Studio’s work, they explored how the customisation of shaders and development pipelines, combined with an approach aimed not at circumventing limitations but at using them as a creative lever, can raise the production standards even of a very small team.

Successful porting submissions: mistakes to avoid

Matteo Manicone from More Games Studio began by defining the concept of ‘porting’ as the process of adapting software or a hardware component to make it work on a platform other than the one for which it was originally created.

The following topics were then analysed:

how to port a PC game to a console, avoiding the most common mistakes
how to access portals and devkits
what really changes between consoles and what checks to carry out before starting.

We also explored a range of concepts in depth: from ‘what to sort out and in what order’ (heavy assets, inputs, UI, saves, performance) right through to testing, submission and release.

Finally, there was an overview of ‘dos and don’ts’ and ‘horror stories’ that actually happened and have been turned into guidelines to minimise risks and delays, thereby enabling a smoother journey to the app store with a higher likelihood of approval.