Designing Around Technical Constraints : With Example

As it is the case for anything related to making games, there’s always going to be constraints for a designer to work around. These can be anything ranging from technical constraints, art constraints or time constraints. As a designer, it is our job to find creative and effective workarounds for these constraints because not doing so means your dream game/feature, staying a dream!

I’d like to recall a similar situation that I went through while designing a feature for a base building PvP game that I used to work on. This feature was supposed to be my most ambitious feature ever. A server vs boss battle mode, where the entire player base from a server would join forces to fight a boss.

Reason for this feature: This game was a PvP base building game, with 5 inbuilt factions that the players could choose from. Faction vs Faction PvP and Clan vs Clan PvP were part of regular activities in this game. However in the wake of dwindling DAU, the appeal of these regular activities started coming down. And the remaining players were looking for a new thrill.

So in an effort to give the remaining players a feeling of camaraderie that would go beyond faction, the idea of a server vs boss feature was conceived. It was one of the most, if not the most ambitious feature planned for the game and I was beyond excited to bring it to life.

The Constraint: As it is with any online based PvP game, the servers are going to be your primary cause of concern. And for such an old game with limited server capabilities, a synchronous mass player feature was a major cause of concern. The simultaneous hits to the boss by different players within short time intervals was going to corrupt the data like the boss health, player attack status etc.

 

Problem
The Problem

This was a major problem because the success of the entire feature depended on the entirety of the player base joining forces to fight a common enemy. What could be a workaround that let us keep the spirit of the idea there yet still bypass the server load issue?

The Workaround: After spending what seemed like an eternity of searching for feasible solutions, I finally was able to come up with a solution for our nagging problem, stacking attacks.

In a typical world vs boss battle in MMORPG’s, all players hit a boss simultaneously and collect a common loot from the boss after it’s defeated. Since that system was not going to work here, my proposed solution was to have all player armies ‘stacked’ or stored in a building, and then the army would attack the boss 1 player at a time in the order at which they were stacked. This way, the server would need to handle only 1 player attacking the boss at a time, and the boss data will be easy to track.

Soluchan
The Solution

Note: This solution was feasible because the core battle system had turn-based mechanics. Which was another reason why this solution was considered to be effective. The problem being knowing how to sort attacks incoming to the boss  in a way that didn’t corrupt any data.

There were several other tiny niggles that also had to be sorted out for this solution, but ultimately it did let us build a functioning feature.

A synchronous battle system would have been an epic experience where anyone could attack at anytime, but since that could not be done, we had to settle for a less epic, but still equally functional workaround.

Sometimes there might be a situation where you, as a designer will have to make a choice between changing something that changes the essence of what you planned or not having it done at all, and it is almost always better to have a good feature rolled out than an amazing feature that could never have worked!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s