Welcome to living realms! A little project I started to learn about Devops, Docker and a whole other suite of tools.
Living realms is a virtual fantasy world simulator. Each turn, leaders of a kingdom choose actions to affect the world they inhabit — whether it’s attacking a rival kingdom, expanding industry, or shoring up defenses. There is no end, and there is no victory, only eternal simulation.
Though the "what" is interesting, the more important part is the how. The goal is not a fantasy world simulator, but rather a project that develops my Devops skills and grows my capabilities with cloud tools.
Each Realm is a single Docker container running on a shared EC2 instance. I chose this over AWS's managed Docker service to gain a deeper understanding of Docker. Each container is its own realm, with agents, tiles, resources, and battles. In the middle of all realms is the Nexus, an orchestrator container that communicates world state to and from realms.
The full overview: The website polls a Lambda function, which finds the EC2 instance running the realms and the Nexus. The Lambda requests the desired realm state and receives JSON, which is then graphically represented on the website.