Jump to content
gammadust

GAM DataPlot (Statistics for all)

Recommended Posts

v0.80

by gamma



*based in previous version

Description:

  • Plots graphs of live data series on screen

Features:

  • Highly customizable (on the fly zooming and resize)
  • Compatible with spectator mode
  • Hide/Show option (L key) + Slow motion and pointer (windows PAUSE key)
  • Multiple series per graph
  • Showing analisis functions (currently average type only - data must be fed, further on will be optionaly automatic)

Install:

  • Copy folder "@GAM" inside zip to your MAIN Arma 3 directory
  • Add "-mod=@GAM" to your Arma 3 shortcut
  • Check folder DataPlotCoverage.Stratis for demo mission (shows how to setup the graphs and update)

Basic Usage*:

  • Make sure you have mod installed
  • Steps:
    1. Setup GAM Data Plot (choose position/size of main plotting area)
    2. Create Graph(s) (involves basic options such as offset/size/margins/base color/scale and description of data to plot)
    3. Create loop to Update Data to Graph, or alternatively update at your discretion
      note: graphs/series are indexed according to order of creation, for now one must himself keep track of these indexes

*Briefly I shall create a small tutorial to get those interested started

Todo:

  • Option to invert data on graph
  • Option to switch axis scale <> data
  • Support for negative values
  • Support for additional math processing (interpolation/regression)
  • Support for graph reflowing (realtime replacement/increase in number of data points)
  • ...

Known issues:

  • So much customization has its setbacks, setup is currently a bit too verbose
  • Does not have default values for common options, all settings must be explicit and initialized

Credits:

  • Bohemia Interactive
  • zx64/Dslyecxi and by extension Nou (STHUD & CCIP Canvas)
    for drawing to map proofs of concept

**** LICENSE CC BY-NC-SA 3.0 ****

Creative Commons Attribution-Non-Commercial-Share Alike 3.0 License

READ The Full License

The following is a human-readable summary of the Legal Code.

You are free:

to Share — to copy, distribute and transmit the work

to Remix — to adapt the work

Under the following conditions:

Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

Noncommercial — You may not use this work for commercial purposes.

Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

With the understanding that:

Waiver — Any of the above conditions can be waived if you get permission from the copyright holder.

Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license.

Other Rights — In no way are any of the following rights affected by the license:

- Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations;

- The author's moral rights;

- Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights.

Download:

GAM_DataPlot_v0.8.zip

Armaholic mirror

Edited by gammadust

Share this post


Link to post
Share on other sites
Guest

Release frontpaged on the Armaholic homepage.

================================================

You are not registered on Armaholic, or at least not that we are aware of. In the future we offer the possibility to authors to maintain their own pages.

If you wish to be able to do this as well please register on Armaholic and let me know about it.

This is not mandatory at all! Only if you wish to control your own content you are welcome to join, otherwise we will continue to follow your work like we have always done ;)

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

Great tech demo whats possible with dialogs/graphs! Thanks for sharing. :bounce3:

Share this post


Link to post
Share on other sites

^^ there's always interesting possibilities if one digs enough, in this case i believe it was Nou who pushed through the method. I mostly looked at STHUD's code to infer it, and if i may put my modest hat aside for a second, it's original method required regular conversion between screen space and world space (map) coordinates, in DataPlot the whole thing is done in world space, not even requiring the conversion at the setup phase, and bypassing X and Y screen coordinates ratios issues, this optimization may be of interest elsewhere, feel free to borrow from it where possible.

Now having taken some time to rest, i'm glad i numbered it v0.8, i now really think it's usage must be simplified and much more leaner (example mission which setups 3 graphs, 2 series per graph + 2 functions + updating of each, required about 250 lines of code, which is just too much for my liking). I better tackle this early, because i want to add more features (as many as AIvsAI will require, which by the way is the motivation of this non-gameplay project) and don't want to carry that weight anytime i need to analyse some information type.

Video tutorial in the works, please be patient.

Share this post


Link to post
Share on other sites

Great. It is done under dev branch? Asking, because on stable 1.04 it probably isn't working, as supposed due to:

ctrlAddEventHandler

As of Arma 3 v1.05.111658 ctrlAddEventHandler and displayAddEventHandler support script Code in addition to String [1]

RPT:

Error in expression <amespace getVariable "GAM_plotControl") ctrlAddEventHandler ["Draw", {[_this] ca>
 Error position: <ctrlAddEventHandler ["Draw", {[_this] ca>
 Error Type code, expected String
File gam_dataplot\addons\gam_dataplot.sqf, line 564
Error in expression <))};
GAM_LSwitch = true;
findDisplay 46 displayAddEventHandler ["keyup", {
if (_>
 Error position: <displayAddEventHandler ["keyup", {
if (_>
 Error Type code, expected String
File gam_dataplot\addons\gam_dataplot.sqf, line 55

I allowed myself to correct that by replacing {} with "" in three places and re-pack pbo. Now it is working, but display covers whole screen, where green graph is at the bottom of the screen, while rest - at the top. Also whole thing is gone after launching Splendid Camera mode, permanently gone, unless I miss some key to bring it back on screen.

Edited by Rydygier

Share this post


Link to post
Share on other sites

thanks for heads up. Yes, currently using the new format (not too worried being only in dev since this is mostly directed at developing, and ultimately it should pass over to main branch). Glad you know the drill to workaround it.

The misplacement of the graph is more serious and i must look into it. If this bug stays for long in the main branch i'll put myself to it, i'll see what happens changing to the old format while in dev. (If only changing branches was as simple as a click, afaik, there's the whole downloading thing)

Re. splendid camera, i did not think of it at all, i usualy prefer the spectator and it worked from the get go, i understand the interest, and may try and provide support for it in the future.

Keeping notes. :)

Edited by gammadust

Share this post


Link to post
Share on other sites

Here is short video with my first attempt of custom use this awesome stuff.

Now, when I roughly grasped the rules, seems, that it is only a beginning of my close, long and happy relationship with DataPlot. :)

Share this post


Link to post
Share on other sites

ohhh very nice, i knew you were one of those that could give it a good ride. Also glad you're sorted (despite staying in main branch?). The graph misplacement issue must have been due to original demo positioning of graphs which by the looks of the video you have already customized to suit your screen area.

So much customization and i missed a text size parameter throughout, +1 on my list.

Just an explanation for those unaware: only the main control uses screen space coordinates (light background frame with DataPlot sig on top), all graphs are then placed in the world space, darker frames. Customizable map origin ([100,100]in demo) is a position coinciding with the top left corner of the main frame. When placing graphs one must give offsets from this position, since screen sizes vary with user, the control will show more or less give a specific set of graph settings. In the future i may look for a way to make this all automatic (reflowing), but for now i opted for flexibility versus use friendliness.

Looks good Rydygier, squeeze as much as you can from it to improve Hetman.

Share this post


Link to post
Share on other sites

Ooo.. nifty stuff here. Much appreciated gammadust. Looking forward to playing around with it. :cool:

Share this post


Link to post
Share on other sites
Looks good Rydygier, squeeze as much as you can from it to improve Hetman.

Oh yes, I have such plans... :) BTW my customization was pretty savage. Just to get dots for first graph bigger than tiny (to customize their size), I just ripped out scripts from the addon into mission folder (and disabled it in addon) to get direct access to drawing graph function. There may be much better way built-in, but that one was first I found. Well. Effect counts. Anyway mismatched text size may be result of my barbaric approach. Or not. Display covers whole screen without any actions from my side, same was in demo, I only customized dimensions of graphs.

Thanks for that great tool.

Share this post


Link to post
Share on other sites
Just to get dots for first graph bigger than tiny (to customize their size), I just ripped out scripts from the addon into mission folder (and disabled it in addon) to get direct access to drawing graph function. There may be much better way built-in, but that one was first I found.

There isn't, those dots are actually ellipses with a given ingame world size. I must scale those in proportion of screen size (1920x1080 here) that's why they're small.

+1 note (i knew there was something left in screen space ;))

Anyway mismatched text size may be result of my barbaric approach. Or not.

It isn't, text is supposedly engine dealt but following screen size, i have it tied to the zoom of the map control and i am placing it in world coordinates, apparently engine does some scaling compounded with the map zoom.

+2 for a multiplier

Display covers whole screen without any actions from my side, same was in demo, I only customized dimensions of graphs.

Contrary to the rest of dimensions the control main frame correctly scales with screen size: you have an 0.1 border on all sides, exacly as my differently sized screen. Changing position/size/zoom of graph is the intended procedure currently. Again i may change this for these basic graph settings to make it more intuitive.

+0.5 i shall see

Many thanks for input.

Share this post


Link to post
Share on other sites

Just wanted to pop in and give a quick thank you. Awesome stuff as always, gamma. Along with your AI vs AI work, I will most definitely be making use of these tools in the near future. I know these technical releases don't necessarily receive an overwhelming outpouring of love, but that's beacause the modders and scripters who make use of such diagnostic scripts are a relatively small subset of the ARMA community as a whole. For those of us engaged in scripting - AI scripting in particular - your efforts are invaluable. Many thanks for these releases! Also, love your YT videos; interesting and informative commentaries.

Share this post


Link to post
Share on other sites

Great job Gamma,

I am waiting for the tutorial video so that I can try to collect some AI data.

Thanks!

Share this post


Link to post
Share on other sites

^^ kind words appreciated :)

hang in tight, rl got a bit in the way this week, and i still have the DynamicBlending mod to attend, i'm planning the video (and maybe some updates) for the weekend.

@Fox

always appreciated for mirroring :)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×