The Snap, development log: Day 13
Mac build (r70)
Windows build (r70)
Status: The “event tree” is in place; this is the mechanism I’m going to use to make events “depend on” other events, and allow future events to be taken out of continuity if you change things in the “past”. You can see this in action now by:
- Fire a bullet;
- Snap back 5 seconds in time;
- Throw yourself in the path of the bullet.
The bullet will hit you instead of the place it was going to hit, and the original bullet collision event and all its side effects (at the moment that would be only a sound effect, since players don’t have “health” yet) will be undone.
The sound effects for the snap are all new, and there are sound effects now when another player (or one of your “past selves”) performs a snap.
Some thoughts about how things are going:
- I really like how the “snap” sound effect sounds, especially contrasted with the bullet fire/land noises. The alternate sound effects you hear when “other people” snap, on the other hand, I don’t think I like at all and I’m thinking of those noises as placeholders. I was thinking, when someone else snaps, I want it be the snap sound effect but I want it to sound kind of far away, muffled, underwater. The way I know how to do that is low-pass eq and echo. But I think I overdid it. There’s a kind of WOOP WOOP quality to the noise that doesn’t sound good at all, and the sound just goes on too long, which exacerbates the problem that the “going out” snap is not at all well synchronized with the visible disappearance of the snapping square. Probably I will look into fixing this when I add some kind of visual effect accompanying the snap.
- I’m thinking about this “event tree” system I’ve set up. The thing I really like about it is that it makes really complicated side effects of simple actions possible: You perform event X which prevents event Y from happening two seconds in the future, then the other player jumps back in time and performs event Z which prevents event X which “reinstates” event Y into continuity, and you see all these side effects instantly. This sounds all neat in theory, but when I try to think of good examples of how this could happen in practice, most of the good examples I can think of involve killing other players and therefore invalidating all their actions in the timeline after that. Of course that will not be an element of this prototype I’m working on here, since I’m planning to only have two players and therefore if one player dies the game just ends. I’m wondering if I really need to push for 4p play somehow.
February 1st, 2011 at 10:48 pm
There might be ways to affect other players without killing them. Freeze ray maybe? Stealing ammo from them? Not sure. A different approach might be to have more state in the world. A lot of doors that can be opened or closed? Walls that block bullets plus buttons that remove the walls?
February 2nd, 2011 at 3:47 am
Hey Mark– maybe so. I’m a little boxed in by the limited scope of this particular prototype though– in particular I don’t have much in the way of working physics yet (in my daydreams, this game is in full 3D and one of your weapons is a “rocket launcher” that does limited damage but knocks its targets a fair distance, meaning if you hit someone’s past self with it you throw off all their shots for about six seconds). A more stateful world would be a good idea and a really natural way to show off the time travel but there I’m boxed in a little bit by the “time loops” element of the game– let’s say there’s a destructable wall, and you shoot it. But then 60 seconds later time loops back around on itself– is the wall still destroyed? Maybe there can be Metroid-style doors that open for about six seconds or so, but then there’s less of a sense you’ve altered something.
I think this is the sort of thing I’ll have to get the prototype a little further along and see what I have time for. I definitely do want to make the arena itself a more “interesting” place.
For now, the one really obvious “changing the future” feature that’s definitely going to be in the prototype is when I introduce ammo canisters, meaning you have the option of stealing another player’s ammo before they even pick it up. But I don’t know if this is as visceral or obvious as an effect on the world as, say, knocking a player out of the game and watching half the copies of them over the timeline disappear.