Today is a special day for me because my personal interests and my professional work intersect. Today is Video Game Day, and even better, Cisco’s operations in the U.S. celebrated by having a four-day workweek. (Pay no attention to the fact that we celebrated the July 4th holiday on Monday!)
I’ve been gaming for quite a while. I started with video game consoles where the game was provided in a plastic cartridge that you had to track down in a store, which was no small feat for very popular games. (Arguably, my first practical lessons in the law of supply and demand were trying to make my allowance keep up with the cost of games.) I played more Civilization in college than I should have, though thankfully I was able to keep the addiction under control and not let it affect my grades.
And then, along came Doom, one of the pioneering network games. Unlike everything I’d played up to that point, it wasn’t just a solo game – you could play against your friends! But I’m getting a little bit ahead of the story.
The power of the network for video games would be clear to everybody who was busy building networks back then in the mid-90s. Sharing information made computers more powerful. Sharing information also brought a leap in gameplay, because you were no longer playing by yourself. Instead of being limited to algorithmically-controlled characters and a fixed story, connectivity delivered games that were a whole new experience.
Early connected games were quite limited by today’s standards. Yes, you could play against other people, but they had to be in the same place, sharing the same physical network. When every player is directly connected to the same network and packet delivery is 99% reliable with only a few milliseconds, connectivity is easy. The downside is the requirement to share the same physical network, which gave rise to the LAN party.
Growing beyond a single LAN required making games work over the Internet, which is to say, to make games function on sub-optimal networks. Games today employ a form of client server architecture in which the game server holds the state for all the players and the game client displays the state to a player and sends actions back to the server. Like most applications, the game server stack has moved to cloud infrastructure, and real-time games – today’s descendants of Doom – employ many tricks to deliver fluid gameplay between the cloud infrastructure and client, even in non-ideal network environments. Even with all this hard-won knowledge, games still suffer from interruptions when run on networks with adverse conditions. Unfortunately, “adverse network conditions” is a reasonable description of the Internet when used for real-time applications.
The latest development in gaming is to take experiences originally designed for large screens, and make them portable. (When I received my COVID vaccination, I waited out the required observation period with a mobile game, and was interrupted only by one of the medical staff inquiring about which game I was playing.) Mobile gaming brings its own set of challenges because wireless networks are typically slower and less reliable than their wired counterparts. Part of my current work at Cisco’s emerging technology team is designed to improve network quality for real-time applications like gaming. (If you’d like to learn more, check out my Cisco Live presentation, “Measuring and Automatically Improving Quality of Experience for Mobile Applications”)
So, I hope you celebrate today with me. Whether it’s playing a classic like Civilization (or Freeciv, if you prefer open source), a retro throwback like Doom, or watching a competitive webcast of Starcraft, or something else… start the weekend early, and be a part of one of the best forms of entertainment we have created.