RoboVerr: Circuits of Courage, Wires of War

This is a submission for the Alibaba Cloud Challenge: Build a Web Game.* What I Built RoboVerr is an action-packed 2D platformer web game featuring a robot protagonist navigating through challenging environments. The game combines modern web technologies with classic platformer mechanics, offering an immersive gaming experience directly in the browser. Players control a robot character who can run, jump, and shoot while avoiding and killing enemies. The game features fluid animations, collision detection, shooting mechanics, user authentication, profile customization, a scoring system that persists user data, and a leaderboard system to track high scores. The game is fully responsive, supporting both keyboard controls for desktop users and touch controls for mobile gameplay. Demo Live Game: Play_Now Github Repository: RoboVerr Desktop Picture Mobile Picture Alibaba Cloud Services Implementation Elastic Compute Service (ECS) I deployed the RoboVerr game on Alibaba Cloud's ECS instances, which provided reliable and scalable computing power for the game server. Why I chose it: I am familiar with using Ubuntu to serve my website. I love the flexibility that the Ubuntu instance on ECS offers, as it enables me to create and manage my server as I wish. For example, I can set up an Nginx server and point it to an external website, allowing me to host anything I want, including service workers. Additionally, ECS provides the perfect balance of performance and cost-effectiveness, with the ability to scale up during peak gaming hours. Integration: I created the server and bound it to an SSH_KEY. I use this SSH_KEY to log in to my Ubuntu system. After logging in, I cloned the website repository onto the EC2 server. I then installed and configured Nginx, testing its functionality by accessing it using the instance's public IP address. Next, I navigated to the game directory, installed the necessary Node.js packages, and set up my .env file to connect to the AsparaDB MySQL RDS. After running and testing the game, I confirmed that it was working properly. Once I had verified it is working, I configured my Nginx server in /etc/nginx/sites-available/default using proxy_pass to direct traffic to localhost:3000, allowing it to serve my application under the server name ECS_PUBLIC_IP_ADDRESS. After restarting Nginx, I confirmed that the server was successfully serving my game. I then created a system service (located at /etc/systemd/system/robover.service) to ensure my game runs continuously. I reloaded the system daemon and verified that everything was functioning perfectly. Next, I went to one of my domain names on Namecheap and added an A record that pointed to ECS_PUBLIC_IP_ADDRESS, directing it to a subdomain (roboverr). I set my server name to the subdomain (roboverr.quantumweb.me). I installed Certbot on my server and configured it to enable SSL, allowing my game to be served from 'https://roboverr.quantumweb.me/'. Finally, I configured my repository to utilize GitHub Actions for automated deployment to the server whenever I push changes to the main branch. Experience: I really appreciate how fast the SSH connection is; it doesn't lag like some other cloud servers I’ve used in the past. The service was as easy to use as other cloud options. However, I expected that the ECS would be linked to a subdomain name, similar to how AZURE does it.

Apr 27, 2025 - 13:06
 0
RoboVerr: Circuits of Courage, Wires of War

This is a submission for the Alibaba Cloud Challenge: Build a Web Game.*

What I Built

RoboVerr is an action-packed 2D platformer web game featuring a robot protagonist navigating through challenging environments. The game combines modern web technologies with classic platformer mechanics, offering an immersive gaming experience directly in the browser. Players control a robot character who can run, jump, and shoot while avoiding and killing enemies.

The game features fluid animations, collision detection, shooting mechanics, user authentication, profile customization, a scoring system that persists user data, and a leaderboard system to track high scores. The game is fully responsive, supporting both keyboard controls for desktop users and touch controls for mobile gameplay.

Demo

Live Game: Play_Now
Github Repository: RoboVerr

Desktop Picture
Profile Page

Home Page

Game Play

Mobile Picture

Home Page

Game play

Alibaba Cloud Services Implementation

Elastic Compute Service (ECS)

I deployed the RoboVerr game on Alibaba Cloud's ECS instances, which provided reliable and scalable computing power for the game server.

ECS Console
Why I chose it: I am familiar with using Ubuntu to serve my website. I love the flexibility that the Ubuntu instance on ECS offers, as it enables me to create and manage my server as I wish. For example, I can set up an Nginx server and point it to an external website, allowing me to host anything I want, including service workers. Additionally, ECS provides the perfect balance of performance and cost-effectiveness, with the ability to scale up during peak gaming hours.

Integration: I created the server and bound it to an SSH_KEY. I use this SSH_KEY to log in to my Ubuntu system. After logging in, I cloned the website repository onto the EC2 server. I then installed and configured Nginx, testing its functionality by accessing it using the instance's public IP address.

Next, I navigated to the game directory, installed the necessary Node.js packages, and set up my .env file to connect to the AsparaDB MySQL RDS. After running and testing the game, I confirmed that it was working properly.

Once I had verified it is working, I configured my Nginx server in /etc/nginx/sites-available/default using proxy_pass to direct traffic to localhost:3000, allowing it to serve my application under the server name ECS_PUBLIC_IP_ADDRESS. After restarting Nginx, I confirmed that the server was successfully serving my game.

I then created a system service (located at /etc/systemd/system/robover.service) to ensure my game runs continuously. I reloaded the system daemon and verified that everything was functioning perfectly.

Next, I went to one of my domain names on Namecheap and added an A record that pointed to ECS_PUBLIC_IP_ADDRESS, directing it to a subdomain (roboverr). I set my server name to the subdomain (roboverr.quantumweb.me). I installed Certbot on my server and configured it to enable SSL, allowing my game to be served from 'https://roboverr.quantumweb.me/'.

Finally, I configured my repository to utilize GitHub Actions for automated deployment to the server whenever I push changes to the main branch.

Experience: I really appreciate how fast the SSH connection is; it doesn't lag like some other cloud servers I’ve used in the past. The service was as easy to use as other cloud options. However, I expected that the ECS would be linked to a subdomain name, similar to how AZURE does it.