Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
SaarStar

Extracting player action data from Doom?

Recommended Posts

Hello Doomworld community members,

I am a design student trying to determine if it would be feasible to create an infographic based off player routes through E1M1 of Doom.

This would require me to collect data such as the players positioning (pathway through map) as well as items collected, demons killed, shots fired, switches hit, doors opened... etc.

I have a fair level of understanding of Doom source ports however when it comes to demo recordings (specifically LMP files) I am less keen. To my knowledge they contain some of this data?

My question is whether or not its possible to generate a comprehensible log file from either a demo lmp. or straight from a modern source port command line that would give me access to this data.

I look forward to reading your responses! Thanks!

Share this post


Link to post

Something like this ?

Spoiler

If yes, then it has been done already for these maps

Knee-Deep In The Dead Maps
The Shores Of Hell Maps
Inferno Maps
Thy Flesh Consumed Maps

Doom II Maps
TNT Maps
Plutonia Maps

Master Levels Maps

Share this post


Link to post

No, sorry, to clarify I'm not simply trying to create a map for a level. I would like to know if it is possible to accurately plot a players movement through a map using information recorded inside Doom's demo LMP files. For my project I plan on comparing the routes of multiple players through E1M1: using the pathways to compare how people interpret the game environment differently.

Share this post


Link to post

Yes it is possible, but you cannot use an LMP file directly, instead you need to modify the engine (e.g. PrBoom+) and add code to print stuff into a log file whilst a demo is being played back. If you are a programmer with some C experience then it is fairly straightforward.

Share this post


Link to post
SaarStar said:

No, sorry, to clarify I'm not simply trying to create a map for a level. I would like to know if it is possible to accurately plot a players movement through a map using information recorded inside Doom's demo LMP files. For my project I plan on comparing the routes of multiple players through E1M1: using the pathways to compare how people interpret the game environment differently.

You'll need to create a modified source port that can play back Vanilla demos (would therefore probably have to be based on something like PrBoom or Chocolate Doom) and write out the player coordinates at each tic. Then automate the process to run through lots of demos - you can find some in Compet-N for example. Demos can be played back at maximum speed (essentially fast forwarded) so there's no need to sit through every demo in real time. Then you need to plot all the collected data over an image of the map - there are a bunch of existing tools to generate nice looking maps so it's probably just a matter of drawing a bunch of lines or plotting points.

So it can be done but I doubt there's any existing tool or source port that can do this. You'll need some programming skills but not particularly advanced ones.

Share this post


Link to post

I'd start with Odamex. It combines vanilla compatibility including demo playback with thorough logging common in multiplayer ports. Just set up the logging level to item pickups. You'd have to add the more detailed stuff yourself.

Share this post


Link to post
fraggle said:

You'll need to create a modified source port that can play back Vanilla demos (would therefore probably have to be based on something like PrBoom or Chocolate Doom) and write out the player coordinates at each tic. Then automate the process to run through lots of demos - you can find some in Compet-N for example. Demos can be played back at maximum speed (essentially fast forwarded) so there's no need to sit through every demo in real time. Then you need to plot all the collected data over an image of the map - there are a bunch of existing tools to generate nice looking maps so it's probably just a matter of drawing a bunch of lines or plotting points.


This sounds like exactly what I need, however with no programming skills I don't think I can move on with this idea.
However, i'd still like to thank everyone for the help!

The Doom community has never been a let down.

Share this post


Link to post
Linguica said:

I made a quick EXE hack outputting player position data:

http://www.doomworld.com/linguica/chocolate-doom-pathdraw/chocolate-doom-pathdraw.zip

It just outputs the tic number with current player X and Y positions to stderr.

I tried DEMO3 in Doom 2 and overlaid it on the map to make sure it seemed to work OK:

http://www.doomworld.com/linguica/chocolate-doom-pathdraw/path.png


Gave me an idea!

Draw by moving around in a Doom level! Could paint some Cacodemons.

I thought of doing such things when I eventually develop bots. Play demos made by specific players and determine their playstyle so to speak, to emulate them

Share this post


Link to post

That does look pretty good Linguica, thanks for whipping that up. Can the accuracy of the path be enhanced? Say by decreasing stroke thickness?

Embarrassing as it may sound I currently can't test the .exe because I use the mac port of chocolate doom.

Share this post


Link to post
SaarStar said:

That does look pretty good Linguica, thanks for whipping that up. Can the accuracy of the path be enhanced? Say by decreasing stroke thickness?

Embarrassing as it may sound I currently can't test the .exe because I use the mac port of chocolate doom.

OK... http://www.doomworld.com/linguica/chocolate-doom-pathdraw/chocolate-doom-pathdraw-mac.zip

You'll have to be able to run it in Terminal via ./chocolate-doom-pathdraw -timedemo demo 2> out.txt and supply your own IWAD.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×