Thursday, February 26, 2009

Finish

I once started reading the book Getting Things Done but I didn’t finish it. If you think the irony of that statement is lost on me then trust me, it’s not. Finishing things is a lifelong problem for me. I start things and get a great start on them but when they turn plodding and hard, it’s really tough for me to power through. Plus, there’s always some other neat new idea or technology to play with that I could make a lot of progress with quickly before it started to get difficult.

Then there’s just basic fears about success and failure that haunt me. What if I build something and it’s successful but not successful enough. I might build two or three games and have a lot of extra work to do supporting them but not be able to leave my current job. Or, what if I build it and nobody comes? With LOL.com that wasn’t a problem, we knew people would come simply because of the URL it sits on. But people might show up to a beta game, play for five minutes and then leave for good. In fact, I’m sure lots will. If you stop and think about stuff like that you can paralyze yourself enough that you never get anything done on that side project. Instead you go hit your favorite site again to see if anybody posted something new or watch a cool TV show you like, etc.

With all that said, here’s what I’ve learned over the years:

  • Build something you are truly interested in. Don’t build something just because there’s an empty niche somewhere and you realize you have the skills necessary to fill it. I have actually done that. I built a website because there wasn’t a site like it and I thought people would need it, then I realized I had zero interest in maintaining that site.
  • If you do care about it, never ever quit. You may think that some other site has you beat completely, but you may be able to just outlast them. The amateur ones are run by people who thought it would be cool, enjoy it for a while, and then don’t want anything to do with it again. It’s the online equivalent of buying a boat. The commercial ones are often created by people with no great love of the topic (see my point above) and they often seem to run out of money.
  • Know why you are doing something. Don’t do stuff just because you think it would be cool. I tried podcasting and it was a mistake. I was OK at it, god knows I’m as opinionated as hell, but I didn’t have any reason to do it. There wasn’t anything I was promoting or selling and there was no concentrated focus for the show. If I were to do it today there’s no question but that it would be a show about PBBGs and I could actually make some sense out of it by promoting them, reviewing them, and plugging the ones I work on. So maybe I’ll do it again some day, but before I do, I’ll know why I’m doing it.
  • Only work on one new project at a time. You can still keep blogging, you can still go back and make improvements to an existing project while you work on the new one. But don’t start another new project while you’re working on the current one. I think it’s OK to think about it and make some notes for your next project, but don’t let it side track you. And definitely don’t start building anything for it until you’ve reached a usable state for your current project.
  • Break it down, break it down. This is one thing I did learn from what I read in Getting Things Done. Often my to-do lists read like this: “Build Operation To Steal Secrets From An Opponent’s Lair”. OK, that’s something Big Villain needs alright but how long is that going to take? How big is it? It’s not really a to-do item at all, it’s really more of a project in itself and it needs to be broken down into a series of smaller to-do items that will each take an hour or less to accomplish. I actually shoot for smaller items that I think can be done in 15 minutes. Then I am more likely to do one “real quick” when I think about it. Often I find I’ve done two or three and without realizing it I’ve made some real progress.

Learn from the many mistakes I’ve made and you will actually get your projects to the finish line. I may be crawling along with Big Villain right now, but “slow and steady wins the race”.

Tuesday, February 24, 2009

ForumWarz Shows Off Their Conversation Editor

ForumWarz has done a follow up posting to their previous posting where they showed the admin tools they use with their game. In it, they do a screencast to show off the web based conversation editor they created (note: the example conversation, like much of ForumWarz, might not be work safe for you).

I thought it was pretty slick because it was capable of connecting different nodes together like Yahoo! Pipes.

Monday, February 16, 2009

Fun Flash Games

Most Flash games I've encountered are a fling rather than a long term relationship, but that doesn't mean they aren't fun. Here's three I've played recently and enjoyed:





Saturday, February 14, 2009

App Engine Is Going To Become A Better PBBG Host

I use Ruby on Rails for all my web development work. I think it's greatly preferable to the PHP in which so many games are developed but I don't think that Rails is the only good choice out there. Another excellent alternative is Python and Django, something which Google's App Engine supports. One of the problems with App Engine though has been that it lacked certain features that are very helpful for building a PBBG. Often you want to be able to run a task on a regular basis or handle background processing and getting that from App Engine required a lot of work arounds. The latest version of the roadmap for updates scheduled for App Engine in the first half of this year includes all of that and quite a bit more.
  • Service for storing and serving large files
  • Datastore import and export utility for large datasets
  • Billing: developers can pay for more resource usage
  • Support for a new runtime language
  • Support for scheduled tasks
  • Task queues for performing background processing
  • Incoming email support
  • XMPP API (that's the ability to send and receive instant messages via the XMPP/Jabber protocol)
Given that many people who want to start a PBBG have often not done a lot of web development work before, I think the idea that App Engine offers a hosted environment with a lower barrier to entry so they can write an application without worrying about how to configure servers and deploy software (or perhaps scale past a few hundred players) is a good thing. I'm not going there any time soon myself, but I like to always keep an eye on it. After all, maybe soon they'll be supporting Rails as a development platform too.

Upcoming Changes To Big Villain

Just recently I've fixed some problems with logging in or to be more accurate failing to login. But what I've got upcoming is code that checks to make sure a newly created player is correctly setup before letting him/her into the game proper. That will involve making the user choose how many secrets to keep in the game and which ones (some have higher VP values than others).

That brings up victory points in general. Obviously the real numbers are not even started yet, but the general idea is that scoring for a user will be done by giving out victory points for money on hand, number of clueless employed, number of minions, number of agents, vps for different lairs constructed, secrets of your own kept successfully until the end of the game, secrets of others revealed during the game, and evil schemes completed. Each of these will have a curved scale of some kind so you can't just sit and turn the crank in one category until the end of the game and expect to win. You've got to diversify and have some success in multiple areas in order to have a good score.

After I've got the setup completed then I'll be turning my attention to the operation that you run to find one of an opponent's lairs.

Friday, February 13, 2009

Good Article About Content Delivery Networks And PBBGs

There’s a good article on the use of a content delivery network(CDN) to speed up delivery of your static page elements (logos, JavaScript that doesn’t change, HTML that doesn’t change, etc.) over at Building Browsergames.

I use a CDN now for Big Villain but only in one small area of the game. Yahoo! makes available all their stylesheets (which I use) and their JavaScript YUI stuff on their own CDN and you are not just permitted but encouraged to pull your copies from their CDN. But until I read the article above it had never occurred to me to try using the Coral CDN which is generally available to spread out availability of your own page elements. I’ll have to try that and see what effect it has on the performance of my pages.

I do know that I can get the Prototype and Scriptaculous JavaScript libraries I’m using now from Google’s CDN but the one and only time I tried that it was unbelievably slow. I’ve been meaning to try it again though because I’m assuming that it must have just been a glitch.

Wednesday, February 11, 2009

ForumWarz Pulls Back The Curtain

You don't usually get to see the admin interfaces of the various web applications out there and that includes games too. But ForumWarz posted a new blog entry showing off all the different parts to their admin UI and describing a little bit of how they interact with the game. If you're into PBBG development then it's interesting, if for no other reason than their awesome conversation editor.

Saturday, February 7, 2009

Problem #3: Numbers, Complexity, and the Digging of Holes

The last of three big problems that I see PBBGs having to deal with is the problem of numbers and complexity. It's not that board games don't have to deal with lots of variables and complexity too, they do. The introduction of a lot of different elements is what keeps a game from being something easily analyzed and "solved" to the point where it's no longer fun to play. The problem is again one of scale.

Any board game designer has to deal with complexity by saying, "What can my players manage in their head with a few additional play aids I might give them?" Scoring, number of pieces, number of cards, size and complexity of the board are all constrained by what real people can really hold in their hands/calculate/see. But as soon as you get a computer involved the temptation is to throw out all of that. I don't have to have only four kinds of armor, I can have 40! I can have 150 different weapons, all with subtly different values for attack and defense. I can even have each one keep track of how sharp it is. It can get worn down over time...

But then that complexity comes home to roost when it's time to actually playtest that game. How do you adjust a game with four thousand variables without getting your own version of the butterfly effect. One little tweak here makes a huge difference over there, or perhaps even worse, a huge change here has almost no effect because of the unforseen influence of some other things you can't seen working in the background. The more complexity you put in, the richer your game seems. But at the same time you're digging your own grave deeper and deeper.

This is probably the most solvable of the three big problems; just scale back. But scale back to what? Unless you're willing to lock the number of players per game at a fairly small number, what are the effects of a small tweak when it may change things for hundreds or thousands of players? Is it going to completely upset the economy in your game?

Problem #2: Someone Comes To Town, Someone Leaves Town

In addition to being the title of a book by Cory Doctorow that I really enjoyed, this is how I describe a problem that I see as one of the worst ones a persistent online game may face. People come, try it, and then leave never to come back. Or they join it to stay but only a couple of days before it is scheduled to end or after all the empires are all built up and the game experience is completely different from players who started the game together.

Board game players don't face this problem nearly as much. Sure, people get called away for emergencies on occasion, but the social convention is that if you're coming to play that you'll stick with it until the end of the game. Board games tend to have fairly short lifespans compared to PBBGs though. With timeframes of weeks or months their games are much more likely to have people quit because of something coming up or losing interest. What happens to those players? Are they a zombie that sits there unresponsive while the player is gone? Do they become a computer controled character when the player is away? Do they fade away as though they never existed?

New players are more easily dealt with. They can be shunted off to a newly opened game in order to keep them from joining too late. Or, if you design an open-ended game then perhaps it won't matter when they join. Most MMORPGs are constrained to their world needing to exist in a kind of weird stasis. Yes you obliterated that dungeon full of bad guys yesterday. Today, it's all put back together so someone else can go do the same thing. You're living in WestWorld and Yul Brenner's gunslinger will be just fine as soon as we repair him.

Problem #1: Party Of Two Or Two Thousand

You know how board games always have something on the side of them that says, "For 2-5 players," or something like that to indicate how many people the game is sized for? It's partially a practical thing, they can't include enough cards or tokens or a board large enough for a group of 30, but it's also a factor in the game itself. It was never tested for 30 people, for that matter it may just not work very well when scaled to 30, 300, or 3000. There are PBBGs out there with 30,000 people on a single server, how do you even design a game like that?

I have no idea. Literally, no idea whether the game I'm working on now will be fun when I throw lots of people at it. It could suck. It will suck, the creator of BattleMaster virtually guarantees it, and you know what? He's probably right.

My current hope is that I've got a good idea for a game and I've taken the same path a lot of games take by giving every player basically the same starting conditions so they're left to their own devices in competing with other players. But is just starting with a level playing field enough? Is there a way other than playtesting and adjusting, playtesting and adjusting to have a better idea of how to make a game interesting when you don't even know how many people are going to play it?

One possibility I've considered is the idea of forcing division into groups upon the players. Creating a game and really balancing it well for say 25 and then as players join they automatically get assigned to a group until it hits the magic size and the game gets going in earnest. So a single server might be running hundreds of games at the same time rather than one game with thousands of players. Short of sites that let you play real board games online (e.g. http://gametableonline.com/) , I've not seen anything like this though and as with all these questions, I'm not very sure how well it would work short of building a complete game and testing it.

I know it does offer some possible advantages because you can actually have certain people fill certain roles. There will be only three people who can be doctors, two police officers, 12 zombies, etc. The roles are set and they play them out till the end of the game. Cooperative games are all the rage in the board game world right now and often they work on this very principal (e.g. Battlestar Galactica). I'm so-and-so and here's what I can do. I have in-game abilities that maybe nobody else in the game has and vice versa. You can even have traitors who are working against the group but nobody knows who they are or perhaps even if there are any.

But then, what do you do when one of them leaves? In my mind that's the next big problem with online games and I'll talk about it in my next post Someone Comes To Town, Someone Leaves Town.

Friday, February 6, 2009

PBBGs vs. MMORPGs vs. Board Games

Yeah, I said board games. Here's what I think about all of these things, how they are alike and how they are very very different.

Let's say you read this recent GigaOM posting about The Top 10 Money-Making MMOs of 2008 (you may have to see a brief ad before the article, if so you'll live). Looking at that list you should notice how all the top games are basically very similar in one respect, they're all about an avatar. Players create an in-game avatar that represents them and that persona exists in some virtual world somewhere. They move through it basically in real time, they interact with other people avatar to avatar, and they act on the virtual world and it acts on them. They are, as the RPG in MMORPG suggests, "role-playing games". Just like Dungeons and Dragons shares characteristics with Traveller, GURPS, and Champions, these games all seem kind of similar.

Which is great when that's what you want. But last time I checked, there's room on the candy isle for Almond Joy, Nerds, and Sugar Babies. I think not only can you be different, I think you have to be. While these games are raking in the cash, they're also investing it as well. How many people do you think worked on the last World of Warcraft expansion I wonder? How many people for 3D models, for textures, sound effects, music, voice work, marketing, etc.? Dozens? A hundred? More?

If you're like me, you don't have millions or even thousands to invest into building a game so PBBGs offer another possibility. You can build a game all by yourself or with a very small team that people can come play. And the best part of embracing the constraints that browser-based games have is that you can cleverly turn some of them into advantages.
  • No, you can't have a rich 3D world, but you can have a game where the player doesn't have to download some client just to play and Linux or Mac user's aren't excluded because you haven't gotten around to building a client for them yet.
  • Most of the top MMORPGs reward the players who are willing and able to work them like they are working a job. There are people clocking in 40 hours a week or more into the game of their choice. At the same time there are lots of people who would like to find a game they can play, but they can only afford a few minutes a day to do it and they don't like being made to feel like a stooge because they didn't put in enough hours this week. They're looking for something that doesn't require insane time commitments or $15/month in cost to play briefly every day. Many PBBGs specifically limit the player's playtime to 30 minutes or less per day via action points or ticks or some other mechanism. That acts as an equalizer and can be very appealing for someone who wants to play, but not live, in a game.
  • Lastly, and I think this is one of the most important differences is that you can explore gameplay types that none of the big boys are even considering. Before anybody is tackling a big new MMORPG they're surveying all the popular ones, they're seriously considering buying a franchise in a popular property like The Lord of the Rings, Warhammer, Conan, or Strawberry Shortcake. And with all the popular ones being a little virtual world around the player's avatar, none of them are about to stray far away from that box. But you can look into all new kinds of gameplay. The kinds we are seeing today with designer board games. What about auction mechanics? Cooperative gameplay? Players who are simultaneously playing the game on a strategic and tactical level? Card driven mechanics mixed with area control and tile laying? Go look at the variety in the hot games on BoardGameGeek right now. They're literally all over the place in terms of gameplay, on different scales with completely different game mechanics. PBBGs can do all of those very same things and they can do them on a scale that no cardboard and dice game could ever achieve because it's limited by the realities of real people around a real game have.
Open up your mind a little and think about how your game can be different from other PBBGs and very very different from the big MMORPGs. Now, with all that said, in an upcoming post I'll lay out what I think are the three big unsolved problems are that PBBGs have that board games don't have.

Thursday, February 5, 2009

CSS Frustrates Me So Much

I'm just not very good with CSS and as a result I get a bunch of CSS like the four files that come from Yahoo! and my own CSS formatting interacting and I just can't quite get it to work. Sigh. I know I'll work it out eventually but in the meantime it's very frustrating to not be able to get things to look the way I want them to look.

On the upside though, I did manage to remove all the YUI JavaScript files and the YUI tab control I was using and replace them with the LivePipe UI one. So fewer files sent in order to display the Big Villain control panel means less data sent for every user and faster page loading too.

The UI - Now With 82% Less Eye Bleeding!

My first attempt at a UI for Big Villain was notable only for how incredibly horrible it was. The act of simply looking at it was enough to cause you permanent eye damage. So, finally I've got a new version of the UI that is quite a bit less horrible. It's still not anything that's going to pull people in because of its attractiveness, but at least it will drive fewer away than before.

First up is the new splash page, complete with nifty zooming thumbnails of the UI that you can click on to preview it before you sign up for an account.

Big Villain Splash Page

Lastly we've got the new version of the control panel in the game. In addition to the better looking panels and background and a logo that no longer makes me wince every time I see it are the new icons on each operation. I wanted those in there for multiple reasons. One was that the UI desperately needed some color and variety. Another was that it was pointed out to me that when messages arrived, you often had no idea at the start of the game which of your actions caused them to occur. Now by tying the little icon on the message back to the operation it helps make that connection. I also was trying to give the idea of the elements on the periodic table of the elements with the boxed letters that symbolize each operation. After all, it's a game about mad scientists, it makes sense thematically. Hopefully in a later version I can make them more attractive, but for the moment these will do.

Big Villain Control Panel 3

P.S. You don't have to tell me about the godawful baby blue color in the back of all the tabs, it's about to go away. Although I love the YUI controls, I don't want to pay the extra download cost of having YUI and Prototype/Scriptaculous in the game and I also don't want to fight YUI to re-skin the control to colors that I like better than these. Instead I'm just going to drop all the YUI stuff except for their great CSS files (for which Prototype has no equivalent) and use a Prototype based tab control instead.