En cours de chargement de la vidéo...
Development of Odoo's serious gaming: the technical challenges encountered
Demo Functional Community Talk
Lieu : Foyer 500 - 12/10/2022 16:30 - 12/10/2022 17:00 (Europe/Brussels) (30 minutes)

Development of Odoo's serious gaming: the technical challenges encountered
Bernard Letourmy & Nicolas Rosset
IT Consultant & IT Engineer
IT Consultant & IT Engineer

Nicolas Rosset is an IT engineer at the University of Applied Sciences Western Switzerland (HES-SO), and Bernard Letourmy is an independent IT consultant. Together, they co-developed Odoo-based Aroolla games at the University of Applied Sciences Western Switzerland (HES-SO) and managed the production infrastructure on AWS.

One of the best ways to learn is to practice, but learning how to use Odoo in a real environment is overwhelming at best and risky at worst. So why not turn it into a safe game?

The Aroolla line of serious games lets teams of students run a company on a simulated competitive market where time is compressed so that one day in the game lasts only 1 minute in real life. 

The behavior of customers, suppliers, and internal functions of the company are simulated, and players are fully immersed in the game.

Turning Odoo into a fast-paced competitive game brings numerous technical issues as we simulate an entire day of business transactions into a single minute to keep it responsive for players. 

  • Not only do we have to fake the timestamp of events to ensure that every date written by Odoo matches the game’s compressed timeline. Our simulator also has to create, read and update hundreds of sales, purchases, and manufacturing orders per minute for up to 12 companies in parallel. This allows us to create a convincing and engaging simulation for up to 60 users per game. 
  • To reach this level of speed, we use horizontal scaling and increase the number of hosts when the processing time for a simulated day exceeds 60 seconds. This level of processing speed requirements brings performance issues, mainly because of the many concurrent database accesses by the simulator and the players. 
  • Other sources of problems when using a multi-host infrastructure with Odoo are the filestore and the module initialization. By their very nature, our Odoo instances are short-lived, and so are their databases. However, we want to keep the data somewhere as players and instructors may wish to study them for academic purposes. To do so, we use a data warehouse with which our simulator synchronizes Odoo’s internal database. Nevertheless, this leads to another performance issue as each transaction needed to feed the data warehouse must be managed correctly.
  • Each new game must start with a fresh new state (company initial inventory, assets, etc.), as deleting all records without a trace is not a standard feature in ERP. Also, we need to be able to restart a new game in seconds.

During this talk, we will present how we have solved all these issues to develop our serious games, and we will discuss the various tradeoffs we had to make to reach this performance level. 

We will also discuss how this situation differs from using Odoo in a production environment to run a company. Our solutions could be interesting for stress testing Odoo or creating simulations aimed at training.