06 January 2010

Pokemon Simulation and Me (and You) Pt. 3

Part 1
Part 2

While my interest in OPENPKMN was at an all time high, my interest in the Pokemon community was at an all time low. My first semester, I don't think I went to any Pokemon site once. I didn't think I did my second semester either, but some OPENPKMN code from the era contains a Smogon link, so I definitely swung by at some point. In any case, I largely tuned out from that scene and lost contact with the people from Marble Palace that I knew the best.

It turns out, I missed something really huge. Remember NetBattle, which had the word "cesspool" associated with its user base? Well, few things remain downtrodden forever. By some combination of the development of a competent NetBattle user base, people from the IRC battling bots migrating to NetBattle, and the seeming constant power struggles that the bots seemed plagued with, a large, mixed community had settled in at Smogon which had transitioned from laid-back shit-shooting to attempting to become the preeminent competitive Pokemon battle site for English speakers (and shed its Nazi Koffings in the process). Or so I surmise. Remember I wasn't there at the time. (Unfortunately, another thing that I missed was basically the golden age of non-English-speaking people trying to speak English in the NetBattle chat, with hilarious results. If you've ever heard me reference "chariots of barn" or "the mother of chaos's mother making sex with three mans oh no" this era was responsible for these.)

Meanwhile, how was I doing? It was becoming readily apparent by the end of the semester that OPENPKMN was a mess. Certain classes of moves never seemed to work right (trapping moves were particularly notorious, leading to "Fix Wrap!" becoming a constant rejoinder to basically any OPENPKMN bug). Attempting to fix something would almost certainly cause something else to break. OPENPKMN was dirty. It was designed to be efficient in both code and data. A lot of variables got reused in certain battling conditions that seemed similar, but it turns out were quite different. There was a lot of fruitless hacking. Furthermore, the system was not partitioned into logical chunks at all. Code that did low level reads from the disk were interspersed with code that created the user interface. This was anathema to any sort of organized system design.

Then, to some extent, I found religion. I got a summer internship at a very small company that made a networking stack for embedded systems. They had this big massive C codebase, that (obviously) dwarfed OPENPKMN, yet it seemed perfectly maintainable. My boss told me I had to split my lines of code at 80 characters. I was most likely responsible for the company sending out a mass email with the programming style conventions of the company. I saw a lot of clean code. By the end of the summer, I realized that something needed to happen with OPENPKMN.

But by then I had no time. The semester was in full swing and my life essentially became my operating systems class. And actually that may have been a good thing. It gave some time for the ideas I picked up from my job to really sink in and marinate in my mind. It gave me the opportunity to play with sockets a little. Meanwhile, though, I had been going on Pokemon sites a little bit more frequently. My crazy freshman life had died down some, and to some extent the internet reentered my life. One day during the first semester of my sophomore year the founder of Smogon (who is known as chaos, and who you may remember from the former parenthetical remark regarding the promiscuity of his grandmother) made a topic seeking out programmers for the sites battling simulator project, Competitor. I couldn't commit to it, but I did provide a link to my existing code in hopes that it could be of some use (and with a warning about it's current state). Competitor never came to be (more on that later), and I sincerely none of that OPENPKMN code was responsible for that. I hope they saw it for what it is was, because it was that bad.


1 comment:

  1. Unfortunately, another thing that I missed was basically the golden age of non-English-speaking people trying to speak English in the NetBattle chat, with hilarious results.

    I miss those times, I really do. So young and naive, and yet so fun... the Pokémon fandom just hasn't been the same since DP.