Posted in Article, Game Development on December 9th, 2010 by ggambett – Be the first to comment
Introduction
In the first article of the series, we introduced the concept of an authoritative server and its usefulness to prevent client cheats. However, using this technique naively can lead to potentially showstopper issues regarding playability and responsiveness. In the second article, we proposed client-side prediction as a way to overcome these limitations.
The net result of these two articles is a set of concepts and techniques that allow a player to control an in-game character in a way that feels exactly like a single-player game, even when connected to an authoritative server through an internet connection with transmission delays.
In this article, we’ll explore the consequences of having other player-controled characters connected to the same server. read more »
Posted in Software on November 28th, 2010 by ggambett – Be the first to comment
Updated: Added Category support; import now gets PDF metadata using pdfinfo
I’ve recently bought an iPad. One of the first things I wanted to do was to read my PDFs in iBooks.
For Mac and Windows users, importing the PDFs is a trivial task – just drag the PDFs to the corresponding iTunes folder. As a Linux user, I needed another option. read more »
Posted in Article, Game Development on July 28th, 2010 by ggambett – Be the first to comment
Introduction
In the first article of this series, we explored a client-server model with an authoritative server and dumb clients that just send inputs to the server and then render the updated game state when the server sends it.
A naive implementation of this scheme leads to a delay between user commands and changes on the screen; for example, the player presses the right arrow key, and the character takes half a second before it starts moving. This is because the client input must first travel to the server, the server must process the input and calculate a new game state, and the updated game state must reach the client again.

Effect of network delays
In a networked environment such as the internet, where delays can be in the orders of tenths of a second, a game may feel unresponsive at best, or in the worst case, be rendered unplayable. In this article, we’ll find ways to minimize or even eliminate that problem. read more »
Posted in Article, Game Development on July 25th, 2010 by ggambett – Be the first to comment
Introduction
This is the first in a series of articles exploring the techniques and algorithms that make fast-paced multiplayer games possible. If you’re familiar with the concepts behind multiplayer games, you can safely skip to the next article – what follows is an introductory discussion.
Developing any kind of game is itself challenging; multiplayer games, however, add a completely new set of problems to be dealt with. Interestingly enough, the core problems are human nature and physics! read more »
Posted in Personal on July 25th, 2010 by ggambett – Be the first to comment
Who is this guy anyway?
I’m Gabriel Gambetta, a 30 year old software engineer working at Google. I was born in Uruguay, and I’m currently living in Zürich, Switzerland, with my beloved wife. For almost a decade I ran a game development company, and taught Computer Graphics at Universidad Católica del Uruguay.
I’m also interested in novels and movies. I’m currently working on my first novel, and I’d love to do something related to movies in the future. As an engineer, my approach to fiction writing is quite technical – I’m particularly interested in figuring out the structural elements that make good novels and movies “work”.
This website doesn’t have a tagline nor a stated purpose – “stuff I find interesting” would be a good summary.
DISCLAIMER: The views expressed on this site are my own and do not reflect those of myemployer or its partners.