Nad hladinou se odehrává úžasný aritmetický souboj, díky němuž si děti mohou procvičovat počítání tím pro ně nejpřirozenějším způsobem - hrou. Pod hladinou však stojí palác důmyslně promyšlené architektury, mezi jehož sloužící patří i obyvatelé kmenu zvaného Umělá inteligence. Ti dokážou být těm nad hladinou plnohodnotnými protihráči a během několika málo sekund vyhodnotit protihráčovy schopnosti i strategie.
Podílíme se na vývoji této jedinečné webové aplikace ABAKU, elektronické verze jedné z nejlepších her na počítání vůbec, za kterou stojí společnost AL.21. Cílem projektu není nic menšího než naučit děti počítat. Jedná se o edukační nástroj určený dětem na základních školách, ale ze zkušeností víme, že si ji rád zahraje i leckterý dospělý.
Abaku je hra, kterou lze hrát jak s živým protihráčem, tak s umělou inteligencí o různé obtížnosti. Obrovské využití má hra pro učitele, kteří mohou díky speciálním scénářům procvičovat různé početní dovednosti. Zároveň mají k dispozici i podrobné statistiky o vývoji znalostí jednotlivých žáků a kompletní uživatelskou správu.
Gaming
AL. 21 s.r.o.
Web
Výzvou byla již samotná architektura. Do té se promítal i požadavek na univerzálnost kvůli různým businessovým modelům, které chce společnost aplikovat v odlišných částech světa.
Největší výzvou je ovšem hra samotná a umělá inteligence v ní. Základem hry je herní engine, který má na starost vyhodnocování správnosti tahu a následně s tím spojené animace zobrazení jednotlivých příkladů. To vše pro více hráčů.
Umělá inteligence se stará o simulování protihráče, který má být stejně dobrý jako jeho protihráč. Musí být nejen schopný hrát hru “dle pravidel”, ale i reagovat na schopnosti protihráče (tj. kombinovat různé strategie vedoucí k vítězství), a přitom stíhat vyhodnocení do několika málo sekund. Neméně podstatná je stále přítomná schopnost vzdělávat.
Hra ABAKU není úplně nový produkt, ve skutečnosti se jedná o její pátou verzi. Poprvé je však vytvářena pro anglicky mluvící trh.
Tentokrát byl také kladen velký důraz na rychlost aplikace (zvláště pak robota suplujícího protihráče), možnost rozšíření a přeložení do více jazyků a především na kvalitu umělé inteligence, která musí být schopná vytvářet taktiky a adaptovat se na zkušenost protihráče.
Snažíme se o co největší partnerství s klientem a máme rádi Scrum, což se nám v tomto projektu podařilo výborně spojit. Do vývojového týmu se tak přímo na pozici Product Ownera zapojil Petr - přímý zástupce investora a zároveň tělem i duší vývojář. Nejenže zná původní verze ABAKU aplikace, a s tím spojené “edge casy” jako své boty, ale také rozumí problémům a otázkám našeho týmu. Pro nás ideální kombinace. Petr je s námi na standupech, groominzích, na review schůzkách a je aktivní v návrhu celého designu.
Základním kamenem je serverless řešení od AWS, programovací jazyk je hlavně TypeScript. Komunikace služeb a klienta běží přes GraphQL. Databáze přes DynamoDB.
TypeScript, React.js
TypeScript, Node.js, AWS, DynamoDB
Řešení je postavené na serverless AWS infrastruktuře. Bylo to nejefektivnější řešení, které zároveň umožňuje jednoduchou integraci s ostatními službami. Pro správu uživatelů jsme použili Cognito.
Aplikace je rozdělena do několika služeb, které spravují konkrétní funkcionalitu v doméně. K tomuto rozhodnutí nás vedl především požadavek klienta, který počítá s tím, že by se hra dala časem publikovat i mimo školní prostředí a zpřístupnit pro veřejnost, a také požadavek na škálovatelnost celého systému.
Na proces nasazování těchto služeb jsme použili AWS CloudFormation.
Projekt Abaku byl výzva nejen po stránce projektové ale i technologické. Celá aplikace je serverless a využívá celé plejády AWS služeb. Od API gateway, přes lambda funkce, Dynamo DB streams, IOT pubsub, až po AWS SQS. Výsledkem je vysoce škálovatelná realtime hra, která běží kompletně serverless s minimálními náklady.
Nesmírně důležitá část Abaku je Robot, neboli soupeř v podobě algoritmu na vyhodnocování tahů. Ten umožňuje hráči hrát proti virtuálnímu protivníkovi. Jeden z požadavků na Robota byl, aby byl schopen porazit i ty nejlepší hráče. Vzhledem k počtu možností ve hře a prvku náhody, bylo pro nás programování tohoto AI úžasnou výzvou.
Copyright © 2013 - 2024 Všechna práva vyhrazena