Comments (2)stroke the inner geek

Just for fun, how geeky are you? I’m 45.75937% - Super Geek. d(^_^)

Hell, I should get extra points for that Database post I just wrote yesterday. Database design, programming, AND roleplaying systems, all in one. *flex* ;)

Comments (1)Fun with databases

I know I’ve mentioned a couple of times this RoR project that I’ve been toying with for a while. The most interesting thing for me so far has been that I’ve had to learn a lot about database structure and modeling before I’ve even gotten to the Rails part.

It’s amazing how much abstraction our brains are capable of that we don’t even realize until we sit down and try to represent a “simple” concept for a computer database. What I’ve been working with for this project has been a way to store the Disciplines and talents from the Earthdawn system in a database - the eventual product being an app that serves as a management tool of sorts, allowing for simple editing, display, and adding new talents or Disciplines into the system. It’s possible that somewhere down the line this could be a community thing, but for now, I’m mostly interested in it for my own use. From my days of playing Earthdawn, I always felt that the Discipline system was fairly simple. Hah. Then I tried to figure out how to represent a Discipline as a row in a table, and all hell broke loose.

For those of you who are unfamiliar with Earthdawn, let me see if I can summarize how the Discipline system works. Basically, a Discipline is a “class” that a character in the RPG may take that defines what role it plays in the party. This might include the warrior or wizard, familiar roles we all know and love (*cough*) from AD&D or WoW. Each Discipline consists of at most 15 circles, though many may have as few as 8 or 12. These circles represent levels of advancement and talent availability. The first circle gives the Adept (or follower of the Discipline) access to a specific 6 talents (differing by Discipline, of course), which he must learn in order for the magical nature of the Discipline to take hold. After some adventuring, he may then advance to second circle. From third to eighth circles, he gains access to 2 talents. At ninth circle (if the Discipline has one), he again gains access to 3 talents. And from 10th through 15th circles, 2 talents become available at each circle. From a database perspective, this is no simple object; a Discipline has available to it anywhere from 21 to 36 unique talents, each only available at a specific circle.

And that’s not all. Starting at 4th circle, each Discipline also gains at least 1 “circle ability” (though often more are available in the upper circles). These abilities may be simple bonuses to physical or spell defense, or they may be full unique abilities in their own right, much like a talent ability in WoW (Mortal strike or Improved Sap, for example). The tricky part is that the simple bonuses to defenses can and often are repeated at various circles.

Ah, and lets not forget the talents themselves. Each talent is based upon a specific attribute (perception or initiative, for example), though there are a few exceptions which have no base attribute. Each talent also must be specified as either an action (taking your entire combat turn) or not, requiring karma, and have an associated amount of strain taken to use the talent. In addition, some talents are considered “discipline” when used by a member of certain Disciplines, representing the fact that some Disciplines have a closer tie to specific talents than others; for example, a warrior or swordmaster is far more familiar with the nature of Melee weapons than a wizard or elementalist.

Having written the above, is it not impossible to conclude that the Discipline system is fairly complex? It’s funny how adaptable the human mind is. At any rate, I think I’ve finally figured out how to represent the data in a database. Essentially, we have three objects: talents, Disciplines, and circle abilities. Talents and Disciplines are related to each other in that each talent may belong to any number of Disciplines, and each Discipline has many talents; this relationship also makes relevant the circle at which a talent is available for a specific Discipline and whether or not that talent is “discipline” for that Discipline (I’m sorry, I know the wording is confusing). Additionally, circle abilities and Disciplines are related similarly, in that each circle ability may belong to many Disciplines (often more than once in the same one) and each Discipline has many circle abilities. To prevent ambiguity, we also need to know the circle(s) at which an ability is available to a specific Discipline.

In database terms, this leaves me with 5 tables: talents, disciplines, circle_abilities, and the two “join” tables to facilitate the “has and belongs to many” relationships: disciplines_talents and circle_abilities_disciplines. Rails is apparently going to make things a little sticky, because it doesn’t like join tables to have any extra information; it wants each row in disciplines_talents to contain a talent and a Discipline, for example, but I need to have each row containing the circle and a field indicating whether or not that combination is “discipline” as well. I think there may be a way around the problem, but I guess we’ll see.

Anyway, if anyone’s actually still reading, I just wanted to try and put what I’ve done into words. The whole thing has turned out to be much more complicated than I had originally thought, and I haven’t even gotten to the Rails part, but I’m proud that I’ve figured out this much on my own, with very little knowledge of databases at all. If any of you actually know much about databases and want to correct my logic, please feel free; I’m fairly certain that I’ve got things settled right, but I have to concede that I’ve probably missed something. ;)

Comments (2)Danger, Will Robinson!

I’m currently contemplating a suicidal attempt to upgrade my Wordpress install to the newly released version 2.0. No, this isn’t some bizarre desire to have 2.0 in my blogname. Actually, I’m not entirely sure why I should do this just yet - hence the contemplation. Part of me just wants to play with the shiny, but that’s a pretty sad reason to attempt an upgrade as fraught with problems as this one sounds like it will be. Anyway, if Babel disappears off the face of the earth temporarily, fear not, for I have backups and I’m not afraid to use them! v(^o^)

Comments (4)A new makeover

As you have most likely noticed, I’ve changed the design around here again. I’ve been poking around with various layouts and color schemes for quite a while, but I couldn’t ever settle on something that felt right. Oddly enough, I started this one yesterday and liked it so much that I actually got it mostly finished. I think I’ve marked out the things that still aren’t working, so you can’t get to those (searching, for example), but if you happen upon something that looks a little off, please feel free to let me know. As per usual, the design looks pretty hideous in IE (though it does seem to be functional, at least), but I’ll be ironing out the wrinkles there before too long, hopefully.

I really wanted something different. I like my old design well enough, I guess, but it’s been up for so long that it was really starting to wear thin for me. I’m starting to clean that one up to make available, on the odd chance anyone else likes it enough to use it. I’ve seen a number of neato themes out there (Brenden is using one in his redesign), but I just couldn’t seem to get into anything. I’m not sure why, but something in me rebels at the thought of using someone else’s theme. It’s unfortunate, but I guess it’s ultimately good for the learning process. I’m hardly an expert designer/coder/whatever, but I think I have learned a lot.

The new design (which I’m calling Vespers) lacks the swanky plastic finish and pretty drop shadows that are so trendy right now (largely because I lack the graphic design capabilities to create those), and there are no rounded corners to be found here. However, it comes very close to validating (the errors all seem to relate to the Feed Digest script that I’m using to display my latest del.icio.us links), and I hope it’s easily readable. Please tell me what you like/hate/don’t get about the design, so I can improve.

The layout is somewhat similar to what I’ve been using here, so that shouldn’t be too confusing. The navigation is actually down at the bottom - inspired by an article about utilizing the space “below the fold” a little more. Since I’m only displaying a single long post on the front page, hopefully the navigation won’t be too hard to find. I’m curious to see what people think about the less-bloglike layout, so let me know!

One of the things I’ve been somewhat struggling with is that I really wanted to give my short posts enough screen space, because I tend to post those more often than long ones. However, when I do that, I almost inevitably have to shift the navigation down to the bottom, or go for a wider, three-column layout. Now, I’m not overly fond of super-wide layouts, because I usually have my browser sized a little bigger than 800×600, so I elected to go for the extra stuff at the bottom approach. Anyway, it’s hardly anything innovative, but I think I like it pretty well.

Best of all, it’s purple, and how can you go wrong with that? ;)

Comments (0)Rails is official: version 1.0

Looks like Rails may be here to stay. It’s really just the 1.0 beta, since that’s the Web 2.0 stereotype, of course. ;)

Comments (4)Weird IE quirk

I having a weird problem with a newish design I’m working on. There’s a box near the bottom of the page with a pair of lists floated in opposite directions that will not render right in IE. Only half of the surrounding div’s background/border are rendering and it moves strangely as you scroll. I don’t even know what to call this kind of bug(?), so I’m not sure where to look for a solution. Anyone have any possible solutions or seen something like this before or anything? It doesn’t appear to quite match anything I’ve seen on Position is Everything. *boggle*

Comments (0)What Is Web 2.0?

I just read an interesting article talking about the evolution of the internet into what a lot of people call “Web 2.0″. Lot of interesting bits of information, though the emphasis on software that learns and collective intelligence makes me think, “is this how true AI is going to come about?” Maybe that’s Google’s plan to take over the world; think about it, an AI with immediate access to the biggest database of information in the world and the algorithms that run it. The article compares the web’s growth to the growth of a human’s psyche net several times - how long, then, til the net’s psyche becomes self-aware?

Comments (0)Vampire the Masquerade: Bloodlines

I’ve been playing this awesome game the past few days, after a recent turn in our roleplaying got me re-interested in the whole vampire mythos. After previously (like 6 months ago) getting stuck somewhere in the second “chapter”, I managed to start a new character (Tremere, this time) and blow through most of the game in a weekend. I haven’t finished the end game yet, because FIRE ARCHERS suck *cough*, but it’s been fun. I wish the game had expanded on the non-combative elements a bit, though. In the beginning, you think that you can talk your way through any situation, because those possibilities actually exist. However, once you hit Downtown, you suddenly start hitting many situations where there are no creative ways to use persuasion. Why, I have to ask, why does a Toreador have to fight or sneak through a museum, when she could just as easily lie and convince the guard that she’s the local scientist’s assistant? But no, there’s no option for that; the bloody guards shoot first and ask questions never.

The game has so much potential, but it just got kind of.. washed out. I don’t like FPS games. Bloodlines at least has a decent (and appropriately convoluted) story, and I have to say that the “twist” near the end has been amusing (though not entirely unexpected, mind you). The controls are a little wonky, the graphics are glitchy, and the game runs like it needed to go through another beta test. Despite all that, it’s fun. That kind of story strength is pretty rare in the PC game market these days. It brings to mind the fun that could be had from Planescape: Torment, except PT was longer, less glitchy, and usually let you play your character archtype instead of forcing everyone into a fighter/sneaker. I guess I need to just break down and buy Jade Empire, since it seems to be in a similar vein. Where are all the games with great story? I can forgive a lot of gameplay issues, if the story is good enough, but the best gameplay and graphics in the world can’t save a game with a shoddy plot.

Anyway, I’m just rambling now; forgive the incoherence, please. (@_@)

Comments (0)My Buddy List is Sacred

I agree with Bryan Veloso’s assessment of the new AIM Buddy Bot situation. Minus the “coming to Virginia” part, since I’m already here. >.<

Comments (0)Penny Arcade goes Ruby

Looks like even gamer comic Penny Arcade is jumping on the Ruby craze. Gabe talks a little about it in his post “Seven Years”. *boggle*

 

recent entries & archives

del.icio.us

  • the rest