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

Do demo visualizers exist?

Recommended Posts

Are there any tools or modified source ports where Doom demos are played, and on a level map, the player's trajectory is traced on a line, also including the points where ammo is fired or buttons are pressed? It would probably need Doom engine's feedback, so we can see the points where the player is moving (as result of intended force as written in the LMP) or where the shots as fired, as result of the fire command.

Share this post


Link to post

I was always thinking how nice it'd be to have heat zones and positional maps during successful flagruns for CTF, heh. The analyses would never stop!

Share this post


Link to post
Memfis said:

I'm pretty sure I remember someone posting an automap visualisation of player movement in some long demo.

edit: nevermind, it was a different game :D http://kopasite.net/up/0/mwb1035adi.png


I hate the apple harvest map in elastomania, it sucks ass. That one looks like its big brother.

Share this post


Link to post

Doomsday's graphical Shell features a status overview for multiplayer games that shows the position of players, movement trajectories and logs game events



It can't be used with demos presently but its certainly a possibility for the future /note to self

Share this post


Link to post
40oz said:

Did you make that with a script?

I edited the Chocolate-Doom source code to generate a SVG after playing a demo.

Share this post


Link to post

I'm chiefly looking for ways to make AutoDoom learn from demos - without just copying them.

Share this post


Link to post

I got bored one day and wrote something that sort of plots a trajectory based on keypresses during a demo. I originally wrote it to look at really short uv-speed demos to see if I could visualize the jerkiness of tas as opposed to humans. I also had the romantic idea that it might be possible to categorize player's movement styles based on these trajectories. I quickly got bored though of staring at squiggly lines after realizing they really weren't that interesting when you don't take map geometry into account.

squiggggggggle

It's really cool to see it overlaid on the automap. I wonder how useful this info would be to bots though?

Share this post


Link to post

DF's Visual Route LMP tool does just that. (although he never had a full released version).

Lucas Pope's VIDD tool does the output and manipulating, but lacks any overlay or plotting.

My Prboom-plus based Demo analysis tools(at the DSDA) track the Prboom x,y positions of the player(s). However, I don't have a map overlay or plotting tool for these points either.

With DOOM source port modification, something like Schellenbaum/Noris's UDT(Quakelive) would be (somewhat)easily doable.

Share this post


Link to post

Someone help me out: What is the goal? In other words, how would it be used (other than looking cool)? What would it give you that the automap doesn't?

Seriously, it sounds interesting, but, what's it for?

Share this post


Link to post
Memfis said:

I just remembered where I saw it: http://doomedsda.us/lmps/1459/5/e228f3804.zip

So, basically, what is everyone is looking for?

I am trying to understand what the goal is: Other than looking cool, what is the desired goal?

Basically, I could see a program loading up a wad, and a lump, and seeing the player's path rendered on top of an image of the map - that's a pretty simple project. It gets a bit more tricky when you consider different source port demo formats, and Hexen vs. Doom vs. UDMF map formats.

But, what is the purpose? I would consider shading the path, based on time, so the newest position is bright, and the oldest position nearly black, or something.

I guess it could be useful to show how much backtracking is required in a map, to suggest to the map author that a shortcut could be useful. Maybe it could also be useful to show a player's particular style, especially during fight sequences.

What other use cases are there? (I'm interested, because if I am to implement such a feature, I want it to be useful!)

Share this post


Link to post
printz said:

I'm chiefly looking for ways to make AutoDoom learn from demos - without just copying them.

Sounds interesting.

With demos you also get all the monster positions, so you can analyse which monster the player concentrated on killing first, what weapon they chose for it, and how the player moved in relation to that monster.

Be interesting to see how a neural net would fare learning on that data, then applying it during actual gameplay.

Share this post


Link to post
Linguica said:

As if this isn't a worthy goal on its own?

I tried not to suggest that - I figured that that was a given :)

andrewj said:

Sounds interesting.

With demos you also get all the monster positions, so you can analyse which monster the player concentrated on killing first, what weapon they chose for it, and how the player moved in relation to that monster.

Be interesting to see how a neural net would fare learning on that data, then applying it during actual gameplay.

Now, you're talking! Ok, you got me thinking about it.

So, you could assume that a human player is pretty good, so it follows that the demo visualizer contains "good, smart moves". Knowing that, without getting as complex as an honest-to-goodness neural net, there's still some interesting areas of learning that could be done. Something like this:

1. Get the computer to quickly assess the current situation - pros and cons, and "score" the situation (higher numbers=very good, low=very bad)
- Getting ready to get hit by a fireball, safe area nearby
- Monster is in shooting range, and I'm turned towards it, but rocket launcher is selected
- There's a plasma gun nearby, and I need it
- I need health, and I passed some a while ago

2. Turn that assessment into a hash
3. Search internal move database for a matching hash
4. Choose the match with the best assessment "score".
5. Make the move.
6. Assess the results of that move. Adjust that hash score accordingly.
7. Rinse and repeat.

Very simplified, but, if done correctly, given time, that could create a VERY intelligent bot that could pull off some beautiful, unexpected moves. It would probably also, occasionally, do very stupid things. But it would learn from them. It could be fed demos from good players, to learn from, with a "hint" that these moves are pretty good. That would build up the database.

It would be a lot of work, but very rewarding, if you could get it working. Basically, it's a kind of genetic algorithm. Managing the volume of nodes would be tricky to do in real-time, but possible. And, with the demo visualizer, the work could be done off-line.

You could compete with other intelligent bots, and you could share "expertise" by passing database records to each other. Wow, just what I need - another huge project to add to the stack... :) Thanks, you guys helped me answer my question of what a demo visualizer could be used for - lots of cool stuff. And, it looks cool, too.

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
×