What WE Built
What if we wrapped Soul Knights and Alibaba Cloud Services into a robot-themed web game? As a result, several viruses and bugs infected the laboratory of Alibaba, wreaking havoc and chaos. Now, as a sentient and righteous robot, it is up to you to save and cleanse the laboratory, fighting several corrupted refrigerators and heaters!🤖
ROBOLTS is a robot-themed survival hybrid action RPG inspired by the game Soul Knights. Key features are as follows:
- 📺Uniquely created sprites and tiles for enemies and bosses, which may be the head of a robot or a weird TV man that came from brain rot.
- ⚔️Three starter characters that have distinct qualities and abilities to suit your taste in gearing up and battling these corrupted robots
- 👞Press space to dash and avoid incoming projectiles and enemies!
- 🔫A vending machine that gives three varieties of guns?!
- 📃A leaderboard that shows who is the greatest robot out there.
U I I A I U I I I A I, gear up and choose your weapons as you cleanse the bosses that wreak damage in the laboratory!🔫
Demo
🎮Link to Play: https://robot-game-test.vercel.app/
Alibaba Cloud Services Implementation
Overview of Alibaba Cloud Services in Your Game
Alibaba Cloud Object Storage Service (OSS) was selected for our leaderboard system based on several key factors:
Serverless Architecture: OSS allowed us to implement a persistent data storage solution without maintaining a complex database infrastructure.
Cost Efficiency: We subscribed for the product for a short time, since we cannot avail of the free trial for not having a decent credit/debit card.
Simplicity: OSS provided a straightforward API for storing and retrieving JSON data, which aligned well with our leaderboard's relatively simple data structure.
Global Availability: As a globally distributed storage service, OSS ensured low-latency access for players across different regions, particularly in Southeast Asia where our primary audience is located.
Integration with Node.js: The ali-oss SDK offered excellent compatibility with our Express.js backend service.
Our integration involved several components:
- Server-Side Implementation:
const OSS = require('ali-oss');
// Initialize OSS client with credentials from environment variables
const ossClient = new OSS({
region: process.env.OSS_REGION,
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
bucket: process.env.OSS_BUCKET
});
// Leaderboard stored as a single JSON file
const LEADERBOARD_FILE = 'leaderboard.json';
-
API Endpoints:
- GET endpoint to retrieve scores
- POST endpoint to submit new scores
-
Data Storage Pattern:
- We store all leaderboard entries in a single JSON file
- When retrieving, we sort by score and return the top entries
- When submitting, we read the existing file, append the new score, and write it back
-
Client-Side Service:
- A LeaderboardService class handles communication with our backend
- Provides methods for fetching and submitting scores
- Handles error cases gracefully with appropriate user feedback
Our Experience Working With Alibaba Cloud
Story time.
Since we cannot avail of the free trial we really went out buying for the stuff 😆.
About setting the OSS up, at first, I really got no idea where to start after availing it, like "what do you mean buckets?" and "where do I actually find and get these access keys?" 😭
Luckily, there are some tutorials on Youtube and there's also AI, that really helped us to set up the backend of our game (let me also say that this is my first time tapping into backend stuff, so it really cracked my head)
So, yeah! Even though we don't really know what we are doing on the first line, as long as we keep going, we'll get there. (⚠ LOCAL JOKE AHEAD)
Like, STEP BY STEP PALA S'YA, SASAKSES RIN PALA! in integrating the Alibaba Cloud Services 😆😅
Game Development Highlights
As first-year computer science students, several development highlights were introduced to us:
- 🎮First Game Development Project: This is our first game development as a group. As you can tell, we have no idea at all about how to develop a game thus, we browsed several games that we were fond of and one of them was Soul Knights. We want to develop a game where it will be a bit harder for us to create but at the same time test our skills to their limit and improve it. Fortunately, we were able to apply our skills as an artist and developers while having fun as a first-timer.
- ☁️First Utilization of Alibaba Cloud Services: As we mentioned earlier, we were left bewildered due to the vastness of utilizing the Alibaba Cloud Services and setting the OSS up. We were worried since it was our first time exploring these kinds of services and software thus, we were nervous. The only language that we know is C so it was a big jump from our knowledge.
- 👾First Implementation and Personal Creation of Sprites and Tiles: One of us actually wants to become a game developer someday thus, utilizing and finally applying our skills when it comes to creating sprites and tiles felt exhilarating. The way that I see the pixels that I created were being put into life was satisfying and makes me hopeful for my future as a game developer. I also felt like as I created more tiles and sprites for the games, it also made me improve and adapt to the sprites I am creating.
Meet the TEAM
Cilon, Rachel Anne @rachelannec
Inso, Eliazar N. @deadbush225
Rodriguez, Jan Earl F. @rawrearl
Link for Github Repo: github.com/Deadbush225/Robot-Game