Much of my time as a young adult was spent on two things, Subspace, and programming. I was fantastically accomplished at the former, barely capable of the latter. The reason was that Computer Science did not teach programming, it taught math. I understood recursion in Lisp, but could not write a real program in C++. I could design a binary adder, but could not figure out Windows dialog boxes.
In 2001 I decided college wasn't going to directly lead to career success, so I started writing my own game as a learning experience. That led to a job with nFusion interactive. I was hired to add multiplayer to their single player engine. I initially used a 3rd party network engine, but dropped it once I found out their reliable packetized data was using TCP. In two weeks I replaced it with my own engine, and in 2002 we shipped the well-received Deadly Dozen: Pacific Theater.
Though it had been a year since I was a student, I was still frustrated about the hard time I had with DirectX and various game engines. Why should it take hundreds of lines of code just to initialize a black screen? What is vertex order and why should I care about that, when I just want to show a tank on the screen? Why are there so many pointers to structures, when one could just pass the arguments? I felt that some middleware libraries were so hard to use that for the features I wanted, it was faster to write my own system than figure out theirs. With these lessons in my mind, and permission from my then-boss Jason Zisk, I wrote the first version of RakNet.
RakNet 1.0 was $2,000 for a site-license for the PC only. The only real feature it had was reliable UDP, with a maximum of 30 datagrams per second. But what made it stand out was the documentation and ease of use. The principle I followed was that the purpose of a middleware library is to save the developer time:1. The user should not have to manage bookkeeping that the engine can do automatically.
In order to capture the Indy market, I made a restricted version of RakNet free under the GPL. The community added Linux and later Mac support and provided fixes and feature suggestions. With outside help, RakNet became bigger than what I could program myself.
During these early years, especially before RakNet became a business, I was consistently enthusiastic and diligent. I would check the forum as often as once an hour. There were never any known bugs with any release, and any reasonable feature request would be implemented right away, sometimes even the same day. While RakNet did not yet get traction with major game companies, among indy developers RakNet was so far beyond any other network middleware there was no reason to use anything else.
Around 2008, I started treating RakNet as a business rather than a hobby. In late 2009, the then CEO of Scaleform, Brendan Iribe, took an hour out of his busy schedule to give me helpful advice and motivation on how to enter the tools and middleware programs on the PS3 and XBOX 360. I also spent about $10,000 to rent the smallest booth at the GDC in 2010. I spoke myself hoarse, literally sat inside Microsoft's booth until I could ambush the XBOX 360 account manager, and left the show successful. With RakNet soon supporting the PS3 and XBOX 360 and lots of new contacts, 10 times the market should open up to me right?
I hired a programmer and ordered four expensive development kits. But while I did well site-licensing to game engines, sales to major studios only increased by about 25%. Lots of new games displayed other middleware on their splash screens, but not RakNet. Why was this? I'm just a programmer. I don't like cold-calling. My past experiences with advertising had been negative. Maybe I needed marketing help?
I was introduced to a marketing team who did a great job of talking themselves up. They did their research and thought RakNet had great potential. With their help cold-calls would become leads and leads would turn into sales. They would come up with a complete marketing campaign all for a monthly fee that paled in comparison to the revenue they would bring in. I put them on the payroll, sent ten leads I had over the past 6 months, and over the following three months I got exactly... nothing. Literally nothing happened. Well except me mailing checks.
As a student of How to Win Friends & Influence People I always thought if I would just talk and motivate differently I could get different results. We renegotiated the contract to a large commission and dropped the monthly fee. Over the next year the marketing team processed emails I got to firstname.lastname@example.org, but that was the only consistent work done. I kept getting told that it impossible to tell if an incoming sale was due to their own efforts or something I would have already got anyway. While technically true, the fact is sales did not increase. Even when I had major news, such as the first MMO (Lego Universe) launching with RakNet, I couldn't even get a press release out through them and a month later had to pay a separate company to do it myself. When I read my old emails on the subject, I get embarrassed at how direct and angry my tone was. And that was after I spent an hour rewriting that email to be less angry.
When Gamespy stopped licensing in 2013 I thought the lack of competition would give my business a boost. I wrote MasterServer2 and Lobby3 to sell as a substitute to Gamespy's matchmaking service. But during development I switched from Google App Engine to Terracotta's BigMemory, which in hindsight I should not have done. Hosting my own server led to 3 AM phone calls due to random Apache shutdowns and lost customer data due to a misunderstanding of how cache expiration works. Ultimately it did not matter, Steam already offers a similar service for free. I only got a few leads from ex-Gamespy developers.
While the next four years of sales were sustainable, I did supplement my revenue through contracting. Also, a significant portion of my revenue was one-time site licenses. I began to realize that fundamentally, my lack of sales increase is because networking is a problem that has been largely solved. Even though RakNet may be much better than what other studios have developed, what they have is "good enough" and they own and understand it. As games get bigger and more expensive, especially on consoles, they get developed by larger studios, who already have their own engines that are "good enough".
My late-wife died January 24, 2014 of liver cancer. In April that year I sold the PC IP to Oculus so I could focus on my job there. Between these two things I kind of lost interest in RakNet. While I still get some inquiries, as of as of March 13, 2015 I've decided to stop licensing so I can focus on changing the world through VR.
Thanks to the RakNet forum members, licencees, and partners at Microsoft and Sony for the great adventure RakNet has been.