Inspiration

As someone who loves playing Elden Ring, I urged to try building my own role-playing game with lots of spells, wearables, and build options. The idea of becoming a creator who could my design skills to provide players with many opportunities and choices motivated me to dive deep into laying out a dynamic storyline. Thus, I used the opportunity of publishing my first Meta Horizon world to create a template RPG game others can remix into unique themes.

What it does (Usage Guide)

The main goal is for players to build and battle with beyblades. Beyblade Arena is split into 5 simple 'decks' to make it easy for players to isolate and extend the multiple functionalities offered:

  1. Role Selection: This deck allows players to specialize into build roles: woodworkers, bladesmiths, and magicians. The role defines the types of quests that the player receives, making gameplay tailored to the player's interests.
  2. Collectable Resources + Inventory: Players pick up basic resources like wood, iron ore, carbon, etc and store them in their Custom UI inventory.
  3. Crafting: Basic resources can be merged together by clicking and dragging to create more complex, powerful materials (ex: iron ore + carbon = steel). This feature entails game progression, giving satisfying rewards for each craft.
  4. Shop Gizmo: Not all players can work with every material. Bladesmith's don't have a clue about magical ingredients! Hence, the shop gizmo allows purchase and trade.
  5. PvP Beyblade Battle: A 1-2 minute core game loop in which players can fight against friends with beyblades they craft from their resources. Ultimately, the goal is to climb the leaderboards!

How I built it

I used 3D assets from SketchFab and used Blender to perform UV Unwrapping. Majority of the elements in the world are from tutorial worlds I used to self-learn, like the NPC guide. Furthermore, I used Camera API for the cinematic first-person POV during beyblade battle and Focused Interaction for crafting resources. I relying on persistent variables to store the inventory of each player and implemented Custom UI to enable interaction with it.

Challenges I ran into

Learning typescript was a major challenge due to frequent errors I made while coding for the first time in Meta Horizon. However, my experience with JavaScript helped me because I was able to have the essential debugging mentality to correct the mistakes.

Accomplishments that I'm proud of

  • Built an interactive inventory for mobile players
  • Created wearable attachable entities for players to showcase creativity
  • Made an extensible 1v1 battle lobby system that works smooth and efficiently

What I learned

I can take away the lesson that optimizing mobile worlds is an iterative process that requires a lot of trial and error. I originally underestimated the time it would take for making feasible controls for the battle, since it was the core gameplay loop.

What's next for Beyblade Arena RPG

Future plans to update Beyblade Arena are:

  • Add more social features/mini challenges apart from 1v1 battle
  • Increase collectable resource count from 12 to 30+, dividing game progression into more stages.
  • Include more vibrant environments using the GenAI features

Built With

Share this project:

Updates