Archived Design Notes

AQ3D's Interactive Objects

Posted by Artix on

"OMG... Do not pull that lever!"

Building good quests for a massively multiplayer game requires a lot more than just "Slay X of this type of monster." You want to go on quests where you need to pull a legendary sword from a stone. But the stone is actually the hand of a giant sized rock character who gets up and, while holding you in his other hand, talks to you about proper sword care and cleaning. You want to dive into trap filled dungeons with trap doors, riddle asking doors, secret walls... and fans of Castlevania 2 will naturally want to find a white orb thingy and randomly kneel down by the side of a cliff for a lengthy period of time until a whirlwhild magiclaly appears causing something AMAZING to happen. (OK, that last reference was pretty obscure.) To do this, we need to fill our world with interactive objects. Well named because they are objects that you can... um... interact with. In today's AdventureQuest 3D design notes we are going to talk about what Zhoom is coding. If you crave the secrets of game design, raise your finger and strike the "read more" button with great power.

What in the world is an "Interactive Object?"

Treasure chests, talking trees, levers, doors, non-player characters (NPCs), hidden buttons, pickable flowers -- in the world we are building for AdventureQuest 3D, anything you can click on, step on, or changes is called an interactive object. These objects are smart. They have the power to do, quite literally, anything. For example, we can make a lever, and if you pull it, it gives you one million gold. Or, we can make a button that catches your character on fire and permanently deletes your character eyebrows.

But the use of these interactive objects go far beyond being simple buttons. In fact, ANYTHING can be an interactive object. Even a dog. Perhaps the first time you see the dog, it snarls with anger at you. But then you go on a quest and save the dogs master. Now, the next time you see the dog (an interactive object) it is smiling, and wagging it's tail happily at you. Or, perhaps the dog is leashed by a mean and cruel master. You find a key and use it on the dog's leash. He runs off. The next time you come back, the dog is no longer there. This is a pretty basic example of how an interactive object can make the world a more real, living, breathing place.

I personally, like the idea of an entire castle being an interactive object. Well, maybe it would best be described as a bunch of internactive objects. Use a catapult and fire giant stones at the castle and see the walls get knocked down. Eventually, enough of the wall will be destroyed that you can walk inside the walls. The sky is the limit... literally. We can make the sky an interactive object and you can cast spells or do things that changes the sky.

"Server Side" Interactive Objects

Hackers everywhere are going "YES!!!! OMG let me take control of the interactive objects and destroy everything in the game! Mwahahahahahahahahahahaha" --  hackers have the awesomest evil laughs. Sadly, hackers will not be able to do this in AQ3D. Here is why:

All of the Interactive Objects live on the server. They cannot be modified by players. All you can do it "interact with it" or in other words.. use it. Everything the object does (opening a door, starting a fire, causing the sky to change) happens on the server and is then broadcasted to all of the other players in the game. It is amazingly simple and safe.

Coding this will probably take Zhoom the next two weeks. I asked if we could slip soundFX and a little bit of the new interface in while he was doing that and he said yes.

"Client Side" or "Only for you" Interactive Objects

If you are still reading, then you are really into game design. So, you might enjoy this. Not everything in the game needs to be bolted down and protected from hackers. Some things, are harmless, and should only be seen by character who triggers it. For example, an animated cutscene. You click a button, and your window fills up with an animated cutscene. It is pretty simple. It is also the perfect example of a client side interactive object.

There are so many uses for this it is mind boggling. So, here is one example: Remember the dog scenario from above? What if that was a quest that literally everyone could do? Well, it would be weird if you and 5 other people were all doing the exact same quest but someone already freed the dog. I mean, the first person who freed the dog would ruin the fun for everone else... because the dog would be gone for everyone. Right? Here is how you solve that issue. We make the dog one of these "Only for you" Interative Objects. So, if you are starting the quest, you would see the dog snarling at you. However, your buddy, who is further along in the quest and freed the dog already, sees nothing but an unchained leash. That is right. You are both looking at the same spot, but seeing different things depending on your quest progress.

It is a pretty crazy solution tha tneeds to be used with a lot of care. It would work in this scenario, because the dog is just a visual representation of your quest progress. For this to work, there could never be a time where both you and another player needed to see the dog, or interact with the dog together. If you did, then we should use other option, the server side interactive object, so all players see the same thing.

This is not anything new, we first starting using this game development trick nearly 10 years ago in the original AdventureQuest. When we started building our 2D MMO, AdventureQuest Worlds we found that there were a lot of times it made sense to do this. The best being the 1st Un-Live Event with Voltaire on Friday the 13th. We had over 30,000 players on that ship and Voltaire said something slightly different to you depending on your quest progress. (It REALLY made sense in that circumstance)

Another good use of this, is if you a quest to find 10 missing weapon fragments that are hidden all over the forest. If you walk around the map, you will see glowing weapon fragments that you can pick up. If another player walks around the map, they may see the weapon fragments, but because they are not on the quest, the fragments are not glowing and they are not allowed to pick them up. In this case, it is also being used as a visual indicator of what is going on.

Putting it all together 1+1 = 3

By using these two different types of Interactive Objects together, we can build a huge and ever changing world. We can make several towns full of non-player characters. Each character can have a motivation and visual look based on what you have done for (or to) them. The combined actions of players can cause the towns to have major things happen to them.... buildings get destroyed, major characters leave town and turn into villains... maybe entire towns get run over by monsters forcing the towns people out of the town. Meanwhile, at the King's Castle, the quests that are given depend on the status of all of these smaller towns. If the Kingdom becomes heavily weakened, it causes enemy invaders to seige the castle opening up entire new storylines. Honestly, the only limit is our combined imaginations.

Meanwhile... SoundFx

Zhoom said basic interactive objects will take about 2 weeks. So, he is going to squeeze in SoundFX while Minimal works on skills and character classes. I would like to have a SoundFX test later this week if possible. Check back tomorrow.