Author Archives: Micah
API Update: mage-hand, a Ruby wrapper for the API, plus an offer for developers
Progress on the API is moving so much faster than I originally anticipated. I’ve been working on it night and day, trying to get to a point where clients can actually do something useful with it. But, I’m not the only one who’s been busy!
mage-hand, Rubygem for the API
Ruby hacker shammond42 (@shammond42 on Twitter) has already created a Rubygem wrapper for the API, making it much simpler to interface with from your Ruby or Rails application. For any other Ruby hackers out there, take a look at mage-hand and make sure to follow it on github. Or, if you’re not a Ruby hacker but prefer PHP, .NET, or something else, you might like the next part:
Looking for API beta partners
Progress on the API has been much faster than I expected. After a week’s worth of work, we have a fully functioning OAuth provider and a few JSON response API methods ready to go. Before we go too far, though, I’d like to get some feedback on the basic OAuth workflow.
OAuth is a standard workflow for managing third-party applications that want to access resources on behalf of a user. Facebook, Twitter, LinkedIn, Netflix, and a whole slew of other websites have started using OAuth for exactly what we’re trying to do here on Obsidian Portal. Considering that there is a lot of library support (PHP, Ruby, Flash, .NET, etc) for OAuth, it seems like a good way to go.
Unfortunately, OAuth is significantly more complicated than other, simpler authentication methods. It requires a special procedure to authenticate the user, plus each API request must be signed with a special algorithm. What we’d like is some initial feedback on whether it’s accessible enough and works for the developer community.
If you’re interested in taking the totally unstable, soon-to-change alpha version of the API out for a spin, check out the overview page, then create an application. Giv the OAuth signup workflow a shot, and let me know what you think in the forum thread.
So what’s in it for you? Well, I’m giving priority to feature requests from people actively playing with the API. If there’s something you want to do, and data you need, then start playing around and tell me what’s missing. If I can add it easily, I will. Of course, everything is likely to change a bit in the coming weeks, but we have to start somewhere.
The Items tab – Keep an eye on it
As many of you have no doubt noticed, we have introduced an Items tab on each campaign. This has been a long requested item, and I thought I’d explain why it’s taken so long, and where it’s going.
When I originally architected Obsidian Portal, I imagined that people would be storing and sharing characters, items, spells, locations, and all kinds of RPG-related data. I tried to create the ultimate generic data model that would hold all these things, and characters and items were the first implementations of that.
After using it for a while, I’ve come to realize that characters and items are fundamentally different in how they are used and even if they are used. For example, characters are a core component of every RPG. Items are a component of some, but not others. There are many systems that specifically try to avoid the “We loot the bodies” mentality that pervades D&D. Having played some of these games now, I can see why an Items list isn’t exactly necessary, like a characters tab is.
On the flip side, for games where looting is a central aspect, a raw list of items isn’t much help. Instead, you need something more like a spreadsheet, where you can easily track the items along with their quantity, perhaps the assessed value, plus a bag for currency. In many ways, it needs to resemble a computer RPG inventory screen much more than a raw list of items.
Unfortunately, we don’t have the time right now to give the Items tab the attention it needs, so we have to put it out as-is. We wanted to modify the top navigation to remove the Items and Characters links (which are pretty useless now that we have search), and that would have pretty much orphaned Items forever. So, that’s where we are today.
But! We’ve got plans for the Items tab to make it closer to what it needs to be. As I said, imagine an inventory screen or basic spreadsheet and you’ve got a pretty good idea. We’re not sure when we’ll get a chance to work on it, but it’s on our list.
Search Reloaded
Ryan made some awesome updates to search over the past couple weeks, and they finally went out last night. I thought I’d give a quick rundown, although the best thing to do is try it out for yourself.

More context
The formatting for the results is much nicer now, with more text for the wiki pages and adventure log posts. Before, a search hit just showed the name of the page and a link to it. As a bonus, the contextual text displayed is text where the search term was found.
Keyword highlighting
The search term you are looking for is automatically highlighted where found. This makes it much easier to quickly scan through the results.
Type filtering
By default, a search will return all kinds of results: characters, wiki pages, adventure log posts, and more. But, if you know exactly where you want to look, you can filter to restrict it to only the type of data you are looking for.
Go Ascendant for campaign-specific search
Remember, if you’re Ascendant, all your campaigns will have campaign-specific search enabled. This is much handier than using the sitewide search, since you can restrict the search to only your campaign’s content. It’s extremely handy, trust me! If you want to enable this awesome feature, tell your GM to Ascend Today!
Creating an API – First Steps
Over our lifetime, we’ve gotten a handful of requests for an API. In every case, our answer was, “We really want to do this, but just don’t have the time right now.” Well, we’re tired of that answer, and have decided to make some time. We’re super-excited about the idea of third-party developers making cool integrations with Obsidian Portal, and we can’t wait to see what cool stuff you all come up with.
Getting Started
Obsidian Portal is a fairly complex system now, with lots of heterogeneous data. Users, campaigns, wiki pages, adventure log posts, characters, items, maps, images, and surely some other stuff I’m forgetting. It would take forever to build API hooks for all of that data, so we’re going to take some baby steps first. The first phase will (probably) be read-only that exposes a fraction of our data for consumption by third party apps. This is where we need your help: What do you want?
There’s no point in us making an API unless some of you are writing apps to consume our data. We’ve got a few people we’re already talking to, but we want to include as much feedback as possible. If you’re interested, please let us know what you’re thinking.
Basically, I need answers to the following questions:
- What are you planning to do?
- What data do you need from Obsidian Portal?
If you have ideas, come to the forum and discuss it in the API thread.
Keep it serious
Before anyone starts throwing out ideas and requests, I’d like to make it clear that we plan to focus on actual developers and actual applications. I don’t want to get dragged into theoretical “It’d be cool if…” brainstorming. There are a lot of possibilities here, and I want the initial push to be in the direction of something concrete, even if it’s not earth-shattering.
Timeline
Our motto is “Under promise, Over deliver” and I intend to hold to that here. I’m not going to give a definitive timeline, and instead say that hopefully we will have something stable by the end of 2010, or early 2011.
Thoughts on the new DDI Character Builder
Since everyone else is pontificating about the new web-only character builder, I thought I’d jump in and give my totally unqualified opinion. I don’t even have a DDI subscription, mainly because I’m on a Mac. But, I do know a little about running a tabletop gaming web application, so I’ll weigh in from that perspective.







Obsidian Portal is the award winning Online Campaign Management System for tabletop role-playing games. It’s free to use, it can be accessed from any web browser and it's built from the ground up for gamers by gamers.
We host a huge community of tabletop RPG players who are all looking to get the most out of their tabletop gaming experience. You play your campaign and we help you manage it. It’s that simple.