LAN Trickery: An Interview with Scott Coleman and Jay Cotton, Creators of Kali – Part 2

With iDoom behind them, Jay Cotton and Scott Coleman gear up to write a more powerful networking program.

David Craddock: What was the distribution of work between you both on Kali?

Jay Cotton: Having never written more than schoolwork code in C, Scott was responsible for all of the coding. I provided ideas and had a better test environment at my office so I was able to help debug problems.

Scott Coleman: For iDOOM and iFrag [an expanded version of iDOOM that supported other first-person shooters, released in advance of Kali], I wrote the code, and Jay helped me test and offered suggestions. For Kali, he contributed some code, as well. He liked coding in assembly language, and we incorporated some of his assembly language routines into Kali.

I’ve never actually met Jay face-to-face. Jay worked at the University of Georgia, and I worked at the University of Illinois. Our entire collaboration was done via the Internet. Back in those days cable modems didn’t exist, and if you had Internet access at all is was via a dialup modem to a Unix shell account, or maybe via SLIP [Serial Line Internet/Interface Protocol] if you were a real power user. If it weren’t for the fact that we both worked at major universities with great Internet connectivity, none of this would have ever happened. We were in the right place at the right time.

games1

David Craddock: In my research, I came across a brief history of Kali that Jay wrote. He mentioned a project called MILK and said you both felt pressure to get your program done before MILK. What was MILK?

Scott Coleman: MILK was something similar to Kali that another group had announced they were working on. Jay may have felt pressure to be first, but I wasn’t really worried. I was pretty confident that Kali would blow away whatever anyone else came up with. I don’t recall if the MILK project ever actually released anything.

David Craddock: Where did the name “Kali” come from?

Scott Coleman: My girlfriend (now wife) suggested the name. She grew up in India and had been exposed to Hindu theology, which has dozens of gods and goddesses. The Kali avatar is usually depicted with swords in her hands and a necklace of skulls from those she has killed, which seemed appropriate for a Deathmatch game. Jay liked the name and we went with it.

David Craddock: What was Kali‘s development schedule like?

Scott Coleman: I had a full-time job, so I worked on Kali during the evenings and on weekends (in between Doom games, of course). Kali was straightforward to implement once I understood how an IPX network driver functions. Using a book called Programmer’s Guide to Netware by Charles Rose as a reference, along with a “spy” program to determine empirically which IPX functions were being used, I laid out the skeleton for Kali in a day or so.

Most of the rest of the development time was spend doing exhaustive testing with games like Descent and Duke Nukem 3D to make sure Kali would emulate the real IPX driver correctly.

Jay Cotton: Kali‘s development went on for several years, non-stop. Although we may have released the first version rather quickly, it was a rather simplistic solution and would require months of further work before it became a success outside of the original iFrag community. I probably spent 12 hours a day working on Kali (or “testing” Kali by playing games). I did this while still working a full-time job. This work-plus-play continued for years. My goal was always to get Kali working well enough to allow me to play more. Unfortunately, I was spending more time providing customer support than doing development or playing games.

Setting up an Internet connection was new for most of our players. We had to recommend ISPs and modems and provide support for every aspect of their Internet setup just to get them to the point where they could install and run Kali.

David Craddock: How did you decide to make Kali a commercial program rather than a freely distributed one like iDOOM and iFrag?

Jay Cotton: I’m pretty sure it was Scott’s suggestion to make money on Kali, but neither of us were sure it would actually work. I set up a P.O. Box, and with the help of my wife, set up a business, but before we even got started, Scott received a job offer and left me to it.

Scott Coleman: Commercialization was entirely Jay’s idea. He wanted to capitalize on the boom in Internet gaming that was just around the corner, and I agreed. Left to myself, I probably would have released Kali for free, just as I did with iFrag, but I figured what the heck, maybe it will earn me a few extra bucks.

starcraft1_1

David Craddock: I remember downloading Kali, playing through the time limit imposed by the demo, and then immediately shelling out the $20 for unlimited usage. How did you arrive at that particular model?

Jay Cotton: There were quite a few people balking at the idea of paying for something that had been free up until this time. However, a few iFrag users sent their money before we even released the first version of Kali stating that they felt they already owed us for the work we had done on iDOOM and iFrag. Setting the time limit would allow people to play short games for free, and hopefully they’d want to play more and be willing to pay.

Scott Coleman: Limiting the program in some way in order to encourage users to register was an established technique. Doom itself [included] only one set of levels in the shareware version; to get the other two, you had to pay the registration fee. We figured putting in a time limit would enable people to verify that the program would work for them before they forked over their cash, and the $20 fee seemed like a reasonable price.

David Craddock: Were you tempted to charge a subscription?

Jay Cotton: It was always my belief that Kali would continue to be successful as long as I never got greedy. I wanted everyone to be so happy with their purchase that they would never hesitate to recommend it to a friend and never charge more than what someone would be readily willing to pay. It also became a selling point that Kali only charged a one-time fee with free upgrades forever. People really liked this, and it prevented newcomers (TEN, Heat, MPlayer, etc.) from being able to charge enough to pay for their expensive overheads.

Kali was able to compete with TEN, MPlayer and Heat because it already had a large established user base (more users equals more fun) and because it was much, much cheaper. These new services wanted to charge a subscription fee, but didn’t provide enough added benefit to justify the added expense.

David Craddock: How exactly does Kali fool my computer into thinking it’s on a local network when I’m actually going online and gaming with people all over the world?

Jay Cotton: Kali was/is at its core, a local network emulator. Network-capable applications, like games, request access to the local network from the operating system (DOS or Windows in different manners). With Kali running, these requests are intercepted. For each request to send data, query the network, or receive data, Kali would provide a “fake” response so the games would continue to work, unaware that these requests were doing extra work to send and receive this data across the Internet.

Scott Coleman: Because Kali looks and behaves exactly the same as the real network driver, the application has no idea that the packets it is sending are actually being routed over the Internet instead of the LAN.

David Craddock: What features gave you the most trouble, either in writing the code or testing it?

Jay Cotton: Providing IPX emulation for DOS applications running in Windows required something called a VxD: a virtual device driver. The tools needed to write these drivers and the coordination needed to communicate between the driver and the main application necessitated the hiring of new talent. Brian Hayes came on board at this time and his contribution made Kali95 possible. At the time, I knew nothing of Windows and without the help of Brian and another employee, a long-time friend Vance Kessler, I wouldn’t have been able to create Kali95.

Scott Coleman: Probably the chat functions. Those took a while to polish and make user-friendly.

David Craddock: What was the process of adding support for new games to Kali? Was it just, “This game supports IPX, so let’s add it”? Or were you a bit choosier?

Jay Cotton: We weren’t choosy at all! If anyone reported a game worked on Kali, we added it to the list. However, we later had to remove some games from the list because they turned out not to work well enough. We did test many of the games, and many developers sent pre-releases of games to us to make sure we would be able to provide support.

starcraft battlenet1

David Craddock: I have to tell you, using Kali for the first time was like magic. I remember telling it to search my hard drive for compatible games and watching the list grow: Doom, Quake, Duke Nukem 3D, WarCraft II, Diablo, Rise of the Triad, Command & Conquer… Then jumping into a game and playing with other people. It blew my 14-year-old mind. Was using your technology as exciting for you? I know that sometimes the wizard behind the curtain is less awed by results since, of course, they know how all the moving parts click together.

Jay Cotton: I was just as excited! Features like you mention here, automatically finding games, were being added as fast as we could write them. There was so much potential, and without any road map to follow, we’d show up to work on any random day with new ideas and often have them out in beta before the end of the day!

Scott Coleman: The magic for me was twofold: While Kali and iFrag were primarily a means for me to find and frag other players, doing something really cool that nobody else had done before was extremely gratifying.

David Craddock: When I started playing PC games, it seemed like everyone I knew used Kali. How long did Kali take to become popular?

Scott Coleman: It was popular immediately. Most of the people who had been playing Doom with us on iFrag wanted to use Kali, as well. It snowballed from there as other gamers from outside the iFrag community heard about it.

Jay Cotton: Kali usage grew exponentially for the first 3 years. Because of the very low cost to operate Kali, it was making money after the first week of going live. In only a few months, I was able to quit my old job and started working on Kali full time. Within a year, we had thousands of users on Kali every day.

David Craddock: I didn’t start using the service until Kali95 and understand the DOS version was difficult to use at first. One thing I loved was the simplicity of Kali‘s user interface in Windows 95. How important was accessibility and UI as the service expanded?

Jay Cotton: Supporting the DOS version of Kali used up nearly all of my time. I would sometimes answer as many as a dozen emails, or spend an hour in chat helping individual users get their Internet connection setup and Kali working. The process was daunting, with different setups needed for every ISP [Internet Service Provider] and modem or Ethernet card.

Kali95 eliminated over half of the setup support needed simply because Windows 95 came with wizards and tools to help simplify the Internet connection. Windows 95 didn’t solve all of our problems, but more and more users were able to download Kali95 and get started without any technical knowledge, and this greatly increased the number of people willing and able to use Kali.

David Craddock: Blizzard included a file with WarCraft II that improved the game’s compatibility with Kali. Did you hear from Blizzard during War2’s development? Were they fans of Kali and your work?

Jay Cotton: I talked to a few Blizzard employees over the years and from them learned that many of the people working at Blizzard were huge fans of Kali. For a couple of years, WarCraft II was by far Kali‘s most popular game, and this was possible because of performance tweaks made by Blizzard to improve [the game’s networking performance] over Kali.

David Craddock: Blizzard’s Battle.net gave rise to free online services packaged in with games. How did you view the arrival of Battle.net and other free-to-play services?

Jay Cotton: Battle.net was inevitable and predictable and definitely the beginning of the end for Kali. There were a few other games to include Internet support before Battle.net, but Battle.net was different in that it was a closed world. You couldn’t join a Battle.net game from the outside (e.g. from Kali). This forced users to choose where to play. Eventually, when it became harder and slower to add support to new versions of Diablo and StarCraft, users eventually migrated to Battle.net. Although we supported many other games, the titles produced by Blizzard accounted for 80-90% of Kali usage.
David Craddock: Scott, what made you decide to leave Kali Inc.?

Scott Coleman: The popularity of iFrag and Kali caught the attention of the folks at Interplay Productions, the publisher of Descent, and they offered me a job in California. I was faced with a choice: accept the job offer from Interplay, or move to Georgia to continue working on Kali with Jay.

Working for an established company seemed like a safer bet at the time, so I handed Kali off to Jay and moved to California. But that’s another chapter…

David Craddock: Jay, what is your involvement with Kali today?

Jay Cotton: I pay for a virtual server (it moves from time to time) to run the Kali website, tracker, and now defunct master server. I make just enough money on website ads to pay for the server. Kali is now free to play. I keep it running just out of habit.

**


If you enjoy Episodic Content, please consider showing your support by becoming a patron or via a one-time donation through PayPal.

patreon_grey

paypal_donate_button

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s