Looking for Help to Test the ROBLOX Data Persistence API

I’m looking for a small group (~10) of people to help test the upcoming ROBLOX DP API. When made public, this API will let place creators save and load data from lua scripts. We expect this feature to unlock exciting new game types on ROBLOX. However, scaling it up to support hundreds of thousands of players is going to be tough. We’re going get it right with a small number of places first, then release it to everyone.

I’m looking for super-talented to develop a set of public test levels that use the new API (and maybe try to break it).

Ideal candidates:

  • have built at least one popular (> 100,000 visits) ROBLOX level already.
  • are expert lua programmers
  • want to try out new stuff so badly, they don’t care if we’re constantly breaking it.

How to Apply:

Email telamon at stealing smoked salmon dot com, with the following information:

ROBLOX Username

Most popular game you’ve ever made (with a link)

A proposal for a test game that uses DP in an interesting or novel way.

The subject of your email should start with “DP: …” so that I can separate them out from all the other mail I get. Only 10 or so people will be selected for the first round, so don’t feel bad if you don’t make it.

Idea Time With Telamon

IMAG0217

We have monthly troupes of kid visitors at ROBLOX HQ (more than monthly in the summer), and when they come I always like to gather user feedback in the form of a game.

“Let’s pretend that you are Builderman and you run ROBLOX. You’ve got a limited number of programmers. What features do you want to add to the game?”

I played this game with some users yesterday – the above picture is the resulting whiteboard.

Everyone throws ideas up on to the whiteboard for about 15-20 minutes. Then everyone gets three votes. There’s a lot of debate between users stumping for their favorites. The top 3-4 ideas go into my mental catalog of things that we should really get around to doing at some point or another.

Usually winning ideas are things we know we need – but sometimes something that we thought was less important bubbles to the top unexpectedly.

In this particular case a terrain-building tool was the surprise winner. I was chatting with some members of the engineering team today about we could render expansive, editable, block-like terrain. If it’s been done in Java, we could certainly do something reasonably fast in C++.

Designing the ROBLOX Trading System

A lot of the backend work to support player to player item trading on ROBLOX is done. We’re trying to settle on a good front-end user interface. The feature we are trying to support is allowing Player 1 to trade items A, B, and C to Player 2 for items E and F – basically trade one “basket” of items for another “basket”. There are lots of usability considerations. Which of the following designs seems most useful to you?

Option A – “Real Time Face-to-Face Trading”

This is the trading system that almost all MMOs have used since the dawn of time (above screenshot is from Diablo II). Basically a trade works like this:

  1. Send a trade request to a specific player, who must currently be online.
  2. Player accepts trade request
  3. Both players are brought to a trade screen. It’s basically a table. You drag stuff from your inventory on to your side of the table. The person you are trading with does the same.
  4. Once the trade is acceptable to both parties, they click “Ok” a couple of times and the trade is completed.

Pros:

  • Once you find someone to trade with, the trade happens pretty quickly
  • Easy to understand
  • The personal touch is fun. You can wheel and deal. Offers and counter offers are fast.

Cons:

  • You can only trade with players who are online
  • You have to find someone “good” to trade with – they have to want what you have and have what you want. If you are looking for rare items, this can be very difficult.

Option B – “Bulletin Board Trading Post”

image

In this system, players post offers that they would be willing to do to a giant list of currently offered trades. People browsing the current offers can click to accept the offer at any time.

The screenshot is of Google Jan 11 Call Options on Yahoo Finance; maybe not the best example.

Basically, if I am interested in trading away my Domino Crown, I might post several trades:

  • Domino Crown for Eerie Pumpkin Head
  • Domino Crown for Crimson Catseye and Sparkletime Fedora
  • Domino Crown and Got Milk Visor for Red Domino Crown and Sparkletime Fedora and Helm of the Secret Fire

These would go into a giant list of all the trades everyone on the site is willing to do. If someone has offered the opposite trade, like “Eerie Pumpkin Head for Domino Crown”, then the trade happens immediately. Most often, though, the trade will go into a giant list. People can search through that list based on either what they are looking for or what they have to trade. At any time, a person can accept one of the offers and the trade happens instantly. If you want to wheel and deal, you do so ahead of time via private messages or on the forums.

Pros:

  • You can trade with people who aren’t online. Other people can trade with you when you are not online. This means more potential trading partners.
  • Easy to find people offering rare items.
  • Common trades (between like-valued objects) can be executed instantly, since you don’t even need to talk to another person.
  • Offers are public, so everyone has a good idea of what different items are worth.

Cons:

  • Complicated trades involving many items are hard to find matches for. Ex: A, B, C, D, and F for X, Y, Z, and Q.
  • All trades are public – you don’t specify who on the other end you trade with.
  • Harder to wheel and deal

Option C – “Send Specific Offers Through Private Messages”

image

This is a lot like Option B except that there is no giant list of all trades. Everyone posts their want and have lists to a forum and you can send people trade offers via private message. They can either accept, in which case the trade happens immediately, or decline, in which case the trade obviously doesn’t happen. Perhaps there is capability to send a counteroffer or modification to the proposed trade if it is declined.

The screenshot above is from the Magic Online Trading League, which is an example of this sort of system in action.

Pros:

  • You can trade with people who aren’t online.
  • You can trade with specific people.
  • Pretty simple to understand.
  • Wheeling and dealing happens in a public forum, so it’s probably harder to get ripped off because someone will tell you a trade is bad.

Cons:

  • Takes a lot of “leg work” to find a good trading partner.
  • Trading can be slow – by the time you hunt down someone who has the item you want, they may have traded it away already. It might take you 1-3 days to find out he doesn’t even have what you want any more.
  • Have/Want lists posted to a forum doesn’t seem like a very advanced system. Forums were not built with the idea of trading in mind, and Option C makes a forum “the spot” where all the trading action happens. A dedicated interface would offer better affordances.

Option D – “Real Time Auction House Best Offer”

There is a special “Auction House” page on ROBLOX.com. There’s a chatroom with a ton of people in it. There is one trade going on at a time. This is how it works:

  1. If you want to sell something, you wait in line, since only one person can be selling at a time.
  2. When it is your turn, you put together a “basket” of items.
  3. Everyone else in the chatroom gets a chance to construct an offer “basket” – things they will give you for your collection.
  4. As the seller, you pick which offer is currently winning. This is the “best deal” you have been offered for your set of items.
  5. Everyone else has the chance to top the best offer.
  6. After 2-5 minutes of this, the auction ends. The current “best offer” wins and the buyer and seller exchange baskets.
  7. A new auction starts.

Pros:

  • A real time auction would be exciting for rare items or expensive sets of items.
  • The buyer gets the best possible deal anyone present is willing to offer. So it’s hard to get ripped off.
  • The results of the auction are public, so everyone has a good idea of what different items are worth.
  • This is a super easy way to unload 50 worthless items at the same time and get back something good in return.

Cons:

  • A real time auction would be boring for common items or cheap sets of items.
  • You can only trade with people who are: 1) online and 2) present in the auction house. This probably makes it harder to get the best possible price for a rare item that may not have many potential buyers.
  • When you want to trade, you want to trade. You don’t want to stand in line to sell items.
  • If there aren’t enough buyers logged into the auction house, the whole system stops working.

Vote on which trading system you think would be the most fun to use.

Telamon Mailbag–Admin Shirts and Sellable Badges

It’s not really your fault that they broke, just that everyone is using a _huge_ hack (using the torso.roblox object, which is obviously a legacy thing, I’m sure you’ve had it described in detail already) in order to check for admin shirts. That obviously needs to change, since you don’t want to support that huge hack forever. There’s a fairly simple solution to that, which is probably already _almost_ supported, just a flag that needs to be switched.

Make Badges sellable, so that people can have "admin badges" without needing an intermediary shirt, good solution because:

-It’s actually a supported feature, and there’s a proper service to query the badges.

-People don’t need to wear admin shirts anymore.

Problems with the solution:

-You can’t make a place-wide "admin badge" for all your places. This could be fixed by letting a person’s map query badges from any of their places (I don’t see why you can’t do this right now?).

Just a solution I though you might find useful.

-xLEGOx


Yeah we actually thought about doing this at the time.

We also thought about letting users sell “tickets” to their place that were exactly like badges except they could only be bought, not earned. Thus, there is a more “official” distinction between badges and tickets. “tickets” is an over-used term – maybe we would call them “passes”.

The assumption is that at some point it would be helpful to know which badges you have that you earned and which you bought. “Passes” might also have extra params on them that don’t apply to badges, like an expiration date or a pass “level” (normal, VIP, admin).

Interesting experiment – what if passes could be resellable? Good for the original place creator (advertising) or bad (either scalping or price competition)

– John

Have Yourself an eXtreme Chrizzmax

IMG_4007

Our tree, Red Erikson. Note the non-traditional tree-topper.

P1000454

I’m upset because the presents are too big. And also, the ribbon is painted on.

P1000516

I suck at ice skating.

P1000519

But blurry photography makes it look like I’m going really fast.

P1000538

ROBLOX Christmas party. It was in the basement of a nice Italian restaurant. One guy was sick and after spending five hours in the basement together, half the office ended up spending the next week working from home. I’m looking at you, Matt.

P1000543

Q: Which of these guys is the life of this party?

P1000535

Unfortunately, I had to have someone whacked. Nothing personal, just business.

IMG_4008

The fedora looks better on everyone else. I think my head is too big for it.