PDA

View Full Version : ♥ Heroes of Newerth Heatmap Generator



IAmRoot
12-28-2010, 09:45 PM
I've been playing around with opencl and opengl a bit for fun and created a heatmap generator to plot hero deaths in HoN. Although it currently only has Caldavar as the background texture, I'll hopefully get around to adding texture selection in the future. The idea is this utility can be used to visualize map imbalances.

Screenshot:
http://i605.photobucket.com/albums/tt134/IAmR00t/heatmapprog.png
Although I only have one match loaded in this screenshot, you should be able to enter or load as many as you want. It parses server logs, not replay files.

Features

Server log parser (local file or space separated match id list)
OpenCL heatmap texture generator
OpenGL display using OpenCL/OpenGL texture sharing
Cross platform using Qt (source code for modified qtopencl provided, as the current version in git does not yet support windows)
Export texture to a file


Minimum Requirements

A graphics card supporting OpenCL 1.0 with image support and the cl_khr_gl_sharing extension. This is currently only supported by recent nvidia drivers on 8x00 series cards or better. The ATI drivers currently lack both image support and texture sharing.

I have currently only tested it on my nvidia gtx 480. [S2]Shawn has tested it for me on I believe a 2x0 series card, but I have no idea how it runs on the 9x00 or 8x00 series.

There is a software renderer in the source code, but it isn't hooked up to the opengl display.

Download
I'm releasing this under the GPL

Windows 0.6 build (32 bit) (http://colin-maclean.com/release.zip)
Source (http://colin-maclean.com/honheatmapsrc.zip)

Yukari
12-28-2010, 10:37 PM
I wonder how intense the mid lane will be if you plug in a devo-war game :3

Scope
12-28-2010, 11:07 PM
Hmm.. I don't see why this kind of a program would reguire you to have the latest top notch graphic card..


Also could someone with said card(s) parse some games and post the results, thanks!

Utorrent
12-28-2010, 11:09 PM
This.. Is.. Awesoooooooooooome :d

Utorrent
12-28-2010, 11:27 PM
well how do u use it?

IAmRoot
12-29-2010, 03:31 AM
Hmm.. I don't see why this kind of a program would reguire you to have the latest top notch graphic card..


Also could someone with said card(s) parse some games and post the results, thanks!

The reason the system requirements are so high is because it uses OpenCL. OpenCL is basically an open standard CUDA/ATI Stream, which allows you to do arbitrary math on gpus, which are currently about an order of magnitude faster at math than cpus. I was getting about a 10x better render time using the opencl renderer over the software one. There is a software renderer written in the source code, but it needs to still be hooked up as the fallback (I rewrote the display as opengl, which broke it). I'm also thinking of writing an sse4 software renderer for fun, but that would require an i5 or i7 cpu.

If you get me a list of space separated ids, I can render a heatmap for you.

Schizoid_Man
12-29-2010, 03:49 AM
the funny and useful thing to do would be to get a list of 100 random MM games and render it

Anakha
12-29-2010, 12:44 PM
Any reason why release is 0.5.0 and your screenshot is 0.6.0?

EDIT: Updated my 8 series drivers and it seems to be working perfectly fine for loading several matches*.

Trudel
12-30-2010, 01:19 PM
I got an error, CL_BUILD_PROGRAM_FAILURE, how can i fix it ?

Yuichi
12-30-2010, 07:59 PM
Wouldnt the Intel Core 2 Duo series work as well for sse4?
http://img222.imageshack.us/img222/3859/cpuzf.png

IAmRoot
12-31-2010, 12:38 AM
Any reason why release is 0.5.0 and your screenshot is 0.6.0?

EDIT: Updated my 8 series drivers and it seems to be working perfectly fine for loading several matches*.

I'd forgotten to increment the version, and as that was the only thing that changed, I didn't bother reuploading the source.


I got an error, CL_BUILD_PROGRAM_FAILURE, how can i fix it ?

This means the drivers can't compile the OpenCL program correctly, probably due to driver bugs or an incomplete driver (such as ati).


Wouldnt the Intel Core 2 Duo series work as well for sse4?
http://img222.imageshack.us/img222/3859/cpuzf.png

Yeah, that would work fine. For some reason I was thinking the dot product instruction was in 4.2.

Emin3m
01-01-2011, 09:39 AM
The idea is this utility can be used to visualize map imbalances.



oh yeah....as you can see its still imbalance :)


what about watchtower ? s2 gave up ?

Adronius
01-03-2011, 07:52 AM
Very interesting to see how it is unbalanced :)

evotech
01-03-2011, 12:20 PM
I can tell you right now that you can approach from both sides on the legion tower without being hit by tower but you can only approach form top to mid hellbourne withotu beign hit by tower :P

McLovin
01-03-2011, 09:32 PM
http://img834.imageshack.us/img834/7164/79524423.png
I tested this on GTX 580, Works Great
this is only my last game, I was hellbourne, I guess you can tell who dominated this game.

This weekend, I will gather about 300 Ids of all my game history and Run them and see how it goes. I have a powerful card, so It shouldn't be a problem

linsen
01-03-2011, 09:37 PM
cool! thanks for sharing.

I coulda sworn i recall something similar to this being posted last year

DarkTwist
01-03-2011, 10:59 PM
So how exactly do I get this to run with my video card? When I try to run it just says that openCL.dll is missing.

Radeon 4850 by the way.

Memn0n
01-04-2011, 05:07 AM
The idea is this utility can be used to visualize map imbalances.

How about creating different colors depending on which side makes the kill ? That may be more helpful I think

blackus
01-04-2011, 05:35 AM
So how exactly do I get this to run with my video card? When I try to run it just says that openCL.dll is missing.

Radeon 4850 by the way.

See OP:

Minimum Requirements
A graphics card supporting OpenCL 1.0 with image support and the cl_khr_gl_sharing extension. This is currently only supported by recent nvidia drivers on 8x00 series cards or better. The ATI drivers currently lack both image support and texture sharing.

Laexio
01-04-2011, 05:41 AM
These gtx cards are so expensive :P

I remember getting my gtx 260, it was like 2 weeks worth of wages (I worked part-time whilst at college).

On topic: Great piece of software, gonna try out now. :D

IAmRoot
01-04-2011, 11:30 AM
How about creating different colors depending on which side makes the kill ? That may be more helpful I think

That's definitely doable. I won't have time to work on it for a few weeks, though. I'll probably set it up so that two heatmaps are generated, one for legion, one for hellborne, colorize them, then blend them. That way I can reuse the heatmap generation kernel. It works off a pseudo-two-dimensional array containing how many deaths occurred at that pixel (1024x1024 array). This design makes it so that the opencl kernel can operate per pixel rather than per death, which gives the program O(n^2) efficiency for point radius, but a nice O(1) efficiency for point count. In other words, you can add as many matches as you want without impacting performance; I even randomly generated 10 million deaths as a test.

pikes
01-04-2011, 01:26 PM
so I'm guessing we can't get server logs anywhere, right?

theli
01-04-2011, 04:11 PM
so I'm guessing we can't get server logs anywhere, right?

what stops you from looking into source code if you still don't know how/where to get server logs?

pikes
01-04-2011, 05:07 PM
what stops you from looking into source code if you still don't know how/where to get server logs?


I think a program should be useful without having to look through the source, but consider me served :)

DarkTwist
01-04-2011, 09:42 PM
See OP:

Oh, I could have sworn that someone got it working for an ATI card. My mistake.

ChikenMcTest
04-15-2011, 01:08 AM
this is great!

OwlThirteen
04-15-2011, 02:15 PM
gotta love the legion spawn deaths in the game shown

colondee
04-21-2011, 04:52 PM
Can I get some random m multiple match mmap results as suggested before, please? :)

DanteTheMad
05-08-2011, 01:56 PM
Is it possible to parse more than 4 match IDs at once when fetching logs? When I try to put, say, 10 IDs into the text box and click the button, nothing happens. For 4 IDs or less, it works fine.

Shffl
05-31-2011, 10:43 AM
Until I get a new rig, I won't be able to run the program. Could someone run the match id's from the more recent major tournaments? As the above post suggests that only 4 id's are allowed at once: 41398232 41392848 40752244 40627251

GGreenBass
06-09-2011, 11:11 PM
Rofl this looks like it would be fun to use- BUT! Here's a practical use:

For any and all heroes (that are not in fog of war), it would be really cool to see this real-time, and rather than heatmap kills, heatmap damage taken; assuming the heatmapping "faded" quickly (think of watching something cool, except the closer to cool the more transparent it would be rather than the more blue), you could easily see which heroes are taking the most damage and thus, you would know what allies are in the most danger and so forth.

Two things to note:
[One]
It would make sense to have just a flat-out "damage taken" option (so if you know which icons are the tanks, you can assume how much damage they can take and better guesstimate where they're receiving the damage from),
and an option based off of max health that would work much like the shadow in your health bar that showed how much health you HAD before that Pyro nuked you in the face (so if you know who your more vulnerable players are, you can assume how much health these players have and better analyze who is in the most amount of trouble).
[Two]
I can imagine using this on the minimap while simultaneously somehow distinguishing the color and team of the player would NOT be very easy. That said, if you replace the blue/green with these colors, you might have something...

Just an idea- seems like it would be both difficult to create AND learn to use, but it sounds like it has potential to me.

RaPoZaUm
06-10-2011, 11:31 AM
One of this for Grimm's Crossing would be nice...

haschisch
06-26-2011, 04:55 AM
One of this for Grimm's Crossing would be nice...here you go:

http://www.abload.de/img/heatmap_grimmstdhu.jpg

[spoiler]in case you didn't notice, this is faked. should still be quite accurate though. :>[/quote]

NUsul
07-03-2011, 12:04 PM
how to generate log file?

if i try an id (51281225) it does nothing.

Is there some limitation?

spamilator
07-05-2011, 09:06 AM
how to generate log file?

if i try an id (51281225) it does nothing.

Is there some limitation?

Same, probably because it requires XML-API which is down currently.

Groomi
10-08-2011, 04:19 AM
I got an error, CL_BUILD_PROGRAM_FAILURE, how can i fix it ?






This means the drivers can't compile the OpenCL program correctly, probably due to driver bugs or an incomplete driver (such as ati).



Any chance you can correct this or update the application for recent drivers?

Menzo
10-10-2011, 12:29 AM
The moral of this heatmap is to stick to the top lane like glue and only jungle in the Hellbourne jungle

Volko
10-12-2011, 01:01 PM
GTX 560M will work with it or I don't have to waste my time ? ^^"