Friday, February 22, 2013

hero_init: Closing the gap between tabletop and CRPGs.

My projects haven't always worked out so well, especially where gaming is concerned. That said, I do think there's some real opportunities to improve upon what we think of as tabletop gaming by bringing ideas and tools from computer-based RPGs to the, well, table. Others have done an excellent job of challenging the idea of what it means to have a map, and of bringing tabletop mentalities into the realm of web-based gaming, but there's a lot of areas yet to be explored. In particular, what does it mean for gaming when every player brings to the table a tiny device with a huge screen that is constantly connected to everything around it (that is, a smartphone)?

Enter hero_init. This latest project is an attempt to answer this in a bit less ambitious of a fashion than Project Umbra (though I would like to get back to that at some point). At first blush, hero_init seems to be a straightforward scriptable initiative tracking tool for HERO System 6th Edition, but there's a bit more to it than that.
The DM's view of hero_init, but not the complete story.
While there's a lot of utility to offering DMs nice tools to manage combats in an orderly fashion, that's hardly too innovative. Where hero_init starts to flesh out my ideas, however, is in that little status display at the top, tauntingly reading out "Server Status: Offline." Type in the command "server start", and the GUI changes to show a link that the DM can give to players that will provide them with extended information about the combat.
The hero_init DM console after enabling the server.
That's right, hero_init embeds a primitive webserver. This server tells players when it's their turn, how much health and endurance they have left and when their next turn will be.
Seems like it's Alice's turn!
Incremental as this might be, I think that there's some real potential to this small proof of concept. By reducing the amount that DMs and players have to think about managing rules and communicating statistics, the focus of the game can change to more interesting things, like story-building, role-playing, world exploration, tactics and even lighthearted banter. Less bookkeeping means more freedom to explore the game itself.

More dramatically, when computing is brought to the table, new kinds of rulesets become feasible that were previously not reasonable. Here, for instance, powers that allow combatants to slow and speed up other combatants by manipulating time become more tractable, offering more creative choices to DMs and players alike. With more sophistication, hero_init could allow for still more creative play by freeing DMs from having to track the myriad kinds of damages and statuses that would normally result from the inclusion of strange and esoteric powers.

Once we've asked how computers can help augment the games we already play, the next question naturally poses itself: how can computers help us make new kinds of rules and game structures altogether? Take, for instance, that a hallmark of the modern J-RPG is to play around with initiative systems. Final Fantasy is famous for its Active Time Battle system (and its many variants) that allows characters to be differentiated based on not just strength, dexterity and magical prowess, but also on raw speed. What Final Fantasy X player hasn't just shined with delight as they cast Hastega, throwing the entire party into double-time? While tabletop systems like HERO allow for this to some extent, they still lack the sheer expressiveness of Grandia II's rich initiative system, which allowed for players to specialize party members in different combat actions such that some characters could nearly instantly use items while others could cast spells as quickly as the animations would allow. Why not, then, take the next step and design a tabletop RPG that draws more heavily from the rich history of C-RPGs while still putting all of the world-deciding power in the hands of humans?

In this way, I see hero_init as asking a question of the gaming community. That question has as many exciting and wonderful answers as there are talented storytellers ready to play.

By the way, I should mention that hero_init is open source (AGPLv3), portable (written in Python, depending only on PySide and Qt4) and oh-so-forkable (GitHub for the win). Please feel free to play around  with it. The code's a bit of a mess, it being a proof of principle so far, but I would love to see what people can do with it!

A return and reorientation.

It's been a long while, and a lot has happened since I last tried my hand at blogging. The time has come for me to return to it, though, albeit with a few changes. While I do plan on still ranting occasionally, I would like to take the opportunity afforded to me by returning from a long hiatus to reconsider what this blog is about. In particular, I would like to take some more space to talk about the personal projects that occupy my spare time these days. By doing so, I would like to present more of what excites and motivates me, rather than focusing on talking solely about the problems that society faces. That is, I'd like to show the web a bit more of a complete view of me and what I do than I used to.

These changes notwithstanding, I plan on leaving all of my old posts intact; my words are there, however misguided they might be in retrospect. Moreover, I still plan on airing my rants on occasion. Rather, I intend to make sure that such ranting is not to the exclusion of all else.

To start things off, I will soon be posting about a new gaming project (yes, another one). Thanks for hanging in there!