Another challenge was to make the application as scalable as possible in order to maintain at least 500 game rooms, which results in 1000 players online, and playing simultaneously. During the stage of project planning, we noticed that this project requires proper and complex DB structure for storing relations between users and computer users, games statistics, making the analysis and exporting the results as simply as possible. Therefore, we produced a highly organized DB with complex relations and dependencies. After that, the platform passed load-testing successfully.
For exporting and importing data, we decided to apply two approaches. First, we used ActiveAdmin as the admin side view. Second, we used CSV to batch import images. We developed a powerful, highly customized and detailed admin panel that not only has usual features, like downloading pictures of goods, but gives the administrators and researchers unlimited possibilities to create a game with practically any desired parameters, like playing only against AI agents, or people, and setting the skills of AI Agents. Indeed, as previously stated, the admin environment makes the platform a controlled environment for the research.
Working with the project that uses algorithms so heavily, we also faced integration challenges. We had to integrate the AQ algorithm for AI Agents into our Ruby project. We also integrated the Elo rating system known from chess. The ready-made module did not process player’ inputs properly on our platform, as initially, it used the Gem library. The integration of this standard module would require a cumbersome architecture. We therefore ultimately customized the existing module to ensure its smooth integration into our game platform.