Networking: Authoritative Game Server Sample

In today’s class, we’ll be talking about game networking.  For the purposes of this class, we’ll focus on local multiplayer games as our working example.  I’ve created a Unity sample that demonstrates how to create an authoritative server setup in Unity (all game logic and object control done in a server, clients display their local version).

Continue reading Networking: Authoritative Game Server Sample →

Code Sample, for P3 and in-class Sept 23rd

Here is a sample project (code .zip file) that shows a simple demo in the style of what you should do for P3.  It demonstrates a few things, that we will talk about in class today, including:

  • Using a state machine for the controller (using Steve’s ImmediateStateMachine.cs)
  • Input modulation using AnimationCurves
  • Using the CharacterController for 3D control
  • Dealing with 3D movement instead of 2D

We’ll do a small exercise with it in class.

P2 sample, using Unity’s CharacterController

Over the course of the class so far, we’ve avoided using the Character Controller, for two reasons.

  1. It is worthwhile to understand how things work, at a slightly lower level, implementing the collisions and push-back code to keep your avatar out of geometry.  In a 2D platformer, this is doable, especially when the geometry is simple.
  2. The built in controller is somewhat limiting and fixed in it’s structure.  This can be a problem for certain games.

However, as I work through building 3D sample for class, and think about P3, I’ve changed my mind on it’s for P3 and future assignments.  Problems with the controller for platformer is that uses a capsule instead of a cube for the avatar (resulting in weird behaviors at the edge of platforms), and sliding along the edge of geometry (which, you can and should control with your own collision reaction code).  But once we move into 3D, its likely your want to use that kind of collider, and with more complex geometry, you need the behaviors the controller provides.

Here’s a discussion of the reasons in favor of Character Controllers, in NVidia’s PhysX SDK Documentation (since Unity is built on PhysX, it’s likely that this discussion applies directly to Unity).

So, in addition to allowing folks to use the controller for P3, I am also posting a version of the P2 sample code here, that uses the controller:  P2-skelton-v4

Another sample for todays class

Another Unity Tutorial: Runner

(Note: this website appears to be down right now, hopefully just temporarily)

I remembered a tutorial I ran through when I was trying to learn a bit more Unity, it’s at this site:

It create a pretty rough-looking infinite side scrolling platformer (in the genre started by Canabalt).  What I like about it, though, is that it’s all code-based:  there are no pre-built models or animations that get “dropped in”.  There are some things about it that are old (it uses the old particle system, for example) because it was written a while ago.  But, there are some nice programming and code-structure techniques demonstrated.

If you are new to Unity and/or C#, I recommend it.  It will only take an evening or two.

Steve Swink’s simple State Machine

Here’s a pointer to the super-simple, super-small state machine code I mentioned in class. Steve Swink posted it on github (as a gist):

Super Mario Crossover – play Super Mario as other NES characters

Super Mario Crossover by exploding rabbit is a great study/illustration of game feel!

How to post a Unity Build on the website

The blog has a Unity + WordPress plugin, that we will use to post Unity web games for your project submissions, and group project builds.

Continue reading How to post a Unity Build on the website →

P1: You can’t save them all

Click somewhere on the grey plane and watch as your hero dashes to save everybody.  However, you can’t save them all.

Audio files came from

Continue reading P1: You can’t save them all →

More Unity and Software resources

Georgia Tech has bought a subscription to, a website with hundreds of video courses covering a wide range of topics.  There are a half dozen Unity3D videos, along with videos on 3D modeling and animation, that might be very useful to some of you.

To use it, you log in with your GT credentials at

A one-hour video walk-throught tutorial of Unity


Chris DeLeon (your fellow student in the class) pointed me at a introductory Unity tutorial he created, that is on youtube.  Chris is a Unity wiz, so I suggest you take a peek!

YouTube Preview Image

Welcome to CS 4455, Fall 2013

This semester, we will use this blog for the class.  See the links in the menu bar to find the Syllabus and Schedule, the assignments and projects, as well as policies on collaboration.

During the semester, you will post your projects to this blog, to allow other students to comment on them.  You should create yourself an account on this blog now, which can be anonymized if you prefer.