Jump to content

skruis

Member
  • Content Count

    433
  • Joined

  • Last visited

  • Medals

Everything posted by skruis

  1. Alpha Download AthenaWeb_Alpha_20221104.zip AthenaWeb_Alpha_20221105.zip (resolves issue with error in getUnits.sqf) AthenaWeb_Alpha_20221105b.zip (resolves issue introduced by previous fix and resolves issue with unit tracking list) AthenaWeb_Alpha_20221105c.zip (resolves issue with icon rendering error out after unit death due to texture deletion) AthenaWeb_Alpha_20221107.zip (resolves follow after respawn, irrelevant units in follow list, adds all side colors, adds sleep to some scheduled routines, new signing key) AthenaWeb_Alpha_20221108.zip (adds weapons firing indicators) AthenaWeb_Alpha_20221108b.zip (adds team colors, ability to zoom via mouse wheel w/o disabling follow, resolved issue with follow failing after first disable) AthenaWeb_Alpha_20221109.zip (adds counter scale unit icons, unit labels, ability to control label visibility) AthenaWeb_Alpha_20221111.zip (adds group markers, icons based on weapons, user maintainable vehicle and weapon lists and ability to specify related icons/markers) AthenaWeb_Alpha_20221120.zip (adds locations, revamps the texture interfaces, misc little fixes) The installation directions will be as follows: Setup instructions 1. Download the zip 2. Extract the @athenaWeb folder to wherever you want 3. Add that location as a mod to Arma 4. Disable BattleEye 5. Launch Arma 6. Start a mission 7. After the mission starts, there should be an Athena folder in your appdata\roaming folder, so typically: c:\users\%username%\appData\roaming\Athena 8. Move the wwwroot and Library folders from the @athenaWeb folder to the Athena folder, so typically: c:\users\%username%\appData\roaming\Athena\wwwroot and c:\users\%username%\appData\roaming\Athena\Library 9. Restart Arma 10. Start a mission 11. Open a browser and navigate to http://localhost:28805 12. Click the menu button (bottom center) 13. Click the play button 14. You do not yet have the map exported so you'll end up waiting for a bit for the extension to export the map, and then the app to retrieve the map from the extension. The status notifications are minimal but they get the point across. What are you testing 1. The basics. 2. Does the extension start? If it does, and you load a new world, it'll start exporting immediately. 3. Does the web app open when you browse to the address in the browser? 4. How does it work for you on mobile, a tablet, whatever? (I'll look into preventing 'sleep' later but from my brief research: it's subjective so I can't guarantee you don't have to keep waking your phone up) 5. How does it work over extended sessions? I've tested for as long as it takes to export some maps and drive around for a bit. Known Issues 1. The play/stop buttons generate errors and fail to work after the first play click. Refresh the browser. I haven't focused on this feature or spent much time learning the ins and outs of Microsoft's SignalR javascript client. 2. There's an issue deleting multiple maps at a time in the app. It silently fails when trying to delete the chunks. 3. If you resize your screen, change its orientations, etc., the interactive area of the map does not resize with you. It's a simple fix. I just haven't gotten to it. Refresh the page and click start. 4. I have not disable PTZ on the page itself. PTZ works inside the map area but if you PTZ outside of it, the app itself rescales which is ... annoying. Refresh the page and click start. Things to know 1. The extension will save the exported worlds to your appData\Roaming\Athena\Worlds folder. They are stored as individual json files. They are indexed when the Extension starts in the first mission you launch. If you manually add files to this folder, you'll need to restart Arma. If a world is somehow corrupted, it would need to be deleted from here and then Arma restarted. 2. The default port for the webserver is 28805. This can be changed in the Athena.Server_X64.Settings.json file along with the log file names and the debug level. 0 = none, 1 = errors, 2 = debug message. Setting the debug level to 2 will generate a LOT of disk activity. Do not run ARMA in debug mode unless you're trying to debug or help me out. 3. The Athena\wwwroot folder is where the integrated web server's content is served from. You could theoretically open the index.html directly but then the path would be something like file://c/users/... The app assumes you've opened the website from the http://localhost:28805 url and will use that when connecting back to the webserver for the world/mission data. 4. The address http://localhost:28805 is works fine if you're using it on a 2nd monitor. If you want to use it on a separate device, like a phone, tablet, laptop, whatever, you'll have to figure out what your pc's ip address is. Typically that address will be in the 192.168.x.x, 10.x.x.x or 172.16-32.x.x address spaces. If you try http://<ipaddress>:28805 or really http://<ipaddress>:<port> address and it's not working, there are some troubleshooting steps you can try. First, make sure, after you've launched a mission that the webserver starts. You can use a command, in your command prompt, like 'netstat -an | more' to see the open ports. You should see something like 0.0.0.0:28805 in the list. If that's the case, the webserver started and opened a port. If you're have problems accessing it, you might have a software firewall in place. It's up to you to figure out how to open the port or trust the app in that firewall software. Also, check any log files generated in the Athena folder and post a question here. 5. Chunk rendering: background and foreground. The backgrouns is generated for all chunks when the map is loaded. You should adjust your settings to a scale that consumes less memory if you're running into memory issues in your devices browser. If the app suddenly crashes and restarts, you probably hit a memory issue. I don't think I have much access to the memory boundary information or my usage of it but I might be wrong. When you pan and zoom on the map, the foreground of the visible chunks may be rendered depending on your zoom. It will determine this when the viewport stops changing. So, a result of this is as you fly around or drive around, until you stop, you'll be seeing the 'background' of the chunks. I might add some sort of a timer that renders the foreground, again depending on zoom level, every X amount of seconds regardless. We'll see. Export Process 1. With @athenaweb enabled, as soon as you start a mission, if the extension doesn't have it indexed, it will trigger an export. It goes chunk to chunk (chunk is 500x500, cells are 50x50). It'll sample the elevations every 50m in the cell, determine the foliage levels, export the structures, roads, etc. per chunk. Then it will export the locations (even though they're not currently being shown in the app). All of that data will be stored in the json file in the worlds folder. 2. When the app is launched and the connection made, it will request the world from the extension so it can cache it locally. I plan to add a feature that lets you play 'live' where on each chunk render, it requests the chunk from the extension so there's no caching required. It'll be slower to render but less problematic. Back on subject: it asks for the mission, it gets the mission, it checks the world specified in the mission and tries to load it. If it has it in cache, it loads it. If it doesn't, it requests it from the extension. If the extension has it, it provides it to the app in a separate process. If it doesn't have it, as in its exporting to worlds folder, it will show you an error. When the world is eventually exported, it'll alert the app that a new world file is available. This triggers a re-request for the mission. The mission is sent to the app, the app checks the world specified in the mission and requests the world. This time the extension has it and supplies it separately to the app. When all of that is done, the map will eventually be loaded and you'll see your units on the screen. Future Additions 1. Map markers 2. Group waypoint markers 3. User ink / Map Drawing 4. Map locations 5. User anchors Other Thoughts 1. Is there a timeline on a workshop release? Not yet. I wouldn't want to replace the existing workshop item, even as this matures, with something that has fewer features. So until this one exceeds the current workshop item, I don't think I'll replace it. I might post it as a separate Workshop item eventually, like a 'dev branch', when I've simplified the installation instructions and had the extension whitelisted by BattleEye.
  2. Tank: Reschedule your trip 😉 iPhone Screenshot - Tracking Menu iPhone Screenshot - Tracking Controls - Bottom Left Corner Added the ability to follow a unit. You can choose to follow the player, whatever unit they may occupy, or a specific unit. It'll work like you expect. As you move in game, it'll follow you around. There's two ways to get to the unit selection form: via the menu button or via a quick access button in the bottom left of the screen. By default, it'll track the player. If you interact with the map surface, it'll disable tracking. You can quickly re-enable it via a little toggle also in the bottom left of the screen. I've added an interface that allows the user to delete cached copies of worlds. That same menu will be used to view the world offline later on when I've exposed the app as an installable PWA. I've resolved some of the issues when starting, restarting and switching missions across worlds. It seems to work well as long as the world has already been exported to the extension and the extension has it ready to provide it to the app. I'll have to add a message to tell the app a new world is available which would then prompt it to request the mission again which would then prompt it to request the world as part of the established workflow. Closer and closer.
  3. Athena Web - Updates Demo Video (YouTube) Ive added the realtime communication component and the icons for the units. Its pretty basic as the viewport isnt currently setup to track the target unit but its already very promising. Unit positions and directions are updated with minimal delay. Theres some bugs to work out when switching missions and I want to add unit viewport tracking. Should have an alpha this weekend.
  4. Screenshot - Web App - Malden - Zoomed Out Screenshot - Web App - Malden - Zoomed In Screenshot - Web App - Basic Menu Screenshot - Web App - Settings Menu Status Update I've solved the memory issues. Rendering Malden consumes around 140MB of system memory. You have some control over the rendering options. They're currently set for compatibility and performance so it should be usable on most phones. I've tested in Safari, Chrome and Edge on iOS. It's surprisingly fluid on all of them. I've added a basic mobile touch friendly interface. Nice big buttons Supports pinch to zoom, panning, etc. I'll expand on the interface later ... to provide immediate access to the typical Athena functions: unit tracking, unit list, etc. when running the app on a device with a larger screen. I've added the ability to store the maps offline using indexedDb. I'll add an interface later I've resolved the performance issues. I daresay it's more performant than Athena Desktop though we'll see how it ends up after all of the functionality is added back in. My next steps Add real time communication between the Extension and the WebApp. I plan to use SignalR to manage a websocket. It should provide the frequency required for smooth updates. Adding SignalR between the Extension and the WebApp will also provide a test bed for eventually releasing a revised community server that's http/s based and since it's .net6, it could be packaged for hosting on linux as well. Add unit tracking to the WebApp After those 2 things are accomplished, I'll release an alpha for download. There will be a couple hoops to jump through because of technical issues. I'll resolve them later but for now, you'll have to copy folders/files to a few places. Oh also, I looked into ink tracking. It looks like BIS exposed the map ink via the marker system. I should eventually be able to grab and display that in Athena as well. I'm not sure if the reverse is true though: if I can supply ink. Inking in Athena is probably going to be possible but it won't be nearly as fluid as it was before just because I won't have access to the Windows API's ... it's a web app. Sad.
  5. Altis - Kavala Kavala - Desktop Altis - Kavala Kavala - iOS I played around with blazor (too many hoops to get to javascript - maybe in the future if I can repackage this into a blazor app), .net maui (not mature enough), and uno (was frustrated by this point) and they were overkill for what I'm trying to do. So, it's HTML and JS. You'll notice in the screenshots that this is an Athena map hosted in a web browser. I'm using pixi.js for the rendering. It's a bit of a memory hog at the present. I have to do a couple of things to improve performance and conserve memory. It's strange seeing an Athena map on iOS...pinch to zoom, pan, etc. is all supported. Remember though, this is all hosted in the extension so at the present, Arma has to be running. There's no data stored on the webapp. I 'might' be able to use the database storage for offline caching/viewing. When it gets to that point, I'll probably have to turn it into a PWA (a website that presents itself as an installable app) rather than a traditional website. We'll see how it goes.
  6. Yea, well, there's 2 projects: Athena as you know it and the Athena related project. Athena as you know it will always be service independent meaning it won't rely on a central server that I control. That's just not what I want for the project. The extension I'm working on for the next version of Athena contains an embedded web server (kestrel) through which I plan to use signalr to communicate with the next version of Athena desktop which I'm currently writing in .net MAUI. .net MAUI supports Android, iOS, Mac and Windows so you should be able to get it on whatever device you're using. How well it runs on those devices will be a different story. Athena consumes around 500-600MB of memory so low end devices will probably have a hard time. iOS devices, because of the store, will be a bit of a pita to deploy to. I'm pretty sure I'll need a mac to compile it and I don't have one. The map export process is finalized and should be much more reliable than the previous version. No more json. The map isn't built in the app anymore. The data is kept in the extension dll which builds the data into a map file and stores it in the user's \appdata\roaming\athena\worlds folder. Then the Athena client will pull the map from the extension via HTTP and cache it separately. I want to say the export process for Stratis, on my pc took less than 2 minutes and came it at less than 20MB. If memory serves, that's quite a bit faster than the currently available version. I'll probably release an alpha of the next version of Athena Desktop in the next week or so. None of the fancy stuff. It'll just be map exports, player tracking and it will be ugly. It's a complete rewrite so stuff like orbats, waypoints, markers, recording/playback, etc. That stuff is way off. The ink feature, though I loved it, will probably get dropped until .net Maiu adds some sort of stylus support. I might be able to rig an ugly line drawing method via touch. We'll see. The Athena related project is actually a separate turn based game that lives completely outside of ARMA. ARMA is still used but it's behind the scenes. I'll be playtesting it with a few buddies and then I'll ask if anyone here wants to try it out. It will be multiplayer only so you'll need at least 2 people per campaign. I'm not sure if it'll actually be any fun since it's really more about managing war than actually fighting it. Eventually, the management aspect might lead to you or others fighting the war but not at first and only if the project finds some success. It's probably not something that'll appeal to everyone but I find it interesting and it's a fun project.
  7. Considering a new art style for an Athena/ARMA adjacent project. The island of Altis athena.grid.wip.20211021_02.png The airport and surrounding area athena.grid.wip.20221021.png Both versions, current public and this in development version sample the terrain every so many meters and then try to create something presentable. There were some oddities with the contour tracing in the public version that I didn't like. With this new approach, I'm sampling every 50m to create 50x50 cells whose height is the average of its 4 samples, coloring based on land/sea, shading for elevation, then shading for forest density. Then once I have all the cells at or above specific heights, I'm marching around them to create the contours. It's less goofy and more consistent than the previous contouring process but the art style takes a little getting used to which over the course of the last week, I have gotten used to it and actually started to like it. For what I'm planning on using this for, a cell based approach lines up better with the functionality I have planned. I've also made use of the newer extension support BIS added to avoid having to string everything into JSON objects, allowing me to avoid all of the formatting bugs I introduced via that method which are causing these reports about random maps not importing for users. Additionally, I've cleaned up a lot of the import routine, am grabbing additional structure data such as whether or not a given structure can be occupied and, again, with the help of BIS's other scripting improvements, I've been able to improve road rendering quite a bit. The screenshot I linked to is a very early look at the changes. You'll notice I'm missing the location names, airfields, that powerlines should be rendered as black lines instead of as buildings, etc. Those things are rather easy to resolve assuming BIS and modders runways are detectable via onRoads, matched to terrain object type "hide", grab their dir (angle) and then can have their dimensions grabbed via their bounding boxes. That's a big assumption. If anyone knows if there's a different way to detect runway dimensions, please let me know. That being said, a new release is far off. I wasted time dabbling in Unity creating/destroying terrain mesh dynamically (seeing as how I basically have mesh data) using the sampling data. It worked but wasn't worth it. It resulted in essentially running two games at once on the same computer. Athena Desktop tends to consume more memory than cpu because it's basically an image viewer with other stuff layered on top. The mesh approach in Unity consumed both and some GPU resources so .... nope. None of the Unity knowledge was applicable elsewhere in my life either. This new project though I'm hoping to have primarily be web based so I'm interested in porting the rendering engine to an HTML/WASM application. For my purposes, the mapping data will be stored in a database and exposed via an API. For a pure Athena install though, it gets more interesting. A webapp only has access to so much storage space and has to rely on the caching api of the browser. It really has little control so imagine exporting Altis for an hour and having it dumped by your browser. Arma, and its extensions, have access to everything on your pc or rather, everything your account has access to on your pc, unless BIS has implemented some controls I'm not aware of. It would make more sense to have the extension store the mapping data and act as a data warehouse to the web app which running locally. That's a big change. Half of Athena Desktop would move into the extension and then Arma would have to be running iot to use Athena eliminating an offline mode but I don't even know if offline is important to the user base. I'm not actively playing Arma or planning missions for a group so I don't need offline support. The plus side to this and I think it's a major one is that it gets easier to support non windows devices, including mobile, because it's a webapp. The extension if it's compiled to .net core or later might be able to run on Linux as well. Well, anyways, that's the status. Not sure how many of you are still paying attention to this project so thanks for reading. Let me know your thoughts on the new look.
  8. @kibyde A native Windows applications built on the UWP framework doesn't have that ability I don't think ... but I'll look into it. Turns out it can: https://stackoverflow.com/questions/45262879/in-uwp-app-windows-10-how-can-i-prevent-windows-os-from-entering-sleep-mode Will do.
  9. It's embarrassing to reply to these requests so late BUT: 1. Athena Designer mod is horribly out of date. What you can do is unpack the pbo, modify the scripts yourself to grab every unit, repack it and use it locally. You won't be able to join servers but you will get the ability to use it for local debugging. 2. The site basically just pointed back to the Steam page. So ... go to the Steam page. 3. Sometimes, there are some random JSON formatting errors that cause the deserialization to fail. If the relay is starting, there's a debug option that lets you capture the output from the game. You can run that through a JSON validation utility and it'll help you to identify what the problem is. What I've run into before is that some special characters in people's profile names aren't escaped (I know: I'm a newb) and that can be the culprit. Otherwise, the mods status is: I'm rewriting it. From the ground, up as a native Windows 10 app so everyone that asked for Pinch-to-Zoom is getting it. The relay's functions are being moved into the Extension so the problem some people run into with the relay process not launching is going away. The communications protocol is being overhauled. The data collection scripts are being overhauled. The map export process is changing to a more unit based method that should be more reliable and self documenting in case of failure. I've added support for mission designers, through scripting, to limit the 'scopes' of data that the users can collect (player, player group, player side, player + player side group leaders, all or specific units) and the user can select the scope they want from the app, which should help people that want to use Athena in very large missions with numerous AI by narrowing the data set. I'm making the app look more ... militaristic too. I have no actual knowledge of how military equipment looks and I do not intend to be bound by the reality of similar devices when the idea is more fun. The look of the map is likely going to change as well ... some people might hate it, some people might like it. I think it looks cool and different but we'll see. Sorry for all the delays. Life.
  10. @Eutyches Any progress? If it helps, I can post a screen of the misc references for each of the projects. @andyruler10 I'm in the middle of completely overhauling the map export process. @The Whitestrake I originally envisioned the ACS running as a service eventually. Because it was a very early release, I expected problems and I wanted to set an expectation that none of the data it held should be considered 'permanent'. It's matured a little bit but there's still an odd bug with the maps invalidating after a while...I haven't nailed that down yet. When I circle back to the ACS, I'll re-engineer it as a 2 part component: a service and a user interaction app.
  11. Not sure I understand the question. You want to record sessions from the server side? For that, you'll want the Athena AAR workshop item. That includes the server side mod and the logger utility which should be run on the server. It will connect to the relay running on the server, collect the mission info and store it in a zip.
  12. Ok, will investigate. However, I've been playing around w/ Unity. Might take the opportunity to perform a rewrite. We'll see.
  13. Probably the buttons. I had the slider bigger at one point and even though it was easier to touch, the underlying control was still finnicky to use via touch. Would you prefer the buttons zoom in and out as you press them or tap for incremental zoom?
  14. @viper4aa Updates are planned. Wrapping them up and getting them out is proving elusive though. I am aware of some issues people are having with some of the newer maps. That's my highest priority issue right now but time for Athena is limited. @kibyde It's difficult to implement pinch to zoom with the framework Athena Desktop was built on. Originally, it was a native Windows 8 app but Windows 7 was more popular so I had to port it to a Win 7 framework which didn't support pinch to zoom very well. I had hoped to port it to become a Windows 10 app but Microsoft kind of dropped the ball with their UWP rollout. I'm still interested in that port … it would give me the opportunity to clean up a lot of the code but it would make more sense to target a cross platform framework that also supports Windows 10 rather than pursuing native Windows 10. But then that means I have to take more time to learn that completely new framework in addition to a code cleanup so the whole 'move to a more modern framework with more modern feature support' effort is on hold.
  15. @eunos I'm not exactly sure what you're trying to do. Do you not want to use Athena 'live' but only use it for drawing in the same room on an ACS?
  16. Hey Jan! Thanks! It's a 'planned' feature. Been 'planned' for a while though...
  17. Yea, it's not restricted to map downloads. The frames that are sent from the game to the app are in JSON format and JSON uses " to surround strings. So, when the mission starts and frames are sent to the app, the app tries to decode those frames and the unexpected " throws off the reconstruction of the frame (the process of turning it from a string of characters into a frame 'object' - deserialization). It actually throws an error, you just don't see it. So, because the app is never able to reconstruct the frame, it's never able to figure out what map you're playing on and determine if the app already has the map data or not. If it doesn't have the map, it prompts you to import it and if you do, it tells Arma to run some scripts and send the data to the app and it works pretty well. There are improvements I want to make but no matter what, it all relies on the frames being serialized and deserialized properly.
  18. Yea, it's a little embarrassing that I didn't escape the 'special' characters. I was probably in a hurry to see it work, skipped that and then when it worked, moved on to something else. Anyways, glad it's working and sorry you've had to permanently alter your identity ;-) I wonder how many of the other "It's not working!" reports were because they had quotes in the profile name....
  19. Of all the things, get rid of the quotes around Matic in your Arma profile name...honestly, it's always something stupid that I overlooked. I forgot that I released that Connection Status feature. How helpful :-)
  20. Just curious, how do you know its sending frames?
  21. @En1gm4tic, I don't believe it will work (automatically) if you move it from the workshop folder. The auto launch assumes that the relay is in the workshop folder. So, assuming everything is back to defaults, if you open Task Manager after launching Arma and starting a mission, do you see the relay running? Look for Athena Relay or relay.exe in your processes tab. If the relay isn't running, there's a problem. You can try launching the relay manually but it will auto close if it fails to detect that A3 is running. To prevent that behavior, you have to modify the config file and set auto close to false. Let me know what happens.
  22. I havent seen that particular bug. Athena doesnt generate keystrokes. It does listen for them via a windows hook and then take actions within the app. One of the unreleased changes I made drops the windows hook and instead listens for keys via the ‘custom controls’ function in the arma keybinds. Basically, a script is launched when the custom control keybind is triggered that then notifies athena that the control was triggered. Based on your control to action mappings in Athena, an action may or may not occur. That being said, theres definitely a bug in the current version where a action appears unbound but athena is still listening for it. You can try setting the keybind, highlight the field and then hit escape to clear it again...I think its escape. If theres a stored setting, that might clear it. As far as continuing to move forward, like I said, Athena doesnt generate keystroke kea and it definitely doesnt issue a command to walk forward :-D, it ‘might’ be possible that theres a bug in the windows hook thats somehow causing a repeat of keystrokes or perhaps if the system is a little sluggish or laggy, that the arma io might be flaking out. Arma has a history of input lag so there might be conditions that are amplifying that issue. As fas as rotating, its on my radar. I love when a gps rotates to my orientation. Its possible but not a high priority unfortunately. Ill look into artimis. Ive been thinking of toying around with unity but ... time. I appreciate you saying that you would pay for it but I wouldnt be able to provide a level of support that would make me feel comfortable accepting payments. Btw - the cockpit is really f***ing cool!
  23. That's odd... is your workshop folder in a non-standard location?
  24. Listener.Listen :: Only one usage of each socket address (protocol/network address/port) is normally permitted. This indicates that a relay is already running or another application is using the same port. You shouldn't have to start anything manually and the relay should close automatically when Arma does. Check your processes for relay.exe (Athena Relay) and if it's running, shut it down and try launching Arma again. The relay 'should' start automatically when the first mission in Arma starts...you should see the relay process start and remain running via Task Manager. Then you should be able to launch Athena Desktop and click 'Start'. At that point, it should prompt to import/export.
  25. @stingray_ I don't think it will. I believe Arma Linux supports extensions but I haven't written the Linux extension. Sorry.
×