View Issue Details

IDProjectCategoryLast Update
0002952AI War 1 / ClassicSuggestion - New FeaturesFeb 25, 2011 5:56 pm
ReporterBobTheJanitor Assigned ToChris_McElligottPark  
Status closedResolutionnot fixable 
Product Version5.002 
Summary0002952: Add a replay feature
DescriptionThis may be asking a lot, so if it has to go on the back-burner as a future idea, that's fine. I would love to see an ability to record replays for the game. Either for the whole game, or just for a segment of it. Since games of AI War are way too long to upload to normal video sharing sites, the ability to record a replay and pass it around in order to share strategies or ask for advice or just for fun would be an incredible feature to have access to.
TagsNo tags attached.
Internal Weight

Activities

Entrenched Homeperson

Feb 25, 2011 11:44 am

reporter   ~0010747

Badaboom! Really though, this would be awesome! Can it also be automatic :O, have an option when leaving whether or not to save a replay, and it always saves anyway in a Last Replay folder, ala standard Replay convention. :)

Chris_McElligottPark

Feb 25, 2011 11:48 am

administrator   ~0010748

Unfortunately, this is technically impossible to do with a game like AI War. Other RTS games have managed this in the past by simply keeping track of all player and AI input, and then using that to play back a consistent game since all RTS games are by nature deterministic. AI War is also deterministic, but has the following problems:

1. The amount of player input, given the longer nature of games and the huge number of units, is much higher, making for an impractical amount of logging -- these replays would be annoyingly huge.

2. No other game company has managed to solve the multiple-sessions aspect of replays that I'm aware of. I think we could probably work it out, but it would be very problematic for a while.

3. This is the killer one. As with other RTS games, replays would be locked to a specific version of the game. With a game that is released and then hardly patched, that's not a big problem. But AI War has had several hundred public releases since 1.0, meaning that players would either need to keep hundreds of copies of the game on their machine in order to be able to play all the replays, or all replays older than a few days or a week would be unusable. Or if you just played official versions, then older than two months would be unusable.

4. Combining 2 and 3 above, many games of AI War are played across multiple versions through multiple sessions. That would compound the problem of 2 even further, making it so that you'd have to have multiple copies of AI War on-hand to play back even the recording from a single game. OR that we're incentivizing players not to update to the latest official version, or to use the betas. That would be disastrous for us as a company, because we can't support older official versions for technical reasons, and we really rely on the support and testing from players in betas.

So... all in all, it becomes pretty impossible. FRAPS and similar is the way to go. Incidentally, Youtube now lets you upload videos of any length if you have a history of good conduct with not uploading copyrighted content. So if you upload 15 minute videos for a while there, you are then allowed to upload videos of any length.

Draco18s

Feb 25, 2011 5:07 pm

developer   ~0010758

X: just so you're aware, TF2 (and other Source Engine games) do have multiplayer input recording. Valve's .dem files do this (they even record the voice chat).

Its not so much recoding their [i]input[/i] as it is storing what the client receives (packet data).

But you're right, for an RTS, its a non-trivial problem to solve.

Chris_McElligottPark

Feb 25, 2011 5:44 pm

administrator   ~0010760

Draco18s -- note that FPS games work entirely differently from RTS games in terms of networking. Other RTS games work as I describe. FPS games can not work that way any more than RTS games can work like an FPS game, because the type of data being synced is completely different.

Draco18s

Feb 25, 2011 5:45 pm

developer   ~0010761

Very true. I was just saying that its not impossible, just very difficult. Storing input from multiple clients is "easy" making that information useful is hard.

Chris_McElligottPark

Feb 25, 2011 5:50 pm

administrator   ~0010762

In terms of the data sent across the wire -- the packets, as you note -- that IS player input in an RTS. In an FPS, it's instead a series of diffs. That's the model we're having to move to.

And what I'm saying is that it is literally impossible to do this in an RTS game between different versions, because no diffs ever cross the wire, and unit state is not ever synced. All you get is player input being transferred, and then processed in lock-step. When something goes wrong with that lock-stepping, that's when you get a desync in AI War or any other RTS game.

There is no such thing as a desync in an action game, because all of the clients are in a constant state of loose-sync, with diffs on all of the entities that have changed being sent continuously to re-sync as needed. In this way, as long as the overall game structure doesn't change too much, you could reuse .dem files between unlike versions of the game. In an RTS, because they require on a fundamentally different purpose of the lock-step syncing, it's not at all possible.

Further reading, for anyone curious about just how different RTS games are from any other networked game, and why: http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php

Draco18s

Feb 25, 2011 5:53 pm

developer   ~0010763

Ahh, true.

Oh, and I'm not pro-this-feature. I don't see the need.

Chris_McElligottPark

Feb 25, 2011 5:55 pm

administrator   ~0010765

No worries. I just want to make sure that when I say "impossible," people know that's what I really mean. If it's not really impossible, I'll just say impractical, infeasible, really hard, or "something I don't want to do." :P But this one has the added distinction of being literally impossible on several levels.

Draco18s

Feb 25, 2011 5:56 pm

developer   ~0010766

Fair enough.

Issue History

Date Modified Username Field Change
Feb 25, 2011 11:39 am BobTheJanitor New Issue
Feb 25, 2011 11:44 am Entrenched Homeperson Note Added: 0010747
Feb 25, 2011 11:48 am Chris_McElligottPark Note Added: 0010748
Feb 25, 2011 11:48 am Chris_McElligottPark Status new => closed
Feb 25, 2011 11:48 am Chris_McElligottPark Assigned To => Chris_McElligottPark
Feb 25, 2011 11:48 am Chris_McElligottPark Resolution open => not fixable
Feb 25, 2011 5:07 pm Draco18s Note Added: 0010758
Feb 25, 2011 5:44 pm Chris_McElligottPark Note Added: 0010760
Feb 25, 2011 5:45 pm Draco18s Note Added: 0010761
Feb 25, 2011 5:50 pm Chris_McElligottPark Note Added: 0010762
Feb 25, 2011 5:53 pm Draco18s Note Added: 0010763
Feb 25, 2011 5:55 pm Chris_McElligottPark Note Added: 0010765
Feb 25, 2011 5:56 pm Draco18s Note Added: 0010766