Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 17, 2017
arrowPress Releases

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Designing around time is hard!

by Patrick Purcell on 03/07/13 12:36:00 pm

The following blog post, unless otherwise noted, was written by a member of Gamasutras community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


I now have my rewind functionality working properly, but I have no idea how to use it in an interesting way. The assignment specifies that Braid's rewind is to be implemented, but what I am working on has two players (split screen) moving about a 3D environment in first person. Each player is able to freely move backward in time, forward in time at the "real" rate, or forward in time at twice the "real" rate. As of right now there is a 12 minute window to play with.

Every frame I store each player's position, yaw, and pitch. When players are not on the same timeline as each-other, they see a phantom of the other player doing what that player's input dictates, and they see the "real" player going about their recorded actions...

I have not yet decided what to do with the player that is ahead in the timeline, I might take the most recent velocity of the other player and slow it down to give the forward playeer the sense that they are moving very fast through time.

Here is a screen shot of Red being ahead of Blue in time...Blue sees Red doing what he was doing when he was at Blue's time, and Blue sees Red's phantom obeying player input. Note that Red cannot see any version of himself besides his own timeline.

 photo FPStudioScreen_01.png

My first instinct is to give the players guns and let them try to duke it out using time travel...not terribly inventive as far as design is concerned, but I am more focused on the functionality of this for the time being.

I am going to decrease the buffer from 12 minutes to something more reasonable like 45 seconds and give it a "battery" of sorts to limit player's use of it. A smaller buffer will also give me more memory to play with as far as storing player state. I also plan on giving some sort of graphical indication of a phantom's "position" in time.

One challenge that I am not sure how I will tackle is the issue of a player killing another on a "pre-timeline" then having everything the dead player will do in the "post-timeline" get nullified.

This is fun...

Related Jobs

Bartlet Jones Supernatural Detective Agency Inc.
Bartlet Jones Supernatural Detective Agency Inc. — San Diego, California, United States

UI Designer
Deck Nine Games
Deck Nine Games — Westminster, Colorado, United States

Mobile Programmer
Deck Nine Games
Deck Nine Games — Westminster, Colorado, United States

Senior Console Programmer
Sanzaru Games Inc.
Sanzaru Games Inc. — Foster City, California, United States

Environment Artist

Loading Comments

loader image