How and why we changed skilling in our browser game

…so we changed skilling in our Browser Game

 

 

Big changes are coming to the core skilling system in our MMORPG. In Mirage Online Classic, our long-standing 2D browser game, three of the earliest skills — Prospecting (Mining), Fishing, and Lumberjacking — are being reworked to create a deeper, more rewarding experience for players. When the game first launched in the late 2010s, our proprietary engine and admin interface were still in their early stages. To move quickly, we built these systems using our in-game scripting tools instead of fully integrating them into the engine’s UI. Looking back, was that the right call? Maybe not, but it allowed the browser MMO to grow rapidly and gather a strong community. Now, we’re taking the time to modernize these skills and give players a smoother, more immersive system. Let’s break down how the “old way” was originally set up.

 

 

One of the unique strengths of our browser game is the custom scripting engine that powers every interaction. This system uses hundreds of functions and events to define how the world behaves. For example, events can trigger when a player picks up an item, buys from a shop, or gets attacked by another player. A typical event might look like: attackplayer(player_id, target_id, map_id, damage, stat, passive, color). Within this event, the code tracks who the attacker is, who was attacked, what map the battle happens on, how much damage is dealt, the type of attack (melee, ranged, or magic), whether it bypasses cooldowns, and even the color of the combat text. Functions, on the other hand, are used to reference or change data — like checking a monster’s npc_id, calculating a player’s max health, or determining if a character can be attacked. This deep scripting flexibility is what makes Mirage Online Classic stand out as a dynamic 2D browser MMO.

 

 

 

Our browser game features a powerful map editor with two main views: design and attribute mode. Design mode handles the visual layout of what players see while exploring the world. Attribute mode, on the other hand, defines how players interact with each tile. Attributes can range from standard block tiles that prevent movement to unique tiles, like a slide tile that makes characters glide across the map as if on ice. For skilling, we use a resource tile that connects directly to the resource UI, allowing us to customize how players gather from it. Early in development, we chose to move quickly by using scripting to call functions like gather_# (with # representing the resource type) rather than fully integrating this logic into the engine. While this helped speed up development, it also meant we weren’t using the engine as originally designed — a choice that has led us to today’s round of improvements for Mirage Online Classic, our long-running 2D browser MMO.

 

 

Recently, we set out to simplify our browser game and make skilling more flexible for both players and our development team. One of the biggest goals was to allow team members without scripting access to create impactful content. To achieve this, several engine updates were required. First, multiple gathering items had to be supported — previously, this was only possible through scripting, but Consty updated the engine to make it a built-in feature. Next, the entire world had to be re-attributed, and finally, we revamped how item drops work within skilling, which required extensive testing.

What does this mean for players of our 2D browser MMO? Zones can now feature unique drops without long reworks of complex scripts. This opens the door for exciting events like fishing contests on Sundays or special mining challenges. There are a few trade-offs — certain items that only mined rocks or only caught specific fish are no longer part of the system. But overall, we believe this change creates a cleaner, more consistent skilling experience that benefits the entire community.

Scroll to Top