Hola

(Overview)
EchoWorldisadark-fantasyadventurewhereanAImodelgeneratesnarrationandthreechoicesfromthecurrentsceneandtheplayer’sdecision.Themodelcanimprovisewhileusingworldloreandrecenteventstomaintainnarrativecontinuity.
(Architecture)
TheReactandViteclientsendsplayerchoicesoverSocket.IOtoaNode.jsandExpressgameengine,whichmanageseachgameasasession.Theenginevalidateschoicesagainstthecurrentsceneandasksanarrativeorchestratortogeneratethenextone.TheorchestratorretrieveslorefromAzureAISearchandincludesitinpromptstoAzureOpenAI.Ascenecountersetseacharctotenscenes:theopeningscenecountsasthefirst,eachchoiceincrementsthecounter,andthefinalscenehasnochoices.
(Engineering)
Thenarrativeorchestratorbuildseachsearchqueryfromthecurrentscene,theplayer’schoice,andthetwomostrecentnarrations,retrievesuptothreelorepassages,andcombinesthemwithdecisionhistoryforthenextprompt.Thegameenginekeepsdecisionsandscenesintheactivesessioninmemory;MongoDBstoresasessionsummarywhenagameendsoradisconnectisdetected,soin-progressgamescannotberesumed.Generatedscenesarevalidatedtocontainthreechoices,whilefinalscenesmustcontainnone;fallbacksceneskeepthegamemovingifgenerationorvalidationfails.
BuilttheadaptivenarrativegameflowwithReact,Node.js,Express,andSocket.IO.
IntegratedAzureOpenAIwithAzureAISearchtogroundgeneratedscenesinworldknowledge.
StoredplayersessionsandstoryhistoryinMongoDBAtlas.
DevelopedtheprojectforMicrosoftAgentsLeague,AISkillsFest2026.
Gallery



Built with
React
Vite
Tailwind CSS
Node.js
Express
Socket.IO
Azure OpenAI
Azure AI Search
MongoDB Atlas
Digital Badge

Explore this project
Inspect the live deployment or browse the repository code.
Haveaprojectinmind?
rojas.edu53@gmail.com