An amazing arithmetic duel takes place above the surface, allowing children to practice counting in the most natural way for them - by playing. Below the surface, however, is a palace of elaborate architecture whose servants include the inhabitants of a tribe called Artificial Intelligence. They can be full-fledged adversaries to those above the surface, assessing their opponent's abilities and strategies in a matter of seconds.
We are involved in the development of this unique web application ABAKU, an electronic version of one of the best counting games ever, backed by the company AL.21. It is an educational tool for primary school children, but from experience we know that many adults will enjoy playing it as well.
Abaku is a game that can be played with both a live opponent and an artificial intelligence of varying difficulty. The game has a huge use for teachers who can practice different numeracy skills thanks to special scenarios. At the same time, detailed statistics on the development of individual pupils' knowledge and complete user management are also available.
Gaming
AL. 21 s.r.o.
Web
The challenge was the architecture itself. This included the requirement for versatility due to the different business models the company wanted to apply in different parts of the world.
The biggest challenge, however, is the game itself and the artificial intelligence within it. The core of the game is the game engine, which is in charge of evaluating the correctness of the move and then animating the associated display of each example. All this for multiplayer.
The artificial intelligence takes care of simulating the opponent to be as good as his opponent. It must not only be able to play the game "according to the rules", but also react to the opponent's abilities (i.e. combine different strategies leading to victory), while still managing to evaluate within a few seconds. Equally important is the ever-present ability to educate.
The ABAKU game is not a brand new product, in fact it is the fifth version of the game. However, for the first time it is being created for the English-speaking market.
This time, great emphasis has also been placed on the speed of the application (especially the robot substituting for the opponent), the possibility of expansion and translation into more languages, and above all on the quality of the artificial intelligence, which must be able to create tactics and adapt to the experience of the opponent.
We strive for the greatest possible partnership with the client and we like Scrum, which we managed to combine perfectly in this project. Petr - a direct representative of the investor and a developer in body and soul - joined the development team as a Product Owner. Not only does he know the original version of the ABAKU application, and the associated "edge times" like the back of his hand, but he also understands the problems and issues of our team. An ideal combination for us. Peter is with us on standups, groomings, review meetings and is active in the overall design.
The cornerstone is a serverless solution from AWS, the programming language is mainly TypeScript. The communication between services and clients is via GraphQL. The database is via DynamoDB.
TypeScript, React.js
TypeScript, Node.js, AWS
The solution is built on serverless AWS infrastructure. It was the most efficient solution that also allows easy integration with other services. We used Cognito for user management.
The application is divided into several services that manage specific functionality in the domain. This decision was driven primarily by the client's requirement that the game could eventually be published outside the school environment and made available to the public, and also by the requirement for scalability of the entire system.
We used AWS CloudFormation for the process of deploying these services.
The Abaku project was a challenge not only in terms of design but also in terms of technology. The whole application is serverless and uses the whole range of AWS services. From API gateway, to lambda functions, Dynamo DB streams, IOT pubsub, to AWS SQS. The result is a highly scalable realtime game that runs completely serverless at minimal cost.
An extremely important part of Abak is the Robot, or adversary in the form of a move evaluation algorithm. This allows the player to play against a virtual opponent. One of the requirements for the Robot was that it be able to beat even the best players. Given the number of possibilities in the game and the element of chance, programming this AI was an amazing challenge for us.
Copyright © 2013 - 2024 All rights reserved