View Single Post
  #3  
Old 11-25-2013, 10:40 AM
Bullfrogz's Avatar
Bullfrogz Bullfrogz is offline
 

Join Date: Apr 2007
Location: PA
Bullfrogz has just set foot in the Tutorial Tower
Send a message via AIM to Bullfrogz Send a message via MSN to Bullfrogz
Default

Design Threads

Wyvern Content Uploads
Link

Quote:
Originally Posted by Rhialto
I've been thinking about the problem of wizard content. In Old Wyvern, wizards got ftp accounts and uploaded their maps etc. to the game server, where they sat in the same filesystem as the source and other data. I would occasionally check in their content to source control.
This scheme had a lot of problems. Security was a big issue -- it's hard to get ftp to be secure. Also the wizard content was in this weird state where they owned it, but it was living on my servers. So I need to come up with another scheme.
Currently I'm leaning towards content creators hosting their content on a public website, and the game will HTTP fetch it on demand. Each wizard can have their own website. You can get a free website with Google App Engine. So all I need to do is make a Wyvern SDK that includes the Map Editor and an uploader that packs up your content and sends it to your App Engine site.
When you upload new maps (or new versions of existing maps), the game server will pick them up some time later. At first, maybe just when the server reboots.
If you think about it, this is almost the way the web itself works, except the game engine is the "browser". I think it will scale nicely. Most wizards shouldn't actually notice a big difference in their workflow, compared to the old way.
Server Clusters
Link

Quote:
Originally Posted by Rhialto
In the Olden Days, Wyvern just had a single server. It could support around 100 players at once, give or take, depending on what people were doing.
In the cloud, we have the ability to run multiple servers. At first, I plan for all the servers to have the same content. That's the easiest way to scale to thousands of simultaneous players. Someday we might support different "server classes" (imagine a sci-fi only server, or a server with worlds designed specifically for large characters, or whatever). But for now, they all get the same maps, so it doesn't matter what server you go to.
We want to support players adventuring with friends. So ideally you should be able to specify which server to connect to, which means we'll need an addressing scheme.
The simplest way to do it would be to number them, but that's boring. Instead I'm thinking of giving them names. For instance you could generate a lot of names by combining monster names and colors. Red Orc, Purple Shoggoth, etc. You could browse a list of active servers on the website, along with how many players are on each one. If one server starts to get laggy, you can migrate your group to another server, probably with a new group command.
It will still be possible for wizards to run special events like weddings, treasure hunts, boss fights, whatever. But they'll only be able to do it on one server at a time, at least in V1. So each event will support up to the max number of players per server -- say, 50 to 150, depending on how beefy the underlying machine happens to be that day.
I think PvP arenas will have to be homed on their own servers. They eat up a lot of CPU, which lags the game for everyone else.
All of this should be reasonably straightforward using the tools Google provides for administering classes of servers.
Rule Changes and Automatic Administration
Link

Quote:
Originally Posted by Rhialto
I want to make the game administration more automatic -- Wizards should focus on content creation and fixing problems for players, rather than disciplinary tasks. I'm going to approach this in several ways.
First, we're going to start allowing a lot of stuff that used to be against the rules. You will be able to share information on quests -- there will be no such thing as "cheating" on a quest. It'll be like anything else in life: people who want to solve it themselves, will. Others can collaborate. Some quests will be difficult enough that even if you know exactly how to solve them, it will still be a challenge. Others may change the success criteria programmatically each time the quest is solved. And some will just be old-hat quests that are only surprising for ****ies. In any event, collaboration will be explicitly allowed.
Another rule change will be around alts. You will be able to have as many alts as you can have characters, and they will be allowed to help each other. I don't know exactly how I am going to map characters to accounts, but there will be some sort of real-world authentication required.
Google Accounts (i.e. your gmail) are a bit problematic because they disallow accounts for people below a certain age. It varies by country, but it ranges from 13 to 16 years old. (13 in the U.S.) So I may try to support logins with OpenID or maybe even Facebook, if they permit you to be younger. But for abuse reasons, we want to tie your Wyvern characters to real-world accounts. Your identity won't be discoverable by other players in-game, of course, but administrators may have access to your real name.
Another rule change is that it's going to be perfectly legal to exploit balance problems in the game. For instance, if you find an unbalanced weapon and start racking up XP with it, we're not going to punish you. Instead, we're going to have a bounty for players to report these things -- you'll get a reward for your honesty.
And I'm going to use Google's fancy computation infrastructure to do careful monitoring of all the game activity. If the servers notice that certain items, maps, monsters or abilities are generating loot/XP too fast, (or maps are killing people too fast), then they'll be disabled automatically and flagged for manual review.
Of course, there will still be behaviors that can result in disciplinary actions -- harassing people, exploiting security vulnerabilities, and various other breaches of good taste and good sense. But for the most part, I am going to try to eliminate the manual refereeing involved in ensuring rule adherence.
I am still considering whether to allow giving items directly to other players. I am leaning towards allowing it, but am willing to hear other opinions. I will be making some tweaks so that hopefully it's a little harder to acquire tons of loot (unless you play a lot). My hope is that most people will prefer to sell items (to the shops or each other), most of the time.
Scaling Up Chat
Link

Quote:
We need to think about how communication works in Cloud Wyvern.
In principle, it would be possible to have thousands of players all shouting to everyone, across servers, but in practice it would be awful.
I think we're going to want to revamp Wyvern to take a more IRC-like approach. And I don't think we should necessarily limit the channels to players who are actually playing. It'd be nice if you could hang out with people in-game just by visiting the website and maybe logging in.
It may be possible to bridge Wyvern to actual IRC clients, though I worry that the APIs might not be in place yet, so I can't promise anything. Another option is to abandon Wyvern in-game chat altogether, and just have people use IRC in parallel. Would love to hear your thoughts here. It just feels like there are better solutions out there than what Wyvern offers today.
One feature that Wyvern supports, though you may not have realized it, is camera-lurking. Any wizard can see what's happening on your screen as you're playing. This feature is also used for viewing arena battles in the crystal balls in the taverns.
We could potentially use this feature to set up a channel viewer that sends streaming video off to the website. Then, for any players who opt in to public viewing, you would be able to see what they see just by watching on the website. Could be cool... maybe?
I don't feel like I've really solved the problem of scaling up chat to thousands of players, so I'd love to hear your feedback and thoughts here.

Last edited by Bullfrogz : 11-25-2013 at 11:18 AM.