15 January 2010

Pokemon Simulation and Me (and You) Pt. 5

Part 1
Part 2
Part 3
Part 4

It was January of 2009 when OPENPKMN really lived again. My undergrad career was drawing to a close. I had less work to do. I set up a server in my dorm and Ilya and I had our first match in the brave new world of OPENPKMN. It was both good and bad. Comprising the good was the fact that the server side portion this thing was pretty solid. A lot of stuff worked right off the bat, no testing. The stuff that didn't typically had a pretty obvious fix. The game mechanics were nearly solid. The process that allowed users to challenge each other needed some critical fixes, but nothing has baffling or awful. The bad was the fact that the interface had taken a step back because, really, I had no interest in sinking time into it. At one point, things were so slipshod that you'd make your Pokemon, then have to do an SQL query to look up their id numbers in the database and then give the server a list of id numbers to form them into a team. But really the bad was nearly completely cosmetic.

So after many battles with Ilya, I decided I had a real winner on my hands. Ladies and gentlemen: the only open source Pokemon simulator that supports the classic Red/Blue/Yellow/Stadium 1 Pokemon games. Please, hold your applause until the end. And please ignore the fact that it took the better part of a decade.

Now let's do a quick refresher on the state of Pokemon community. Smogon now had its own official Shoddy Battle server. Though Smogon no longer supported it or ran a server, NetBattle had undergone a bit of a revival. (It was now operating as NetBattle Supremacy which I guess would make this version of OPENPKMN OPENPKMN Supremacy. Not happening.) This seems like it had done bad things to the number of people who played anything but the most recent Pokemon games. The Smogon NetBattle server was huge. I don't think anything approaching it ever came to be in the NetBattle Supremacy days. Whereas the older games had a decent following in the NetBattle days, in these times battling Pokemon online was understood to be using Shoddy Battle.

So I though, why not spruce up OPENPKMN a little and get the word out. So I threw about a month of sprucing into it. And it was ok. It was not really intuitive or pretty, but with some documentation you could use it to have Pokemon battles that had a reasonable expectation of working. Now promotion was a harder thing for me. Would posting about it be considering unwanted advertising? Would I get banned, censured, or otherwise criticized? Nevertheless on February of 2009 I made a post on Smogon talking about it.

In retrospect, I did a horrible job. My post was a big oration: big huge paragraphs, no prominent link, nothing that would make it appealing to read. And then I basically up and left for two days after I posted it because I had to work non-stop to meet a deadline for an my capstone project.

The response was weird. It was definitely positive. I got kudos for perseverance and definite signs of interest. But people seemed to be treating it as though it was some theoretical thing, or an announcement of something to come. Meanwhile, though users seemed to have signed up, the server seemed as empty as ever. I naturally and probably rightly assumed that people were finding it to be a bitch to use, so I asked for feedback and offered any help that I could muster given my schedule. Requests for help here light. Still no battles. I asked Ilya to post about it on 4chan. And that got us some snarky responses and a guy who would without fail attempt to crash the server at around 5 AM (and for the first couple of days succeed), but still no battles

In late February, I thought I had my trump card. I had hunkered down and wrote a GUI. It was clunky and required Java 6, but it amped the usability way up. Or so one would thing. Instead, the thread fell quiet. I was too busy to care. The thread got sporadically bumped by interested users in the subsequent months, but each time I had to tell them that I didn't have the time to run a server.

Meanwhile, I presented OPENPKMN at a symposium for undergraduate computer science. I tried to spin it as a project that applied many of the components of an undergraduate computer science education. The reaction to it was fairly pretty subdued. I thought there would be more nostalgia for something like this. (At one point two girls seemed to be eying my poster from a distance with a combination of amusement and interest, but some middle aged dude would not stop asking me questions about it and they moved on. Fuck you man!)

So my semester finished and for a while I wanted nothing to do with programming. My capstone project burned me out. In the last two weeks of the term I pulled three all nighters. It wasn't healthy. But eventually I did come around. And thus, another summer session of OPENPKMN programming began. But I couldn't run a server at my folks' place. So I basically forgot about the old Smogon thread.

And then sure enough, grad school started. Development slowed, then stopped, as I realized the graduate algorithms class was a full time job. Ilya started running a server on his desktop, which he left on all day anyways. Then, in early November, out the blue the Smogon thread was revived. I told them about Ilya's new server, and gave a very basic sketch of how to connect. But I kept the post short this time! I was too busy for orations. The response I got was different his time around. There was the requisite interest. But there were two posts of real interest.

The first asked if it jut be easier to run a NetBattle server. My response to that was it would, but OPENPKMN was all nice and open source and didn't need Windows to run. The second was one that said I should check out the Shoddy Battle source and start contributing. It's worth noting two things about Shoddy Battle at this point. First is that Smogon and Shoddy Battle had formed a close affiliation. Second there was a big push underway to release Shoddy Battle 2, which would make it much easier to modify Shoddy in order to support any Pokemon game. I found the point to check out Shoddy Battle to be really interesting. After all, did the world really need two open source Pokemon simulators? Isn't he real fruit of open source collaborative software that turns out better than a fractured developers doing their own things? Still, the idea of leaving OPENPKMN saddened me quite a bit. In many ways, compared to Shoddy Battle, OPENPKMN was a turd, but it was my turd, and I liked how it smelled. So I wrote up how I felt, yes, I would check out Shoddy Battle, but in the mean time, why not play some OPENPKMN. Yes it was a new and different program, but it was the most accessible classic battler that existed. Why not give it a shot?

The topic went wildly off course. People got all excited about the possibility about RBY in Shoddy 2 rather than the actuality of RBY in OPENPKMN. I returned after finals were over to try clear the air. I got a bit more aggressive in soliciting feedback and pointing people to the documentation. I was free from algorithms and I wanted my turd to sprout wings.

Things got a little better. One day I battled with someone other than Ilya. It was totally awesome. I had harvested the first fruits of my labor. I sent the user a private message of how thankful I was, but never got a reply back. I probably creeped the poor kid out. And I did get feedback. But there was something really unsatisfying about it. People wanted chat in the client. I thought setting up an IRC channel as a well-known place to coordinate battles would suffice. But that school of though had died when NetBattle was released with integrated chat. I mean don't get me wrong, I got some good feedback too. But the amount of battles remained low. I got pretty discouraged. OPENPKMN, combined with its documentation was usable. The issue was critical mass. If people were signing onto OPENPKMN, seeing no one to battle with, and immediately signing off, nothing would ever happen. I decided I needed to get OPENPKMN out of its backwater subforum and into the spotlight.

I sent a private message to a Smogon administrator. I made it clear that I thought the future of simulation was Shoddy Battle 2, but suggested either I run a server under a Smogon subdomain or they host an official OPENPKMN server. This would drive people to OPENPKMN while giving Smogon an official RBY battling simulator that was under active development by a community member who was attuned to the needs of the community. The idea was politely shot down, due to concerns about OPENPKMN's maturity and the need of people to maintain the server, with more advice to contact the Shoddy Battle developers.

I was discouraged, but hardly surprised. I understood the argument, but I felt that in some ways I had been blown off. How would assigning a subdomain to an OPENPKMN server and putting some Smogon staff in another IRC channel really hurt them? Why was the community content to wait on something when an immediate solution could be patched in and then scrapped when it no longer had purpose.

I mean part of this is the mentality surrounding Smogon. This is not me shitting on Smogon, because it's a good site. The real goal behind Smogon is to be the best at what is does. And it generally succeeds. Many other competitive Pokemon sites start strong, but die out. Due to an incredible ability to delegate and transfer power and what seems to be an amazing content management system, the site has operated at a high level for a sustained period of time. And that's something. And maybe that sort of reputation can't be compromised by associating with an RBY simulator with some warts. I personally disagree, but it's not my site. One of the reasons why Smogon was slow to transition to Shoddy to begin with was holding out for Competitor to get done.

So I took things underground. I've stopped caring if the server is in some indeterminate, unplayable state. In some ways, it's more fun. I get to fuck around with things without answering to anyone. I've been tinkering with a much improved client over my winter break. Maybe if OPENPKMN had gotten popular I'd be too busy triaging bugs and focusing on day-to-day maintenance to rip the client to shreds and put it back together. But at the same time it's unsatisfying. What has my time investment been for? Something that no one uses?

So my opinion of what to do with OPENPKMN changes with the wind. Some days I want to contact the Shoddy Battle people and ask where it would be most helpful for me to contribute. Other days I feel like it would feel like pure work to learn someone else's code base. Some days I think another attempt to drum up interest on 4chan would be worthwhile. Other days it just seems like stupid self-promotion. I've thought about formulating some research questions and having 20 battles with the handful of people who would be willing and testing things. If in a battle a user has a critical hit rate/move hit rate/secondary chance hit rate/full paralysis rate/average battle damage random number that is higher than expected for the given moves and Pokemon in a battle, how strongly does that correlate with them winning? With OPENPKMN, this should be doable with several SQL queries. Maybe if I posted something like that on Smogon people would see the utility. But who knows if the right people would see it?

Even I have mixed feelings on OPENPKMN. I like it. I spend a lot of time on it. I learn neat things because of it. A colleague of mine thinks for most people it takes about 10 years to 'get the bad code out of them'. I totally see that when I look at the history of OPENPKMN.

But I hate it. It's an addiction. It's something that I go to when I should be trying new things. And 'new things' is a broad term. Maybe I could focus more heavily on my graduate research, maybe I would learn something really neat by working on Shoddy Battle. Maybe without OPENPKMN, I'd be able to get bored and be forced to do other things like actually get the motivation learn how to play my guitar or to be more sociable. But maybe I'd just sit around and vegetate, but who knows? OPENPKMN is a time suck, and I have such bad self control that I can't easily pull myself away. OPENPKMN does not make me interesting as a person but to very small group of people. It's not something that's easy to talk about to groups or new people. It's not exciting to most anyone. And it's a lot of who I am.

And, to me, there's some unsettling pseudo-psychology about what OPENPKMN really is. It's a sad attempt to be a hero to be a community of strangers where I see no other avenues of get established and fitting in. Couldn't the same thing be said about me offering to run the Marble Palace server? Social interaction on the internet is worse for me than normal in-person social interaction. When I know no one, I feel lost. I need to use others that I know better as a way to develop my personality to others. Either that or I need I need someone to sort of continually interact with me to establish a level of comfort. An internet message board does not have a notion of neighbors or roommates or classmates to force the latter. Yeah I have things to work on.

So what do I do? I'm not sure. Will this semester bombard me with enough work to make duality of my feelings on OPENPKMN moot? Do I make a clean break, keep trying, or what? Has the Pokemon community passed OPENPKMN by? Does it need that random big break? Is it just another Supertime Radio? At this point it's all unclear.

* Azure Heights still exists! The site is basically the same it was in late 2001, with the forum receiving the occasional post in the random discussion board. More amazingly still is that Azure's PBS is still up, still very much a living museum of early online Pokemon battling.
* There's still an old copy of Marble Palace living on. This one sprouted up when one of the administrators got broadband and could host it, but was made defunct with the purchase of real web hosting. Now it lives on frozen in time. I've recently seen an old MP admin lurking at Smogon, but he has not returned my messages. Hey fuck you, N-Man! (I kid, I kid, please get in touch with me if you see this!)
* I don't think anyone runs the gsbots anymore. But you can find a site about it in the internet archive.
* NetBattle has a community associated with it and a development site.
* Smogon is as alive as ever.
* Work on Shoddy Battle 2 seems to be progressing. I mean I could (as could anyone) easily check out the source and take a look.
* Last but not least, tell all your friends about OPENPKMN!

And that's my story.


  1. Italicized parentheticals!? What is this classy article? Did I somehow get redirected to The New Yorker and not notice?

    Anyway, I totally think you can get a good OPENPKMN userbase if you release this new client and have the game be stable and bug-free and feature-packed enough. You'd get more response from Smogon, but also I think that plugging it on 4chan is totally a viable route. People plug their personal projects on 4chan sometimes (not gonna say all the time; there aren't that many creative people on 4chan) and get a lot of good response if the project has something to offer them. I think your best argument against continuing work on Brokemon is the "it eats up my life with not enough reward" one, which is obviously something anyone doing a large project has to consider; given how much time you sometimes spend on schoolwork, research, and brokemon, maybe it makes sense to limit your workload by abandoning openpkmn. But if you do decide you have enough time, I totally think you can zap some life into this Frankenstein monster.

  2. Moreover, 4chan adores indie games as well as Pokemon, so I think that users would be willing to overlook OPENPKMN's faults and see it for the cool program it is. The issue, really, is aggressively advertising it.