These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
 

Battle-Recorder · Eve's Very Own Built-In Fight Record Tool

First post
Author
Sieges
#21 - 2011-11-30 20:50:28 UTC
10/10

+1
Schnoo
The Schnoo
#22 - 2011-12-01 07:08:55 UTC  |  Edited by: Schnoo
ninjaholic wrote:
Schnoo wrote:
do you have any idea how hard it would be implement it? even a simple version that wouldn't work between EVE versions would be rather challenging
It wouldn't be hard at all. Every entity on the 'grid' has x y z positional data, directional data, movement data and target data among other numbers. Most of this can be shortened from what it is now, and then 'interpolated', (aka guestimated) to keep the information small and manageable. This information can work across versions Twisted as it's already in place in a lot of games. All Source based games, Unreal based games, Havok based engines in general.

It is not as easy as you think (disclaimer: I've worked a bit on parsing Starcraft's replays when I was doing some machine learning). You would have to create a way to both save the data and then replay it.

The saving part:
You would need to convert things into serializable events, and those events would need to be fully deterministic, so they can be replayed accurately.
This would mean you can't just put "X has started attacking Y" nor "X has started jamming Y" and then generate damage as you would in EVE, as these are stochastic events, meaning you should add "X has done Z damage to Y at time T". And let's not forget that the wide range of events that exist in EVE is far greater than any FPS. Even if you would limit it to combat-related stuff only it would be large. Replays would also need to store ship fittings being an arguable problem of leaking additional previously unknown information (victor's fittings).

The loading part:
You would need to add a lot of engine code to be able to load data into the engine and not have it do things on it own (not actually work, just replay and display)

Cross version problem:
Most games usually tend to optimize data usage. I bet that EVE ship types are kept binary in files, and are often referred by indexes when client and server communicate, or even when client does rendering and so on. The same goes for modules, gates, and probably any other object, visible or otherwise.
This creates a problem when you try to load replays from older versions, f.e if you were to load the Apocrypha version replay, which not only did not have Tier 3 BC, but ships there were different. Some ships gained/lost slots so a replay that has a Imperial Navy Slicer with 3 turrets makes no sense as far as Crucible is concerned.

Also, here's an idea, how about you guys implementing it, even if a simple version? LOL did it, http://www.leaguereplays.com/download/, even though it isn't cross-version and has certain deficiencies (can't really pause), it worked pretty well. Then again, I'm not sure how much data can be gathered if you would to try the same thing in EVE (probably a dll injection or less likely port listening).

PS: I'm not against the idea, it would be great to be implemented, but from a programming perspective it will probably take as much time as all the things that have been done (programmed) for this expansion together. In fact, if some such thing would be to implemented, I would love to do some data mining on it, but it would take time.
PPS: Don't add stuff I haven't wrote in my posts when quoting me.
Noillia Durmot
Marginally Sinister
#23 - 2011-12-01 12:27:11 UTC
+1

Surely the data needed to recreate any series of events in eve is the exact data that is received from the server. Save that data and feed it to a client-lite and it will reproduce the exact same series of events.

If I understand it correctly all randoms are calculated on the server and it is not possible to move your ship or activate a module without the server telling your client that it has happened.
ninjaholic
Black Frog Logistics
Red-Frog
#24 - 2011-12-04 18:22:07 UTC
@Schnoo I STILL don't see how it's NOT possible. If the data exists, there must be a way to load it, manipulate the data that relates to the client camera's position over time, and then save it as a stream of instructions, then replay it. Also regarding sic see here.

@Noillia Durmot As far as I know you're right, the server has to 'approve' any client behaviour. I remember reading something like that on the forums a while ago but I can't say for sure.

Support Eve's own built-in Battle-Recorder!

CCP Atlas
C C P
C C P Alliance
#25 - 2011-12-04 18:26:29 UTC
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.
Jack Carrigan
Order of the Shadow
The Revenant Order
#26 - 2011-12-04 19:01:42 UTC
Yay! A Dev made input.

If it's been discussed, that's good.

If you can come up with a way, I'd love to see it. If not, keep up the good work on FiS.

Now if only I could get Dev input on my suggestions... Evil -shameless plug-

I am the One who exists in Shadow. I am the Devil your parents warned you about.

||CEO: Order of the Shadow||Executor: The Revenant Order||Creator: Bowhead||

Cendres Ange
Frontier Venture
#27 - 2011-12-04 19:50:29 UTC
Would be a great feature! Fingers crossed.
Jonas Xiamon
#28 - 2011-12-04 20:45:36 UTC
I would love this feature, so hard...

I usally write one of these and then change it a month later when I reread it and decide it sounds stupid.

Major Kim
Fawkes' Loyal Professionals
#29 - 2011-12-05 00:58:40 UTC
+1
I enjoy watching eve fights, a battlerecorder/player would benifit alot of people i think.
Tippia
Sunshine and Lollipops
#30 - 2011-12-05 02:11:21 UTC  |  Edited by: Tippia
I might not have read it properly, but I think you missed one of the most critical parts of the Source version…

The ability to not actually play back, but to render to a series of full-res/full-effect screenshots.

So you record the event as normal, with whatever settings you have to make it playable for you, and then you set up the actual render job to run at max everything. You don't have to worry about FPS or about your capturing software interfering or dropping frames — you are getting the exact right FPS you want for your recording at exactly the resolution you want with no drop in quality. (Figuring out how to record and play back the camera movement is a simple matter of programming.)

Then you just point your movie tool to the stack of files and tell it to compile it into a move and go to bed… P
Graeme Rowney
For The Pink
#31 - 2011-12-05 02:38:46 UTC
The more support we give this the more chance it has to being implemented. I think this should be high up on the list of things to do.

Tanya Powers
Doomheim
#32 - 2011-12-05 02:45:34 UTC
CCP Atlas wrote:
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.



I WANT IT NAO !!

DO IT !!!!


Lol
ninjaholic
Black Frog Logistics
Red-Frog
#33 - 2011-12-05 09:46:55 UTC
I think I'd have a heart attack if it ever went live. But don't let that stop you!!

Support Eve's own built-in Battle-Recorder!

Schnoo
The Schnoo
#34 - 2011-12-05 10:03:55 UTC
ninjaholic wrote:
@Schnoo I STILL don't see how it's NOT possible. If the data exists, there must be a way to load it, manipulate the data that relates to the client camera's position over time, and then save it as a stream of instructions, then replay it.
Oh it's possible, it's just not trivial.

Quote:
Also regarding sic see here.

I know what it means, my undergrad CS professor used a lot of Latin phrases in his books, I just don't like my posts changed.

One other thing that needs to be considered: how do you want the replay to be view-able? A thing I've noticed with the LOL replayer (even though it was community made, it did work), it was showing inconsistent data, as it was only the stuff your client would've received. This would be manifested in ways of not seeing HP of players at distant parts of the map, or sometimes their positions (as your client wouldn't get that information).

The same problems will probably be seen for the EVE replayer - unless it would be done server side or some additional, otherwise unneeded information passed to the client. A couple of examples of this would be the inability to see HP of stuff that isn't on your watchlist or you haven't targeted during the recording. So you would see ships popping without knowing their HP. Additionally you wouldn't be able to see exact damage done by people that aren't shooting you or that you aren't shooting at. The same applies to capacitor status, repair amounts and other things you can think of, including who is targeting what and so on (scramming probably still works as it's 'broadcast').

In conclusion, you wouldn't be able to effectively "change" to another person's view, be it friend or foe and get the idea of exactly what they're doing, or has been done to them (information would be missing).

With all that said, it would still be valuable to have it, and it would be much more enjoyable and viable than frapsing, due to probably orders of magnitude smaller files among other things
FlinchingNinja Kishunuba
Crunchy Crunchy
#35 - 2011-12-05 11:26:47 UTC
From what I understand what you actually see on your client and what the server sees are not always the same. Delays between database access, render, event execution are out of sync periodically then pulled back in when the engine permits it. A guess would say that up to a second delay can be lagged on to an event being confirmed from the server.

I think you would need relative position, heading, ship state, at the bare minimum all synced across all variables in the environment, only the server would have this information. You would have to give a client side request to the server for a higher resolution log of the event you specify then have it post processed and sent down to the client for rendering on an external engine. This is really expensive and would require a pretty serious update to the Eve cluster I imagine. Your storage requirements would balloon out of control rapidly and processor load and database access time could be hit seriously hard unless you added more hardware.

+1 though as it would be awesome!

Ender Sai
Perkone
Caldari State
#36 - 2011-12-05 11:54:19 UTC
CCP Atlas wrote:
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.


If you guys do this you will literally win the internets.
Tanya Powers
Doomheim
#37 - 2011-12-05 12:20:32 UTC
Ender Sai wrote:
CCP Atlas wrote:
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.


If you guys do this you will literally win the internets.


It's not one but several Super Computers if they ever implement that, and a single one dedicated for this single purpose I guess.
Can you imagine all the data daily stored even for small amounts of time? wooooo
FlinchingNinja Kishunuba
Crunchy Crunchy
#38 - 2011-12-05 12:28:30 UTC  |  Edited by: FlinchingNinja Kishunuba
Tanya Powers wrote:
Ender Sai wrote:
CCP Atlas wrote:
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.


If you guys do this you will literally win the internets.


It's not one but several Super Computers if they ever implement that, and a single one dedicated for this single purpose I guess.
Can you imagine all the data daily stored even for small amounts of time? wooooo


Errrrr...... ¬_¬ anywho it would mean an increase in required processing for each node and either an increased storage capacity or sufficient cache to fire it down to the requesting client.

Somewhat simpler then any HPC implementation let alone 3! Although I imagine CCP would love this hardware from what I can see the system is a multinode architecture with multiple instances pulling from central databases. HPC* will normally use a single instance across multiple nodes,



I have been involved in a few multinode system designs recently along with 10GbE interconnects, what is Eve actually running on? any DevBlogs on this?

*Ok I agree that a Super computer is generally a single instance but a HPC can include multi instance clusters.
Tanya Powers
Doomheim
#39 - 2011-12-05 15:43:45 UTC
FlinchingNinja Kishunuba wrote:
Tanya Powers wrote:
Ender Sai wrote:
CCP Atlas wrote:
This is something that has been discussed internally numerous times and it is pretty awesome. I do believe it's even on some backlog or other, but I don't know when or if it will be attacked.


If you guys do this you will literally win the internets.


It's not one but several Super Computers if they ever implement that, and a single one dedicated for this single purpose I guess.
Can you imagine all the data daily stored even for small amounts of time? wooooo


Errrrr...... ¬_¬ anywho it would mean an increase in required processing for each node and either an increased storage capacity or sufficient cache to fire it down to the requesting client.

Somewhat simpler then any HPC implementation let alone 3! Although I imagine CCP would love this hardware from what I can see the system is a multinode architecture with multiple instances pulling from central databases. HPC* will normally use a single instance across multiple nodes,



I have been involved in a few multinode system designs recently along with 10GbE interconnects, what is Eve actually running on? any DevBlogs on this?

*Ok I agree that a Super computer is generally a single instance but a HPC can include multi instance clusters.


Actually there's some Dev blog about they' r actual stuff, just looked at quickly since overpasses my knowledge.
When I was referring to SC was more about data income/treatment//storage/outcome/deleting than number of connections to it but just has I said above it's above my skills/knowledge/abilities.

Thing is that not all the 50K users at a random moment will be using that feature, we're ok on that, but even half or 1/3 using it means Terra bytes per second of data that must be treated/stored/delivered, it's almost impossible without client interference imho, but once again, I'm probably wrong since I don't have enough knowledge to speak about.
ninjaholic
Black Frog Logistics
Red-Frog
#40 - 2011-12-05 16:31:01 UTC
Why not have the downloads available only during off-peak hours? This means a queue system could be used and the info downloaded while the servers are at their quietest, depending on the region. This would stagger the workload. You could use a system like a torrent, like if there are 20 people on a grid, and one downloads it, why shouldn't his demo files not be made available to the other pilots that were on the grid with him? It would save a shedload of bandwidth.

Support Eve's own built-in Battle-Recorder!