Jump to content
skruis

Athena - An ARMA 2nd Screen Application

Recommended Posts

Fantastic! I'm very interested to hear what you find out.

Share this post


Link to post
Share on other sites
1 hour ago, skruis said:

 Also, how do you feel about the visual changes in the map vs the desktop app? It should be fairly easy for me to expose the colors for customization too. Might even add color profiles so users can customize day/night schemes.

I'm happy with the app being lower res, but it could use being a little clearer when more zoomed, for sure. Day/night would be fancy.
If you're ready for bug/feature requests, only 2 so far...

1) On respawn, the map doesn't recentre if the respawn is base type.

2) Probably for much further down the line, but if player icons could flash red when they shoot, that'd be cool.

 

If there's anything a mission maker could do to make Athena better or to help the application, let me know. I mean, if you've ever thought "Oh, if the mission designer did X, it would make my life easier", now is the time to say 🙂
 

Share this post


Link to post
Share on other sites
1 hour ago, skruis said:

Fantastic! I'm very interested to hear what you find out.

Right... mission startup without Athena is about 45 seconds, with Athena is 4 minutes. This is with an existing json.
Now, it's a highly dynamic mission, so startup varies, but it's rarely more than a minute. I'm running it from the editor/ play/multiplayer to get these times.
It's a persistent battlefield mission and JIPs to the mission that's already up on my server are not impacted. My mission runs for weeks so this 'cold start' is quite a rare thing, I can live with that slow startup once in a few weeks, but the scale of the time difference is such that I thought I should mention it.

Note that the undef'd var supporton in DEP/airpatrols has been fixed in my dev version and doesn't affect the times.

Share this post


Link to post
Share on other sites

Ill investigate the startup delays. I noticed the same thing even in my own testing.

 

Base Respawn: Was it following player or a specific unit? As soon as the units data exports and shows that its being occupied by the player, it should recenter. Ill investigate. 
 

Shooting: Absolutely. 
 

Mission Designers: Theres a couple of variables attached to the player namespace. The intent is that a mission designer/server admin can limit the unit scopes available to the player and them another variable used for the players choice. Ill get you the vars later in a bit but if its something that interests you, using them, you can control if its just you, your group, you and all group leaders, you and all on your side or everyone in the mission.

Share this post


Link to post
Share on other sites
28 minutes ago, skruis said:

Base Respawn: Was it following player or a specific unit? As soon as the units data exports and shows that its being occupied by the player, it should recenter. Ill investigate. 

 

It was me as a player, alone in the server. I'll get another couple in and observe what happens.

 

29 minutes ago, skruis said:

Mission Designers: Theres a couple of variables attached to the player namespace. The intent is that a mission designer/server admin can limit the unit scopes available to the player and them another variable used for the players choice. Ill get you the vars later in a bit but if its something that interests you, using them, you can control if its just you, your group, you and all group leaders, you and all on your side or everyone in the mission.

If this means I'll be able to exclude some entities from showing on the map such as friendly AI, then yes, I'm all for that. I have the destroyer offshore as artillery and cruise missile support providers so there's 2 AI gunners I don't want to show up, AI pilots (drone and dropship) likewise.

Share this post


Link to post
Share on other sites
4 hours ago, skruis said:

Base Respawn: Was it following player or a specific unit? As soon as the units data exports and shows that its being occupied by the player, it should recenter. Ill investigate. 
 

It happens on all players. The map doesn't recentre after respawn.
Also, units get duplicated in the unit tracking select unit dropdown after respawn along with a unit called Error: No vehicle. These are deads.

Share this post


Link to post
Share on other sites

Thanks for all the feedback Tank. I'll investigate all of this tomorrow.

  • Like 1

Share this post


Link to post
Share on other sites
On 11/6/2022 at 8:31 AM, Tankbuster said:

I'm happy with the app being lower res, but it could use being a little clearer when more zoomed, for sure. Day/night would be fancy.
If you're ready for bug/feature requests, only 2 so far...

1) On respawn, the map doesn't recentre if the respawn is base type.

2) Probably for much further down the line, but if player icons could flash red when they shoot, that'd be cool.

 

If there's anything a mission maker could do to make Athena better or to help the application, let me know. I mean, if you've ever thought "Oh, if the mission designer did X, it would make my life easier", now is the time to say 🙂
 

 

It 'should' increase in fidelity when you stop moving. Additionally, there's a setting in the app that lets you control the resolution of the chunks background and foreground. The background is rendered on map load and is always visible. So to keep memory usage low, you'll want that to keep the scale of the background low. That's especially important on a mobile device. If you're on a desktop device and have memory to spare, increase the scale. The foreground scale is used when a chunk comes into view and the re-rendering is triggered. At this time, re-rending is triggered when you stop moving. I'll probably add a timer of some sort to the process as well so that it updates every X seconds regardless of your activity level.

 

Even though the map is exported once, to the extension, the maps are still rendered dynamically by the app using the chunk data. This includes the 50x50 cells, structures, roads, etc. This is because I wanted the app to have access to the raw data and for there to be some flexibility when it comes to what data to show/hide when the user zooms in/out, clicks on things, etc.

 

Or are you referring to the squareness of the cells? I debated about using the contour of the zero elevation as a 'fill' but ... meh.

  • Like 1

Share this post


Link to post
Share on other sites
22 hours ago, Tankbuster said:

If this means I'll be able to exclude some entities from showing on the map such as friendly AI, then yes, I'm all for that. I have the destroyer offshore as artillery and cruise missile support providers so there's 2 AI gunners I don't want to show up, AI pilots (drone and dropship) likewise.

 

Yes, there are several modes:

 

//1 - Player
//2 - Units in Player Group (including player)
//4 - Units on Player Side (including player)
//8 - Player + Group Leaders on Player Side
//16 - All Units (including player)
//32 - Player + Group Leaders on All Sides
//64 - Specific Units (No automated collection of units, manually supplied by mission editor/scripters)

 

These will be exposed in the app eventually. There are two variables in the player namespace that can be exposed to mission designers/admins/etc:

 

player setVariable ["ATHENA_SCOPES", 15, true]; //this is the sum of the scopes you want to be available to the player
player setVariable ["ATHENA_SCOPE", 4, true]; //this is the selected scope
player setVariable ["ATHENA_SCOPE_UNITS", [], false];

 

The intent is to allow 3rd parties to set a limit on the available options and to allow the user to select one of those options. Now that I'm looking at the implementation, I think I need to add a check to see if the player variable is already set to a value before I set it to my default. I'll also need to add a notification method from in the game to the app to notify the user that the available options have changed. So, the feature needs some work but if you want to try playing around with it as is, you can.

 

The value of the ATHENA_SCOPES variable is the sum of the options you want to make available to the users. By default, the user will be able to select any of the first 4 options (1+2+4+8). The ATHENA_SCOPE variable is what they selected. By default, all units on the side will be displayed. I had intended to change the default to the player and group leaders on the same side but for testing, I wanted to match the expectations from the current version of Athena.

 

The ATHENA_SCOPE_UNITS variable is the variable that's populated via the unit collection script. If you set ATHENA_SCOPE to 64, nothing will appear in Athena unless you, as a mission designer or admin, manually add units, including the player, to the ATHENA_SCOPE_UNITS array.

 

Note: The 64 value shown is actually 32 in the C version you're currently running. I've added the Player + Group Leaders on All Sides option to the next version.

 

The selected scope (ATHENA_SCOPE) is used to collect a list of units. From the list of units, the groups and also the vehicles they occupy will be collected. Then the scripts will continue to cycle through those lists (units, groups, vehicles) and provide extended information about them: their netIds, names, rank, weapons, group leader, crew members, etc in the scheduled environment because I don't expect them to change often. On EachFrame, in the unscheduled environment, the units and vehicle positions, direction and speed are collected and sent to the app as updates because those will change often.

 

  • Like 1

Share this post


Link to post
Share on other sites
On 11/6/2022 at 8:52 AM, Tankbuster said:

Right... mission startup without Athena is about 45 seconds, with Athena is 4 minutes.

 

When you say load times, do you mean the time until the player view is loaded or do you mean until your generated tasks begin and the players are moved from the start island to the first AO?

Share this post


Link to post
Share on other sites

AthenaWeb_Alpha_20221107.zip

 

This update adds 'sleep' commands to the data collection routines which might alleviate the mission startup issues depending on whether or not the issue is time until the players interface is loaded or time until your objective setup sequence (the additional mission prep scripts you've included) is complete. If it's the objective setup, which I think it is, I might not be able to do much about that because to the best of my knowledge, it's really a scheduled environment issue: a flurry of heavy scripts trying to run at the same time. I'd be open to suggestions about minimizing impact. If that's the case though, in this particular example, it should only really affect the server and not the players ... which I think you pointed out.

 

Additionally, I believe I've resolved the following issues:

 

1. Not following the player after respawn.

2. Units that are no longer 'alive' or who have not had position updates for the last 60 updates/frames are no longer displayed in the follow list

3. I've added colors for civ, east, guer, unknown, dead units should now have their colors correctly tinted to civilian colors as dead units are civilian I believe

4. A new signing key for AthenaWeb (included in keys folder)

 

This update affects the pbos (addons folder) and the wwwroot folders. I don't believe the extension (dll) was recompiled as no changes were needed.

 

Tank, there was a unit in your mission, actually 2 that shared the same name (name unit) but had different netIds. They existed in the beginning but after the objective setup completed and the player was moved, they were removed from the mission. So I don't think the unit was duplicated, in the follow menu, there were just 2 different units with different netIds that had the same name. I think it was Ryan something.

 

Btw: I got my butt handed to me in your mission.

Share this post


Link to post
Share on other sites
5 hours ago, skruis said:

 

When you say load times, do you mean the time until the player view is loaded or do you mean until your generated tasks begin and the players are moved from the start island to the first AO?

Yes, the time between mission start and the players being moved to the beachhead

Share this post


Link to post
Share on other sites
4 hours ago, skruis said:

AthenaWeb_Alpha_20221107.zip

 

This update adds 'sleep' commands to the data collection routines which might alleviate the mission startup issues depending on whether or not the issue is time until the players interface is loaded or time until your objective setup sequence (the additional mission prep scripts you've included) is complete. If it's the objective setup, which I think it is, I might not be able to do much about that because to the best of my knowledge, it's really a scheduled environment issue: a flurry of heavy scripts trying to run at the same time. I'd be open to suggestions about minimizing impact. If that's the case though, in this particular example, it should only really affect the server and not the players ... which I think you pointed out.

 

It's an issue that doesn't affect JIP. All the joins bar one are JIP, so we can live with that. I think the issue is that my mission and your addon are trying to do a heck of a lot in that first minute. I can live with that too. I only mentioned it because of the scale of the slowdown - From 45 seconds to 4 minutes. I'm with you; It's most likely the scheduler working overtime and is unlikely to affect other missions as badly as mine.
I've optimised the heck out of it in the last 8 years. The first builds used to take 10 minutes before the players got in. 🙂 Things like hilltops, valleys,  large buildings, bridges, deep water, patrol routes, roads and forests were all found by the mission at run time. Now, they use preprepared arrays.

 

4 hours ago, skruis said:

 

1. Not following the player after respawn.

 

2. Units that are no longer 'alive' or who have not had position updates for the last 60 updates/frames are no longer displayed in the follow list

3. I've added colors for civ, east, guer, unknown, dead units should now have their colors correctly tinted to civilian colors as dead units are civilian I believe

4. A new signing key for AthenaWeb (included in keys folder)

 

This update affects the pbos (addons folder) and the wwwroot folders. I don't believe the extension (dll) was recompiled as no changes were needed.

 

Excellent work!

 

4 hours ago, skruis said:

 

Tank, there was a unit in your mission, actually 2 that shared the same name (name unit) but had different netIds. They existed in the beginning but after the objective setup completed and the player was moved, they were removed from the mission. So I don't think the unit was duplicated, in the follow menu, there were just 2 different units with different netIds that had the same name. I think it was Ryan something.

 

Btw: I got my butt handed to me in your mission.

The duplicated names thing is random. It's often the arty or cruise gunners on the ship. As we discussed yesterday, I'll be excluding them from the Athena output anyway.
For reasons I haven't been able to get full answers to, the mission creates an HQ entity for each side in use at 0,0,0. Sometimes, their name gets reused.  I don't remember what I do with these, I think I experimented with deleting them, but don't remember what I settled with.

It's a multiplayer mission - if you go in single-handed, you will get mashed. 🙂 Even when there are a dozen or more of us, sometimes we get terribly bogged down for an hour or so. The airfield assault is supposed to be a desperate affair. It gets easier later on. You're welcome to play with us  -  2000 GMT on Fridays.

I read all the stuff about variables. I like what you're doing. It's good when a mod maker has a feel for the mission designer's art. For example, if the server has a lot of players, one of the secondary missions kidnaps a player, whisks him away to an enemy safehouse in an enemy town and players have to go rescue him. I'd want Athena to show zilch for the kidnapped player and not show his position to the rest ofm the players.

 

I'll try the new version soon and report back. Monday was hard and I'm going to sleep. 🙂

Share this post


Link to post
Share on other sites
1 hour ago, Tankbuster said:

I've optimised the heck out of it in the last 8 years. The first builds used to take 10 minutes before the players got in. 🙂 Things like hilltops, valleys,  large buildings, bridges, deep water, patrol routes, roads and forests were all found by the mission at run time. Now, they use preprepared arrays.

I'm guessing that's why I see your comments on the community wiki pretty frequently.

 

1 hour ago, Tankbuster said:

As we discussed yesterday, I'll be excluding them from the Athena output anyway.

Only reason I brought it up was because after my corrections, the same name was listed twice and I wanted you to know it wasn't a duplicate...that it actually was 2 units with the same name so we wouldn't be chasing a bug.

 

1 hour ago, Tankbuster said:

You're welcome to play with us  -  2000 GMT on Fridays.

I might take you up on that. I think that's 1400 Central US.

 

1 hour ago, Tankbuster said:

I'd want Athena to show zilch for the kidnapped player and not show his position to the rest ofm the players.

To that point, do you think it's worthwhile for me to expose an array to which units can be added that will never be shown in Athena? I'm assuming that prisoner would be on the same side as the players and probably a group leader. The only way to hide them currently is to change their side...maybe change their rating so that they're sideEnemy but I think that { side _x } forEach allUnits; would still return west if if they were determined to be sideEnemy. What do you think? 

 

2 hours ago, Tankbuster said:

Monday was hard and I'm going to sleep.

Sounds good. Thanks for all the help!

Share this post


Link to post
Share on other sites

Been working on the firedMan event handler

 

  • Like 1

Share this post


Link to post
Share on other sites

New release with:

 

1. Team Colors

2. Ability to use mouse wheel to zoom without disabling the follow function automatically

3. Fixed issue with follow failing after first disable

 

AthenaWeb_Alpha_20221108b.zip

Share this post


Link to post
Share on other sites

New release with:

 

1. Counter scaling unit icons (they stay the same size regardless of zoom level)

2. Unit labels

3. Unit labels can be toggled via a new slider control in the bottom left of the app

4. Which units have their labels shown can be cycled via a new button in the bottom left of the app

5. Pressing the button will cycle through: Player, Player Group, Player + Group Leaders, Player Side, All Units and then back to player

 

Screenshot (Player + Group Leaders)

AthenaWeb_20221109.png

 

Download

AthenaWeb_Alpha_20221109.zip

  • Like 1

Share this post


Link to post
Share on other sites

Working on some new stuff. 

 

Unit Icons + Group Marker (Screenshot)

Unit icons are determined in this order:

1. Group Leader (leader icon)

2. Has Medikit (medic icon)

3. Secondary Weapon

4. Primary Weapon

5. Default Icon

 

Unit Icon Menu (Screenshot)

I've, um, with BIS's help, have supplied some default icons. They're 64x64 transparent PNG's. You can supply alternate icons if you want but this screen is how you define your unit icons. I don't have icons for marksman, AT or GL ... I thought I did, maybe I do, I'll check, but I can see those being some icons that should be added.

 

Weapon Class Menu (Screenshot)

If the unit is not a group leader and does not possess a medikit, the weapons the unit carriers, primary/secondary, will be used to determine what icon is used. In this menu, you can associate a weapon class with an icon you define in the unit icon form. This UI will have to be changed because it's not efficient for large quantities. I'll probably change the class textbox to a select and maybe just not allow you to add new classes via the interface. Speaking of which, the weapons and vehicles will be added to the lists automatically as you play. New weapons and vehicles will be added as they're discovered.

 

I'm planning something very similar for the group icons as well. There will be a way to define group markers and then you'll be able to tie vehicle classes to group markers. If the group leader occupies a vehicle and that vehicle's class is assocaited with a group marker, the marker will change from the default infantry icon to whatever marker is selected for that vehicle class. I might check all of the units in the group and update the icon based on the first vehicle that's occupied but I think going by the group leader is probably good enough. Additionally, I'll probably print the first letter of the group name and the first letter of the X-Y set to the left and then the group number to the right of the group icon. So, like, a group Alpha 1-2 will show up as A1 [ICON] 2. I'll do a bit of research but I think that's right.

 

Both of these efforts will allow you to set the correct icons when using mods.

Share this post


Link to post
Share on other sites

The group marker menu and vehicle class menus have been added. The GUI's for the weapons/vehicle classes have been revised to replace the clickable class names with a scrollable select control with 20 options showing by default. So, as you encounter vehicles, they'll appear on the list and you can set the desired marker for them. Again, the marker will be selected based on the vehicle occupied by the group leader.

 

Additionally, I've added group identifiers to the sides of the group markers. So, typically, we have something like Alpha1-1. A1 will be displayed on the left of the marker and 1 will be displayed on the right. It's not entirely positionally correct according to NATO standards but ... I really don't care and the sizing of the markers in Athena Web vs reading font styles makes this into a practical issue.

 

Group Markers Screenshot

 

As you can see, with the group markers, unit icons and unit names (in this screenshot, the visible tags were set to player + leaders), it's rather easy to see who's who and get an idea of each groups capabilities. You'll notice that A1-5 and A2-4 are motorized: their leaders are in Hunter HMG's. Everyone else is on foot.

 

I'll release an update shortly.

Share this post


Link to post
Share on other sites
1 hour ago, skruis said:

The group marker menu and vehicle class menus have been added. The GUI's for the weapons/vehicle classes have been revised to replace the clickable class names with a scrollable select control with 20 options showing by default. So, as you encounter vehicles, they'll appear on the list and you can set the desired marker for them. Again, the marker will be selected based on the vehicle occupied by the group leader.

 

Additionally, I've added group identifiers to the sides of the group markers. So, typically, we have something like Alpha1-1. A1 will be displayed on the left of the marker and 1 will be displayed on the right. It's not entirely positionally correct according to NATO standards but ... I really don't care and the sizing of the markers in Athena Web vs reading font styles makes this into a practical issue.

 

Group Markers Screenshot

 

As you can see, with the group markers, unit icons and unit names (in this screenshot, the visible tags were set to player + leaders), it's rather easy to see who's who and get an idea of each groups capabilities. You'll notice that A1-5 and A2-4 are motorized: their leaders are in Hunter HMG's. Everyone else is on foot.

 

I'll release an update shortly.

Wow. I've just looked at that screenshot. I really like that. So professional

  • Like 1

Share this post


Link to post
Share on other sites

AthenaWeb_Alpha_20221111.zip

 

Thanks Tank!

 

New update released. You'll have to replace the dll, addons, wwwroot and there's a new folder that you need top copy to the <appdata>\roaming\Athena folder: Library which is included in this zip. It contains several files:

 

1. groupMarkers.json

2. unitIcons.json

3. vehicleClasses.json

4. weaponClasses.json

 

These files are maintained by the extension and are persistent. New vehicles and weapons, as missions are played, are added to the vehicleClasses and weaponClasses files. There's currently no bulk export of all the vehicles and weapons. It works on an ongoing basis. When the app starts or the apps copy of these libraries are updated, the contents of these files are then retrieved by the app via HTTP and are made available to the user. If it's a new mission or a weapon is used mid-mission, you can go into the Vehicles and Weapons menus and click the refresh button to pull down the latest class list so you can make sure the right icons appear. As you add or update the classes, the changes are sent back to the extension webserver and the json files are updated. The reason for this is in case you dump your temporary internet files, the data survives. The same scheme is used for the groupMarkers and unitIcons libraries except those libraries are entirely user maintained. I'll probably have to add a way to 'import' and 'export' values from these files ... because I probably won't want to overwrite your copies moving forward. I had intended on staging the libraries with all the vehicles and all the weapons from vanilla but ... I'd like to force you to add different things so you can give me feedback on the process.

Share this post


Link to post
Share on other sites
4 minutes ago, skruis said:

AthenaWeb_Alpha_20221111.zip

 

Thanks Tank!

 

New update released. You'll have to replace the dll, addons, wwwroot and there's a new folder that you need top copy to the <appdata>\roaming\Athena folder: Library which is included in this zip. It contains several files:

 

1. groupMarkers.json

2. unitIcons.json

3. vehicleClasses.json

4. weaponClasses.json

 

These files are maintained by the extension and are persistent. New vehicles and weapons, as missions are played, are added to the vehicleClasses and weaponClasses files. There's currently no bulk export of all the vehicles and weapons. It works on an ongoing basis. When the app starts or the apps copy of these libraries are updated, the contents of these files are then retrieved by the app via HTTP and are made available to the user. If it's a new mission or a weapon is used mid-mission, you can go into the Vehicles and Weapons menus and click the refresh button to pull down the latest class list so you can make sure the right icons appear. As you add or update the classes, the changes are sent back to the extension webserver and the json files are updated. The reason for this is in case you dump your temporary internet files, the data survives. The same scheme is used for the groupMarkers and unitIcons libraries except those libraries are entirely user maintained. I'll probably have to add a way to 'import' and 'export' values from these files ... because I probably won't want to overwrite your copies moving forward. I had intended on staging the libraries with all the vehicles and all the weapons from vanilla but ... I'd like to force you to add different things so you can give me feedback on the process.

OK, we just started a mission with 09 version. We'll go with this for now

Share this post


Link to post
Share on other sites
1 minute ago, Tankbuster said:

OK, we just started a mission with 09 version. We'll go with this for now

 

Tank, are there multiple Athene users in your group?

Share this post


Link to post
Share on other sites

Sort of. I'm running the mod, 2 are connecting to my client

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

×