Recording gameplay

Ideas and suggestions for how to improve the Warzone 2100 base game only. Ideas for mods go in Mapping/Modding instead. Read sticky posts first!
crux
Trained
Trained
Posts: 139
Joined: 16 Jan 2010, 03:21

Recording gameplay

Post by crux »

it would be great if you guys can add a recording feature to the game.
User avatar
lav_coyote25
Professional
Professional
Posts: 3434
Joined: 08 Aug 2006, 23:18

Re: recording gameplay

Post by lav_coyote25 »

yes!! yes it would be great and awesome!! xD and who is to do the coding on this ?? O_o
User avatar
Saberuneko
Regular
Regular
Posts: 558
Joined: 15 Jan 2010, 18:20
Contact:

Re: recording gameplay

Post by Saberuneko »

That's not right, use something like camcasia studio, and record it yourself... It's simple as that.
User avatar
lav_coyote25
Professional
Professional
Posts: 3434
Joined: 08 Aug 2006, 23:18

Re: recording gameplay

Post by lav_coyote25 »

not as simple as that... tried all of the available recording software (free or shareware ) and none of it was up to snuff.
User avatar
Saberuneko
Regular
Regular
Posts: 558
Joined: 15 Jan 2010, 18:20
Contact:

Re: recording gameplay

Post by Saberuneko »

Then, there's some method that never fails, get a tripod, put a camera on it pointing to the screen, and record. That's how's done with some other things, like recording playstation or NDS gameplay.
User avatar
Terminator
Regular
Regular
Posts: 1077
Joined: 05 Aug 2006, 13:46
Location: Ukraine
Contact:

Re: recording gameplay

Post by Terminator »

FRAPS - works perfect with warzone. google > FRAPS
Death is the only way out... sh*t Happens !

Russian-speaking Social network Group http://vk.com/warzone2100
User avatar
Saberuneko
Regular
Regular
Posts: 558
Joined: 15 Jan 2010, 18:20
Contact:

Re: recording gameplay

Post by Saberuneko »

a HA! That's it. I'm gonna test it when possible ^^
User avatar
Mysteryem
Global Moderator
Global Moderator
Posts: 728
Joined: 22 Sep 2008, 19:44
Location: UK
Contact:

Re: recording gameplay

Post by Mysteryem »

Camstudio is also a good option; it's also free.
"...If pure awesomeness were bricks, this would be the Great Wall of China...
The glory of this has collapsed on its self so far, that even the neutrons have collapsed."
User avatar
Zarel
Elite
Elite
Posts: 5770
Joined: 03 Jan 2008, 23:35
Location: Minnesota, USA
Contact:

Re: recording gameplay

Post by Zarel »

Fraps and Camtasia are both Windows only. Anything for OS X? :/
crux
Trained
Trained
Posts: 139
Joined: 16 Jan 2010, 03:21

Re: recording gameplay

Post by crux »

I want in game recordings, so they can also be played in game. Then you can just give the files to your friends to be played in warzone.
Having a avi to generate is too much work, and only works on certain platforms. :P
Per
Warzone 2100 Team Member
Warzone 2100 Team Member
Posts: 3780
Joined: 03 Aug 2006, 19:39

Re: recording gameplay

Post by Per »

Someone (stiv on IRC) is (or was) working on a way to record a whole game to ogg theora video. That would be really neat if/when completed.
User avatar
Terminator
Regular
Regular
Posts: 1077
Joined: 05 Aug 2006, 13:46
Location: Ukraine
Contact:

Re: recording gameplay

Post by Terminator »

It would be really cool if to implement a replays in warzone engine.
Death is the only way out... sh*t Happens !

Russian-speaking Social network Group http://vk.com/warzone2100
Assault Gunner
Trained
Trained
Posts: 358
Joined: 02 Jan 2010, 16:40

Re: recording gameplay

Post by Assault Gunner »

Ingame recording would be excellent! You could go over a battle and learn from your mistakes better.
"There is no greater Void than the one between your ears." - Void Ray, StarCraft 2.
Especially the Void between the ears of people who think that No VTOL is a good idea, and won't lead to arty wars. I've won one, and I have to say: I hated it.
User avatar
KenAlcock
Trained
Trained
Posts: 196
Joined: 25 Nov 2009, 03:50
Location: Detroit, Michigan, USA

Re: recording gameplay

Post by KenAlcock »

Okay, I'm not a game developer, nor I do not know the inner workings (i.e. madness) of Warzone. But I've done some brainstorming on this and I'd like to share some ideas for a possible solution, which I believe may become much better than recording a video. First, I'm sure a lot of work will be involved. But I believe the work required to implement this idea would provide several advantages that other solutions simply cannot offer.

So I hope that the developers will take these as brainstorming ideas to heart and participate in discussing as to how feasible, or how much work would actually be involved with what I am proposing here. Of course, this is intended as a down-the-line idea in some future version.

Observation
For a few bug reports I submitted, I staged a game--saving the game often as it progresses--to the point where whatever issue I was reporting was about to occur. And without exception, every single time I have loaded one of those saved games (on my PC), Warzone has always progressed the saved game the same way (that is, so long as I did nothing different when the saved game was loaded). Units ordered to move or attack before the game save always move to the same tiles afterward and attack the same things, and the standard AI even seems to make the exact same decisions. From these observations alone, it is clear that Warzone must be storing the current actions underway when a game is saved, and thus a file format is already established for this purpose. Clearly the Warzone game engine essentially replays a saved game, and the results are very similar, if not exactly the same, each time the saved game is replayed.


Assumptions
  • All AI actions are scripted, following a programmed algorithm, thus their results are likely to be similar each replay. However, I also know some people are working on AI improvements, where more randomness will be brought to AI decisions (see DyDo). So it should not be assumed that actually replaying a game (i.e. recalculating values) will always result in the same outcome each time. As two replay instances of the same saved game progress, each instance will become increasingly divergent from the other.
  • Users can always choose different actions during each instance of loading and playing a saved game, which will affect the outcome of the replayed game. However, not all user input affects the game output, such as where the camera is focused, what screens are open, or which units are selected.
  • When units/structures attack/defend, probability is used to select targets within range as well as to calculate hits, misses, and damage.
  • When units move, probability is used to calculate a movement path.
  • When AIs research, probability is used to choose which technology is researched.
  • Other such probability calculations, which ultimately affect a game's outcome are likely to be pervasive throughout Warzone.
  • All of the above assumptions are already being successfully dealt with in during a multiplayer game. From what little I understand, each peer does some of the game's computation, and Warzone syncs the results between all players telling each player whose units are where, which are damaged, and who is killing who, along with other such game related updates. Thus there already exists a well-established data format for recording only the relevant, game-changing information. Perhaps this sync data format could also be used to save an entire game to a file (as a chronological series of sync streams), and then replayed later?
General Concept of Proposed Solution
Warzone is simply a program using several algorithms to play the same game, the exact same way, over and over again. All algorithms only deal with three types of operands: user input values, calculated variable values and constant values. It is only varied user input values and calculated variable values that make each game of Warzone unique. However, Warzone could be designed to record all user input values and calculated variable values during initial game play, and to optionally read such values back during a game replay. Since the same algorithms would be involved during the initial game play and the game replay, and since the same values would be used in both, the exact same results would be achieved each and every time. Thus, providing an accurate instant replay mechanism.

An entire Warzone game could be recorded as a series of actions taken + pre-calculated results, in what I will call a replay file. The replay file format would be an expansion and enhanced redesign of the current saved game file format. While the current saved game file format only stores the current Warzone game state, including any actions currently underway (movement/attack/build/produce/repair orders), the replay file format would need to store: the game's initial state (time index 00:00.00) and all successive actions by time index. Thus a replay file would be loosely similar to several successive saved game snapshots all strung together, with a few changes. Most notably, the replay file record format for each saved action would need to be expanded to include all previously calculated results for any variables associated with that action. So for example, when a game is first played, when one unit attacks another unit, Warzone calculates an outcome variable using a hit probability to determine the results of the attack. But when the same game is replayed, Warzone would read that same attack's outcome variable from the replay file as it was previously calculated and recorded. Otherwise a game would progress as normal, but without human interaction.

An alternative approach would be to store the results of an entire Warzone game in a similar manner as currently used in a multiplayer game. So in an 8-player multplayer game, each player is transmitting their results to the other 7 players. Well in a saved Replay Game file, all 8 player sync streams would be logged and recorded sequentially, just the results, which could be played back later, just as they are in the Multiplayer games.

Disadvantages and Obstacles of this idea's approach:
  1. This is only what I can think of, with what I currently know or have observed. I'm sure this is more that the developers are aware of (and maybe even some they are not aware of).
  2. It will involve considerable work to update each function that calculates a variable that affects game outcome to read that value from a file. How much work? I have no idea, since Warzone is a black box to me. But I'm sure it's much bigger than a breadbox.
  3. The saved game file format would need to duplicated and enhanced or redesigned into a replay game format, which stores additional information (time indexes and all calculated variables for each event). The eloquence of this design is biggest critical success factor to the whole idea and it must be fleshed out, before any code is updated.
  4. Each algorithm that: accepts a user input value, calculates a variable value, or reads/receives an input value from an AI script, where the value affects the eventual game outcome, needs to be identified. This is also a very critical success factor to implementing the whole concept.
  5. The GUI would need to provide some additional options added:
    • Add Replay Game to Single/Multiple Player Menu.
    • Create Load Game Replay screen, similar to current Load Saved Game screen, with these options:
      • Game Replay Names
      • Time index to start viewing the replayed game at (max value of selected game should be read and displayed).
      • Player number to focus camera on when the replay view commences (0-7).
Advantages of this idea's approach:
  1. These are the advantages I can readily think of, which I believe far outweigh any disadvantages.
  2. No worries about what video format is most universal across all platforms. Warzone itself, which is already cross-platform compatible, would simply replay a game exactly the same way as it was played the first time, each and every time it is replayed.
  3. Developers would not have to develop code to turn a 3D video game into a 2D video file.
  4. Replay file sizes would be much smaller, since they would just be game data streams, no music, no images.
  5. Anyone replaying a game would be able to view it from different areas of the map, or move around the camera anywhere in the game and view it from any angle. So they game could be reviewed over and over from several different camera angles to get a better idea of what actually took place.
  6. During game replay, the visibility option could be set (optionally by a toggle), so that all things obscured by sensor range and fog settings could be made visible, without affecting the outcome of the game (since all calculated variables are now constants anyway).
  7. During game replays, the game speed could be advanced similar to single player skirmish.
  8. During game replays, an option could be provided to advance to a given time index. So that a person replaying the game could pick up the action from a certain point. During such a fast forward no video would actually need to be shown, until about 10 seconds before the desired time index. Just let the game progress the calculations very quickly and suspend the video display until the correct time index.
  9. This could also become a valuable troubleshooting tool for the developers if along with each player's sync data stream, the replay file also saved all game settings, OS version, graphics cards, mods used, Warzone build numbers, et cetera. Then the developers could use a replay file to review all calculated results and see the actual outcomes of games and review it a hundred different ways, including the data stored in the replay file.
Implementation Approach
Certainly, implementing this idea will involve considerable work. But I would argue that a significant portion of the required work is already complete. I estimate that at least 20% of the required file format, and the code required to save it and re-read it, is already in-place, although it will need to be duplicated into a different subroutine and then expanded upon.

The real work is in adding the code to save the user input values and calculated variable values to the Replay file during original game play, and the required corresponding code to read the same values back from the Replay file, during a replay. While this work is substantial. I believe that a universal subroutine could be created to read/write values from/to the Replay file. But this subroutine and the file format must be able to handle a variable number of values for each saved record.

But after thinking on this awhile, it seems like the multiplayer game is already handling this. The sync data streams for all 8 players just need to be saved to a chronologically indexed file which can then be played back.
My game handle is Cosmic Raven or Cosmic Raven 68
User avatar
Zarel
Elite
Elite
Posts: 5770
Joined: 03 Jan 2008, 23:35
Location: Minnesota, USA
Contact:

Re: recording gameplay

Post by Zarel »

That's really a bit too complicated.

The simple solution is just to record exactly what gets transmitted over MP, and replay that.
Post Reply