About this project
Kickstarter is Over, Life is Not!
As this Kickstarter project is coming to conclusion, I still have a chance to say a few last words on this page. First of all, I want to say THANK YOU (with a UDP packet on top)!! to all our backers who have helped this project to happen.
Second, if you missed this project but still want to get the book, there are two options available. You can use "Pre-Order" button above (well, it should appear as soon as the project is over). Or, as an alternative, you can wait for a Kickstarter for Vol.2 of the book; we certainly plan it, and we certainly plan to have "Vol.1+Vol.2" option there (though we do not provide any formal guarantees). For this second alternative option, you will probably get Kickstarter-specific discounts, but you will need to wait for the second project to start and complete before you get anything. If you don't to wait - make sure to PRE-ORDER :-), and if you want to get notified about Vol.2 - subscribe to our mailing list on ithare.com.
"By far the most comprehensive book on specifics of multiplayer games" - Dmitri Dain, Managing Director @Amaya Software
"Finally!" - Boris Taratine, Cyber Security Programme Chief Architect @Lloyds Bank Group
"Looking forward to read the book when it is finished" - Nuno Leiria, Core Tech Programmer @Lionhead Studios
"Looking forward to read the final book. The promise is great. Finally a book on the subject that isn't outdated or vague." - Özkan Can, Backend Technical Director @Blue Byte, A Ubisoft Studio
"The colossal book you are writing... looks very promising and exciting" - Alessandro Alinone, Co-Founder and Co-CEO @Lightstreamer
"The really useful and highly practical book. This book will be a valuable addition to the library of anyone game developer." Michael Morgovsky, Co-Founder and CTO @Plarium
"This is one book I would like to write" - Robert Zubek, GDC speaker, formerly Principal Software Engineer @Zynga, currently Founder @SomaSim
"This is the most comprehensive reference for a developer making a multiplayer game that I have even seen. After 20 years in the AAA industry, this project is teaching me new things. Even if it was just half as ambitious as it is, it would be a must-have."- Matt Pritchard, AAA Industry veteran, developer of RTS games, FPS, Mobile F2P, and IoT devices, author and expert on multiplayer cheating.
What's the Big Idea?
The idea behind this book is to summarize the body of knowledge that already exists on multiplayer games but is not available in one single place. And quite a few of the issues discussed within this series (planned as three volumes 400+ pages each), while known in the industry, have not been published at all (except for maybe in discussion forums).
Programming and deploying an MOG is a daunting task, and having a frame of reference is usually quite helpful — "hey, those guys have already tried this, and it worked for them."
By the end of Vol. 1, we'll complete our discussion of the things related to architecting your MOG, and will be ready to start discussing "Development" (Vol. 2) and "Deployment" (Vol. 3). For more details on what's within the book, see the tentative Table of Contents (it also includes links to all the beta chapters from Vol. 1).
This current project is only about Vol. 1, "Architecture," but Vol. 2 and Vol. 3 are already planned (and obviously my enthusiasm about them will get an additional boost when Vol. 1 is successfully funded ;-)).
I really hate to speak about myself, but this is one of those cases where I don't have much choice. So, here it goes (and if you really want further details, you can dig them out of my LinkedIn page).
20 years ago (damn, I am getting old) I was a co-architect for an electronic stock exchange of a G20 country, and for all practical intents and purposes stock exchanges are just another game genre. The project was fun and, among other things, allowed for real-time trading over the cellphones of that time (those with 9600 baud connection).
A few years later, I became a chief software architect working for a start-up that quickly grew into a rather large online game with half a million simultaneous players that processed half a billion user transactions per day. The project taught me a damn lot about such different issues as scalability, DB physical layout, server farms, attackers and cheaters of all kinds, and bot fighting — just to name a few.
Since then, I have consulted and performed due diligence on several game-related projects. In addition, I've spent quite some time researching the field and discussing related problems and their respective solutions with people from the industry.
I feel that this puts me in quite a unique position of knowing not only one single game, but a bunch of them, and being able to summarize and generalize my real-world experiences. Oh, and I have been writing for industry journals (and am especially proud of articles in CUJ and C++ Report) since 1998, so the process of typing sentences is not something new for me either.
Since When Are Rabbits Programming??
I cannot speak for all of rabbitkind, but this particular hare has gone alongside my writings for quite a while now. He was born as "No MT Bugs" Hare in 2010, in an Overload article titled "Single-Threading: Back to the Future?"
Therefore, there is evidence that this particular rabbit has been programming at least since 2010. Yes, he has changed his appearance, but deep inside, he is still the very same bunny with a naïve idea of making programs less buggy. BTW, the character is created by Sergey Gordeev, a guy with many animation awards, known (among other things) for being a director of some of the Animated Mr. Bean series.
Who Is this Book For?
The book is intended for those intermediary developers who want to become senior ones, and for senior developers and up. I expect that the book will also be useful for decision-makers, from PMs all the way up to CEOs — so if you by any chance know one, please make sure to give her a link to this page ;-).
On the other hand, if you are working on your first programming project, this book will probably be too difficult for you. There will be no explanation on what event-driven programming is all about, what the difference is between optimistic locking and pessimistic locking, why you need a source control system, and so on. Instead, there will be discussions on how the concept of futures fits into event-driven programming, when the use of optimistic locking make sense for games, and how to use source control in the presence of unmergeable files.
In the same spirit, the book is not intended to be a CD to copy-paste your sample MOG from. Instead, the book aims to help you write your own code that is tailored to your own needs, and tries to advise on the available choices at most of the junctions.
What's the Plan?
Currently, the "beta" chapters of the Vol.1 are already available on my blog ithare.com. The same "beta" posts are also available re-formatted as a single PDF (11.1M, 355 PDF pages; please note that this is NOT how the book is going to look).
Steps still to complete to bring the "beta" draft into the shape of the ready-for-printing Vol.1:
- Restructure Vol.1. Done.
- Go through Vol.1 again, "harmonizing" and clarifying things. I expect to add about 30'000 words during this process (give or take). Current progress: ~30% completed, 12'000 words already added. ETA: July 2016. At this point all the backers will get an (MS Word) draft.
- Make another pass through Vol.1, this time is more about self-editing (not that much will need be changed at this stage, I hope). ETA: August 2016. At this point all the backers should get another (MS Word) draft.
- Give it to a professional copyeditor. Cost estimate: $3100 (140'000 words @ $0.022/word). ETA: September 2016. At this point all the backers will get yet another (MS Word) draft.
- Give it to a book design/layout specialist. Cost estimate: $2900 ($500 overall design + 400 pages@$6/page). ETA: October 2016. At this point E-BOOK rewards will be sent out.
- Print paperbacks with CreateSpace, and get them sent to backers. ETA - November 2016. At this point PAPERBACK rewards will be sent out.
- Start selling Vol.1 on Amazon (planned price is $24.95 for Kindle, and $34.95 for paperback)
- Become rich and retire to the Bahamas ;-). On second thought - this book probably won't suffice ;-(.
Pretty much all MOG genres are within the scope of the book, from MMOFPS on one side of the spectrum to social games on the other side — with stock exchanges and multi-player casino games in between. However, things such as gameplay (including AI), and monetization are intentionally left out. In addition, the areas of physics and 3D graphics are too large by themselves and — to avoid expanding this into a 10-volume series — are only discussed very briefly (with pointers to good books on these subjects provided).
An excerpt from the tentative full ToC of the Vol.1:
Chapter I. Game Design Document from an MOG Perspective
Chapter II. On Cheating, P2P, and [non-]Authoritative Servers
Chapter III. Protocols
- RTT, Input Lag, and How to Mitigate Them (includes Client-Side Interpolation, Client-Side Prediction, and Lag Compensation)
- Game World States and Reducing Traffic Publishable State, Interest Management, and different Compression techniques)
- Point-to-Point Communications and Non-Blocking RPCs (including discussion on message queues)
- IDL (includes hints on writing your own IDL compiler)
Chapter IV. DIY vs Re-Use. In Search of Balance
Chapter V. Event-Driven Programming
- Classical Event-Driven Programs
- Deterministic Event-Driven Programs (including benefits such as production post-mortem for both client and server, replay testing, and so on)
- RPC Processing in Event-Driven Programs: from Plain Event Processing to Futures (with lambda call pyramids in between)
- Relation to Actors, Node.js, and Erlang
Chapter VI. Client-Side Architecture
- Graphics (only very basics)
- Programming Language for Client-Side
- Client-Side Architecture Diagram (based on multiple event-driven objects)
Chapter VII. Server-Side Architecture
- Naïve Architectures
- Web-Based Architecture (including write-back caching and locking strategies)
- Classical Architecture
- Front-End Servers
- Load Balancing (including Round-Robin DNS, Server-Side Balancing and Client-Side Random Balancing)
- Eternal Linux-vs-Windows Debate
- Programming Languages for Server-Side
Chapter VIII. Unity 5 vs UE4 vs Photon vs DIY for MOG
Chapter IX. Pre-Coding Checklist: Things Everybody Hates, but Everybody Needs. From Source Control to Coding Guidelines
Chapter IX concludes Vol.1; for the list of the Chapters planned in Vol.2 and Vol.3, see the full tentative ToC.
STRETCH GOAL @10K: +50% ILLUSTRATIONS - REACHED!
As we have reached our first stretch goal @EUR 8K, it is time to announce our NEXT STRETCH GOAL. If we reach EUR10'000, then we'll ask our illustrator Sergey Gordeev (who is more known for his animation awards and directing Animated Mr Bean) to draw additional 10 or so illustrations for the book, increasing the number of illustrations in Vol. 1 by approximately 50%!
In addition, if we reach this goal, it will be our backers who decide on the face of the 'No Bugs' which is used in the book (see options here: http://ithare.com/facelift-for-no-bugs/ ). While we already had a vote on it on the site, results were not conclusive, so (at least for the book) we'll defer to the vote of our Kickstarter backers!
STRETCH GOAL @8K: "KICKSTARTER SPECIAL" EDITION - REACHED!
As we're now 100% funded (BIG THANKS TO ALL THE BACKERS!), here comes our STRETCH GOAL (which will become available at reaching the number of EUR8000). If we reach this stretch goal, all the backers will have a choice to have their books/e-books shipped/downloaded either as "regular" books, or as "KICKSTARTER SPECIAL EDITION" books, with the latter only available to Kickstarter backers.
These "KICKSTARTER SPECIAL EDITION" books/e-books will get a new cover (probably with "KICKSTARTER SPECIAL EDITION" on it), a special "THANK YOU" page (and probably a separate ISBN too, though it doesn't really matter). Our illustrator will start working on the Kickstarter cover as soon as we reach this stretch goal, so you will see it sooner rather than later...
On "VIRTUAL PRESENCE" Consulting
Two of the rewards mention "VIRTUAL PRESENCE" Consulting. It will be as if I came to your office for the specified number of days. However, I will come not in person, but over Skype or something similar. You will describe your problems to me, and I’ll do my best to advise you on how to solve them. A few notes regarding this:
- How I use my time during these days is up to you. You tell me your story, I listen; you show me a document, I read it; you ask me for advice, I go offline for some time and come back with the best solution I can think of.
- With this in mind, it makes sense to ask me questions at the end of one day to get some advice the next day. While technically I am not obligated to think between the days, I am unlikely to be able to keep myself from thinking about a challenging problem ;-)
- 100% confidentiality is assured (well, save for somebody hijacking the Skype channel or something).
- Please do NOT assume that you can hire me at these rates outside of this Kickstarter project. Beyond this Kickstarter project (for which I have special permission) it will need to be done through my employer and, to the best of my knowledge, it is going to be MUCH more expensive.
Risks and challenges
At the moment, the project is already at a rather advanced stage. The whole Vol.1 (~110K words) is already available as "beta" at http://ithare.com/contents-of-development-and-deployment-of-multiplayer-online-games-from-social-games-to-mmofps-with-stock-exchanges-in-between/
It still needs another two passes by me (probably adding another 30K words in the process), followed by professional editing and layout, but with 80% of the content ready, IMHO the risks are minimal.
NB: this doesn't include the risks of you being bored to death, or shooting your project in the foot C++-style. These risks (and pretty much any other risks too) are expressly disclaimed.Learn about accountability on Kickstarter
Support this project
- (31 days)