#dev_rc_branch

1 messages · Page 8 of 1

tall pumice
#

huh. so it's caching the terrain cells or something?

#

i'm not going below 6k view distance anymore, i rather not load a savegame anymore 😄

scarlet root
#

can you check if it matters if you are close to the terrain border vs terrain center

harsh orbit
#

it's a bug in game code. I sent a temporary fix to Dedmen. I guess it is related to being around the border yeah

harsh orbit
# tall pumice huh. so it's caching the terrain cells or something?

yeah, the game wants to preload the area around the player when you load from a save. the game allows up to 15s for this.
but if it still has time left, it still tries to preload the objects too, and then it updates how many objects are left.
but there's a problem with this updating part, and for some reason it doesn't update properly (didn't check why exactly, but view distance falling outside the border is related)
so it keeps doing this for 15s, doing basically nothing

tall pumice
#

nice

meager sage
#

yeah, reducing overall draw distance from 3500 to 3100 resulted in instant-ish load time on my machine as well 🤣

fervent remnant
turbid magnet
#

thanks

harsh orbit
#

Is game freeze when moving outside the terrain a known issue? (in latest dev/v11 perf)
happens in 3den too

#

open in 3den then hold S to go back (don't move the camera any other way)
(might be related to the terrain issue I reported earlier; my view dist: 4000, quality: ultra)

harsh orbit
#

it doesn't happen in prof so I guess Dedmen must've fixed it

full sonnet
#

WebBrowser.
There is actually a limit on what I can send to the browser.

Maximum file size that can be loaded is (textures or just LoadFile contents) is about 0x17FFF00, or 25 megabytes. (A3 maximum string length in script is 1MB)
Now surely that is enough for Javascript libraries and textures (Consider that textures are encoded and compressed as WebP).

Larger content would be possible, but then I need to implement splitting it up and sending it in chunks. Which I currently think I won't do.
I can also implement gzip compression for loading files if they are too large, but unless you are loading text files, it probably won't do much

For Webpack web projects, I will come up with something to make it easier to split things into multiple files.

tall pumice
#

where would this be relevant? video files?

#

have a hard time imagining what webpage would be >25mb

full sonnet
#

yeah probably.
Well JS frameworks get large today.
And if you bundle everything into one file, including embedded images and fonts and stuff, it might reach 25mb

And video files is workaroundable, by splitting it into 20mb parts in pbo, and then combining it afterwards in JS.

mental fulcrum
#

you can configure your webpack to splint into chunks, you should not have single 25mb file 🫠

umbral orchid
lucid totem
full sonnet
carmine juniper
#

Web browser?

full sonnet
#

yeah

carmine juniper
#

Hmmm

#

I have to try it at least

full sonnet
carmine juniper
#

But can this radar screen run DOOM

full sonnet
#

This is offline, so you'd have to bundle DOOM files inside the mission

keen sundial
#

Can you UI to texture that?!

meager sage
#

(should still fit inside the what, 25MB filesize limit?) 🤣

full sonnet
# keen sundial Can you UI to texture that?!

Its just a UI Control, so yes sure.
Just updating the texture would be meh. You would probably have to EachFrame update it, you currently can't know if the web control has a new image. Something to add still.

full sonnet
keen sundial
#

Now it can run doom like that too? Very good.

full sonnet
#

There is a problem with sending javascript with unicode.. ugh.

The engine converts all script that is executed to base64 and back.
The encoding doesn't matter, but the decoding has two choices, decode into ASCII, which is native javascript functionality and is fast.
Or decode into UTF8, which is slow..

Engine does:
atob("Wydpcm44cWdpR3RFVScsMjM5My4xMyw1OTczLjczLCfQmmEzMiDQktCc0KQg0KHQodCh0KAnLCdlbmVteSdd")
-> "['irn8qgiGtEU',2393.13,5973.73,'Ð\u009aa32 Ð\u0092Ð\u009cФ СССР','enemy']"
Which messes up the name

I could do

function b64DecodeUnicode(str) {
    // Going backwards: from bytestream, to percent-encoding, to original string.
    return decodeURIComponent(atob(str).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
}
b64DecodeUnicode("Wydpcm44cWdpR3RFVScsMjM5My4xMyw1OTczLjczLCfQmmEzMiDQktCc0KQg0KHQodCh0KAnLCdlbmVteSdd");

-> "['irn8qgiGtEU',2393.13,5973.73,'Кa32 ВМФ СССР','enemy']"

But doing this on every JS execution is wasting CPU time.. Especially if it doesn't contain any data where unicode is even possible.

Alternative is to let the engine send the ASCII decoded one, and let the receiver convert it to unicode only where needed,

function TextAsUTF8(str: string) {
    // Going backwards: from bytestream, to percent-encoding, to original string.
    return decodeURIComponent(str.split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
}
TextAsUTF8(inputArray[3]);

-> 'Кa32 ВМФ СССР'

Probably the second choice as its more efficient, but that means its something the user needs to keep in mind, and we probably also need to document on wiki

tall pumice
#

documenting stuff on the wiki? the horror :x

calm wasp
#

Lou 💪🏻

leaden heron
# full sonnet There ya go

is it possible now to play videos with an transparent effect? for example rain drops on the screen when its raining

full sonnet
#

yes

leaden heron
#

juicy

harsh orbit
wise dragon
#

Cdlc release shouldn't require a platform update right, no need to update servers?

full sonnet
#

I think that's correct.
As long as you don't run the new CDLC. The update contains bugfixes required for it, and flagging it as "official DLC" which afaik is required for server browser duties

if you don't actually load it then doesn't matter

steel rune
mental fulcrum
#

yeah, that changelog has all fixes we found out to be needed during the Closed Beta.

wise dragon
#

Word thanks all

prisma frigate
#

Is anyone having application hang on spawning transport helicopters? 🤔
I tested a bunch trying to reproduce this issue. I didn't play Arma for a couple months and when I got back to it some of my missions that deal with spawning transport helicopters extractions tend to crash the second I spawn them.
This does not happen if I spawn them at the beginning of the mission, but mainly sometime after.
I'll keep testing to find proper steps to reproduce

full sonnet
#

64bit Listen Server may freeze a few moments after mission start
This also applies to non-server.

#

Its probably a specific kind of helicopter, like one from RHS?

prisma frigate
#

I tested with one RHS and one from CUP, happens with both. Missions without helicopter spawns ran just fine. Attack helicopters spawned perfectly fine too.
I'm not on my PC right now but I'll try to narrow it down more and give you more details when I get back on it.

full sonnet
#

I know the details. I already fixed it

full sonnet
#

I have seen that I have a unread DM

prisma frigate
feral tangle
#

Fixed: "LOD flicker"
🤔

harsh orbit
feral tangle
#

Oh.

#

Lol.

harsh orbit
full sonnet
#

it should be fully fixed

harsh orbit
full sonnet
#

the optimization i added and reverted was reverted in dev branch too

full sonnet
#

32bit hell..
Game keeps crashing because out of memory.
Looking into it, 500mb is used JUST for script location info, for printing where script errors happened (if they happen).

1/8th of the total usable memory, used up only for the case that a script error might possibly happen meowsweats

Looks like 32bit builds will loose the ability to log where a script error happened hmmyes

tall pumice
#

who's still using the 32bit build?

full sonnet
#

I'd wish it to be no-one

lucid totem
unreal arrow
full sonnet
#

Or its just visual studio being a liar.
It told me there are 16 million source locations at 450mb.

But when I run a counter, I only get to about 700k, at.. 19mb
32bit in 2.20 uses 300mb more ram to main menu, than 2.18. And crashes with out of memory when loading a mission 🤔

full sonnet
#

Mh even 2.18 32bit already crashes in a somewhat simple mission on altis, hitting the 4gb virtual memory limit meowsweats
There might be no saving it

halcyon moth
#

Armahosts only provides 32-bit HCs for some reason. Others give you a budget server option that's 32-bit, or at least defaults to 32-bit.

unreal arrow
tall pumice
#

retextured uniform in ground holder?

unreal arrow
#

yeah

wise dragon
#

luv u KK

#

no homo

lucid totem
#

they had a baby
KKJW

wise dragon
#

nvm dont luv u anymore

teal elk
teal snow
gray quarry
teal elk
#

windows 7 in 2024?

unreal arrow
#

win 7 is 🥰

teal elk
#

i prefer win xp, love the aero aestetics

viscid onyx
teal elk
#

oh, how winxp aestetics was called then

#

with windows 7 the things started to be more "flat", i like the big old curvy buttons and interfaces

ivory ridge
#

Luna

tepid dock
teal elk
tepid dock
pallid cliff
#

What if I told you I know devs who patch their software just to make it win7 compatible 😬

gray quarry
gray quarry
teal elk
pallid cliff
#

My guess is that in some countries where internet cafes are still a thing, Windows 7 is still the standard.

#

But that's just an educated guess.

lament crow
#

windows 7 remains on some corporate offices specially government offices that are not regular Microsoft clients and vintage computers meant to play old games without internet connection

earnest mural
#

i would use win 7 if it were still supported

pallid cliff
#

Also you can use windows 11 for free without pirating it. Just never activate it😄

scenic widget
#

Linus video out 👀

pallid cliff
tepid dock
#

(oddly enough, no vista there at all, though...)

#

Also: I can tell you that there are many people who reuse the same password everywhere and that doesn't make that solution a better one 😉

pallid cliff
unreal arrow
#

now now, it's too late to back down

gray quarry
tall pumice
#

ps: singleplayer scenarios are showing game mode since a while

#

this is also on stable now

#

i dont think sp scenarios should have it

tall pumice
#

subtitles in the east wind campaign intro (AAN video) are broken

#

noticed this because we use the same script for the extraction and air control intros to show subtitles, and they stop working after the first one now

unreal arrow
tall pumice
#

ok i have no idea what happened, but suddenly i cant reproduce it anymore. i have this for weeks now and suddenly it's gone

#

i swear to god this game is driving me into madness

#

anyways. at least AAN video subtitles are still broken.

#

the issue seems to be related to the timings [_ctrl, "STR_A3_EPA_Campaign_Intro_01", 4] spawn _showSubtitle; sleep 4.17;

#

the duration time (4) needs to be reduced. i guess the sleep now makes it so the next line runs too fast(?) and then the displays conflict

#

or it needs an additional wait in the _showSubtitle function, so it won't commit a new ctrl before the old one is gone, i have no idea

#

the script is in missions_f_epa\a3\missions_f_epa\Campaign\Missions\A_in.Stratis\initIntro.sqf if anyone wants to check

full sonnet
tall pumice
#

so i was not dreaming it up?

winter crescent
#

It was a new issue for a while, but fixed some time ago indeed.

lucid totem
#

don't listen to them, you were dreaming it up - they are part of your hallucination as well!

tall pumice
#

is any of this even real 😭

light lintel
#

It's real virtuality

carmine juniper
#

Sanity check. 2.19.152501 should have web browser already? Doesn't seem to be able to use plug-and-play mission like UILayoutTestWebWiki.VR Ded shared

#

At least Chrome console works, but nothing else works

full sonnet
#

Yes. It's also on Prof

#

Does chrome console show error?

There were some API changes.
The wiki example should work.
My kill tracker example might not because it includes its own API implementation (you'd have to build latest to work)

#

I think you'd either get RPT error if the script command is bad. Or browser console error if some security check denied something

carmine juniper
#

Ah sorry must've mentioned commands are also working. At least are recognized

#

And no, what I only get in Chrome console is
Ignored call to 'alert()'. The document is sandboxed, and the 'allow-modals' keyword is not set.

full sonnet
#

The JavaScript file probably has a "window.a3api =..."
In it.
That needs to be removed, so it doesn't overwrite the one that's provided by the engine

gray quarry
#

question, does the steamworks api change here require a newer steam client? if so which version is the minimum?

#

and like the webview stuff

full sonnet
#

No

gray quarry
#

oh great, thank you, that's good to know that the minimum steam client version requirement wasn't bumped

full sonnet
#

Actually I think one of the main reasons steam is dropping win7, is that chromium dropped it.
But they probably just deliver a older version that's not being patched anymore

gray quarry
#

they could've upgraded it to cef 109 and have more longevity

#

they were on a much older cef version

carmine juniper
lucid totem
#

Let's make a Take On JavaScript now 😄

verbal venture
#

Bad.
Any Take On JavaScript is just bad.

full sonnet
#

There is my radar blob example (doesn't use the API at all)

#

Actually from that you can't learn much as that is webpack and not editable blobcloseenjoy

#

It's a sandbox! Throw sand!
Aaaaarg my eyes ahhhh

carmine juniper
#

Ah duh, okay I guess

teal elk
#

there is a chance to have a command to set the ceiling of clouds?

full sonnet
#

Doesn't that already exist, just not work?

#

simulSet* ?

carmine juniper
#

Ceiling, as in, height?

unreal arrow
full sonnet
#

Yeah but we just recently added some back

carmine juniper
#

Did you?

harsh orbit
#

There was humidity iirc

#

I don't remember what else think_turtle

tall pumice
#

does humidity actually work? i mean, i know the command works, but does it influence the weather in some way?

#

different clouds etc?

#

or is it just used to determine the amount of dust getting kicked up by vehicles

teal elk
#

well technically clouds are generated when the combination on pressure and temperature reach the dew point... but i dont think arma simulate it

#

have some extra parameters to change in the clouds would be nice... but arma isnt a flight simulator game... lol

tulip bane
#

Maybe you could do that kind of commands but the clouds are still driven by some keyframe parameters, so the clouds always changes to the values in the config? So what you actually need to do is to do config editing to get the best result?

#

Of course those commands help out to find good values with live edit😁

trim crane
#

Clouds are so fucked that at this point I want to just do setSimulWeatherLayers 0; on all clients to have A2 clouds and call it a day

#

Finally gonna let you have proper control over weather without keyframe crap

tulip bane
#

you can likely get some decent looking clouds if you remove the absurd amount of noise effects used by default

lament crow
unreal arrow
unreal arrow
trim crane
wise dragon
#

ugly workaround is my dads name for my mum

teal elk
teal elk
unreal arrow
#

you can use utils 5 to search for commands from debug console

teal elk
#

btw im using developer tools, im not sure if that changes something

#

the only simulSet its SimulSetHumidity

unreal arrow
#

there are more just enter simul into search

teal elk
# unreal arrow there are more just enter simul into search

i wanted to change the cloud base altitude, i saw that post in the forums with commands to change clouds, but even when i use utils 5 i only found a few

setsimulweatherlayers
simulCloudDensity
simulCloudOcclusion
simulInClouds
simulsethumidity
simulweathersync
unreal arrow
#

it is not 'even', it is what is available to you

teal elk
unreal arrow
#

if it is not there then it s not in the game

#

you have to speak to @full sonnet he was adding something

teal elk
#

Yes, I’ve asked about the possibility of having that command in the future, but he probably has higher priorities at the moment 🙂

full sonnet
full sonnet
full sonnet
#

^ That is now testable on profiling branch, if you want to play around ❤️
Hoping that we find all the issues with it before its finally released meowsweats

full sonnet
# mental fulcrum you can configure your webpack to splint into chunks, you should not have single...

Problem with that is. That works just fine if you have a normal online project that can load data from URLs
But with this in offline mode, you'd need to load the content of the chunks from inside PBO's.

The change is somewhat simple, and I did it with my blazor example.

Original:
await import("module.js") // Triggers a http download from http://baseURL/module.js
Replace with
await import(createObjectUrl(await A3API.RequestFile("module.js")))
// Fetch the file from within Arma (mission folder in this case)
// Wrap it into a blob url (blob:null/02d1b185-0433-4cb3-9501-a2b1967428ac), and load that that in import.

I am doing that by literally doing string replace in the already webpacked and minified code of the dotnet runtime stuff.
https://github.com/dedmen/ArmaWebBrowserTests/blob/master/C%23_BlazorWebassembly/wwwroot/indexArma.html#L185
https://github.com/dedmen/ArmaWebBrowserTests/blob/master/C%23_BlazorWebassembly/wwwroot/indexArma.html#L135
And by replacing the whole window.fetch
If webpack would use fetch to grab extra files that'd be easy, but afaik it doesn't.

I thought I could maybe make a webpack plugin to do that automatically. To translate the dynamic imports for chunks (or other modules) into loads like this.
But looking at documentation I realize I know waaaaaaay not enough about webpack to attempt that.
For one you'd need the modules to be dynamic imports, because it looks like "static" (I don't know what the normal one is called) imports cannot use async code.. I'd assume chunk splitting would do that automatically somehow. But after it generates the split chunks, you'd then have to replace the loading code somehow.

Probably someone else can figure that out someday, or maybe no-one will ever use this stuff blobdoggoshruggoogly

untold basalt
full sonnet
#

It's a control that you can put web stuff in

#

I'm not "replacing" anything

untold basalt
#

oh i just mean can you use it in place of.

misty aspen
tepid dock
gray quarry
#

how secure is the webassembly thing in a3 so far?

misty aspen
#

Cant wait to build new things with it

#

Who knows, maybe we even get SQS too soon

full sonnet
full sonnet
gray quarry
#

that depends, what browser does this ship again then?

umbral orchid
#

netscape navigator

full sonnet
full sonnet
#

Base64 Encode/Decode and deflate Compression/Decompression.
It also works with controlNull, so its also usable by normal script without webbrowser. If for whatever reason you'd need compression in script blobdoggoshruggoogly

full sonnet
#

yes

nova wigeon
#

nice!

full sonnet
#

Just realized I need to add a output length limit for the inflate 😄
1mebibyte :U

#

Actually no, the max length limit for strings is 10mb? then that

nova wigeon
#

oh also does it work in PreStart? or do you need to wait until preInit?

full sonnet
#

No limitations

nova wigeon
#

that is cool 😛

pallid cliff
full sonnet
pallid cliff
#

I am aware of that. But now I can compress it 😄

harsh orbit
#

You're gonna "compress" a string using base64?! meowsweats

#

You do know that a base64 string is larger than input data right?!

mental fulcrum
#

he's talking about deflate

harsh orbit
#

I read that out of context 😅

pallid cliff
#

I was just joking anyway before someone pitchforks me

gilded basin
#

and how much SQF interop 🤪

misty aspen
#

Definetly want to use it within a mission at some point if I can figure out web-dev stuff

verbal venture
#

I can see someone going "this would be cool in a mission" and learn html, CSS and js just to use it in Arma...
(We all did it with sqf...)

full sonnet
# gilded basin Neat How much JS interop is allowed?

SQF can execute javascript, up to 25mb iirc (but SQF strings are limited to 10mb anyway)
Javascript can send string back via "alert" to SQF eventhandler, I have not tested the length limit.
It is basically async callExtension and extension callbacks.

That's all the interop there is. Is that enough or more? There is no limit on "how much" you could do with that.

That system is used by API that engine itself provides which lets you read text files and textures/images from pbo's

grim lion
#

I was wondering if the WebBrowser Control will be a feature that will eventually make it to the stable branch? The wiki says that it's still under review so to say, and playing around with it has really refined how one can make UIs.

carmine juniper
#

Eventually

keen sundial
grim lion
#

@keen sundial I'm not sure what your asking about, you can set the webbrowser control sizing, then using css you can go into depth on how to make the website responsive whether it's a live website or one you create using html files within a pbo or mission.

misty aspen
#

could be really neat to simulate interacting with computer/other devices etc.

full sonnet
grim lion
#

I'm having a hard time understanding what the wiki is saying on what the CT_EXTENSION would be used for. It sounds like it just creates ui elements, and if so what would they be used for then?

full sonnet
#

Extensions are .dll files.
So you can implement your UI control in C++/C#/Whatever and do literally whatever. Another Webbrowser, a whole game, Minecraft, whatever.

full sonnet
grim lion
full sonnet
#

yes

sly umbra
#

AS i remember Arma Reforger supports HTTP Request, any chance for it in arma 3?

full sonnet
#

Not planned

grim lion
#

That's really awesome, hopefully you'll share how you did that in the future, I'm a bit lost on how one would set that up

full sonnet
#

Here it is.
Page switching is done by replacing the whole <body> tag (I was a bit lazy, this is easy because it keeps the <head> and its scripts untouched, less stuff to load each time, and my scripts just run continuous and control the whole thing)
The whole state is just a json object, containing what page we're on and what buttons are active.
Any time you press a button, the state is sent over remoteExec to every player (and on-texture display), and when they receive new state they update the page accordingly.
And SQF has eventhandlers for the state changing, and because we have fromJSON and Hashmaps now, its easy to read it

torpid sand
#

I am on my knees begging

misty aspen
#

Now thats the kinda incentives we need

#

dedmen plis no hack pc :(

#

actually its fine you can have it, you've given us enough cool arma stuff

full sonnet
lament crow
waxen vigil
full sonnet
lament crow
full sonnet
#

No I know the error. Its because the script code contains debug code.
When using it in production, you probably wouldn't try to open debug console

full sonnet
#

So our 32bit exe's are crashing very often.
The good old 3fps bug from the 2016 era, followed by a crash. The game simply doesn't have enough memory to run.

But if we look at a memory map (first image), the cause is painfully obvious.

The game itself only uses about 1GiB of memory in main menu (The private data section is what matters there)
But we use 1.2GiB for stack memory?
There are hundreds of threads, using 8MiB each. Why is that?

Well Arma needs alot of stack space to run, we do need 8MiB on our main thread, else we crash with stack overflow.
On windows, there is only one way to set how much memory the main thread gets.
But that way has a evil side effect, it not only sets the size for the main thread, it also sets the default for all other threads.

So when you use libraries like steam, physx, graphics drivers, windows API's. They all create threads, and most of them just use the default size.
So all of these, are now 8MiB large, instead of the default 1MiB.
Arma itself only uses about 50 threads on my system.
But due to other libraries, we have over 200 threads, each allocating 8MiB of space, even though they don't actually need that much.

If we instead change our approach, and leave the default alone, and manually give our threads more memory at runtime...
Bam, 1.2GiB of stack memory, down to 200MiB.
We just freed 1 whole gigabyte of memory that the 32bit game version can now use. One quarter of its maximum usable memory.
(This should also translate to about 1gb of less memory usage on 64bit systems)

(But still, please stop using 32bit 😠)

gray quarry
#

so, we got to the point where 32 bits is no longer feasible/bearable, time to update the requirements to be 64 bits only
which was the last known good 32 bits version?

full sonnet
#

The last known 32bit version without issues was before 2016

#

2.20 will probably be usable again with that much more usable space. But still stop using it

gray quarry
#

maybe change the launcher to no longer offer a platform dropdown and instead replace that with a exe dropdown meaning you can run arma3server, profiling, dev, etc if present

full sonnet
#

We have to offer it

#

And selecting exe is not feasible, I'm pretty sure you already asked that several times

gray quarry
#

launcher code is too spaghetti for this?

#

yeah i have, i am also forgetful.

#

get steamworks bi folks to remove 32 bits from the requirements maybe?
i gotta ask, is it part of the legal documents not drop support for 32 bits or any other legacy requirement?

#

anyways thank you for answering!

tall pumice
full sonnet
#

because we sold it to people saying it would work on 32bit

tall pumice
#

13 years ago! 😄

#

make a blog post / announcement that with the next major update, 32bit will be dropped. maybe setup a steam branch so users can revert to that if they want to. then after few months, fuck the rest and release the update with 64bit only 😄

gray quarry
#

yeah that

tepid dock
# full sonnet because we sold it to people saying it would work on 32bit

I was about to write how it makes sense and how sad that is, but then I decided to do some digging, and found articles writing about Valve themselves dropping 32bit support for their own Dota 2 game in 2021.
Aaaaand, when I was about to write that I realized that it turns out that BI already states OS:Windows 7 SP1 (64bit) as the "minimum" system requirement (!), so it looks like they updated that already.

Maybe that gives some leverage to try convincing some higher-ups to drop support for 32bit executables? (since you can't run a 64bit OS on a 32bit machine)

gray quarry
#

an excellent question, does arma 3 support windows vista or xp or were those not supported from the beginning?

#

also isnt arma 3 like 11 years old from 2013 instead of 2009/2011? im not too sure but someone said 13 years lol so im questioning that

normal current
#

seems like Arma 3 has only said 64 bit in its requirements since atleast dec 2018 (waybackmachine doesn't go further back for A3) https://web.archive.org/web/20181222061540/https://store.steampowered.com/app/107410/Arma_3/

Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war.

tall pumice
gray quarry
#

oh yeah, project zomboid already didn't have good win7 support

normal current
#

Running windows 7 in 2024 is mad. 10 I can understand, but 7?

tall pumice
#

at some point you need to cut the old stuff off. it's not even supported by microsoft anymore, so why bother

normal current
gray quarry
light lintel
#

Wait but who is running a non 64-bit capable processor in 2025?

tepid dock
#

I was about to say that. I can't imagine anyone playing the current Arma 3 version with a 32-bit CPU. Even in Singleplayer. The game performance would be unplayable.

tall pumice
#

and they are very loud if the game doesnt work

tepid dock
tall pumice
#

(not saying they play arma with that old hardware, but other games)

light lintel
#

Sadly steam hardware survey doesn't directly report AMD64 support, but looks like 100% steam users use a 64-bit OS.

tall pumice
#

or maybe those are the only ones who do a survey like that :p

light lintel
#

But it's random sample 😅

tall pumice
#

nah, you dont have to participate in the survey

#

last time i canned it as well, because i had no time / couldnt bother

light lintel
#

Yeah but I mean it's just pressing "okay"?

tall pumice
#

yes, too much work 😄

light lintel
#

Lol

tepid dock
#

Tbh the only real potential blocker that I see would be old 32bit extensions that people want to keep using (and the author disappeared, without source)

tall pumice
#

how many of those are there?

light lintel
#

(and should BI care? Probably isn't their responsibility?)

tall pumice
#

still. do we really want dedmen to suffer more than necessary to support some granny-old piece of software instead of having him spending time on cool new features

light lintel
#

I'm all for dropping it tbh

normal current
light lintel
#

But I'm also irrelevant lol

tepid dock
#

dedmen
I wouldn't mind dropping my ifdefs in my code either 🤷‍♂️

light lintel
tall pumice
#

maybe if you pirate the game 😄

tepid dock
#

A3 being on life support by the live ops team would be a really convenient argument to drop 32bit.
"You see... almost no one is working on A3 anymore, we don't have enough resources. We need to drop the 32bit executables if we want to continue supporting Arma. We care about you" kind of stuff 😛

light lintel
#

I guess if they can still access the 32-bit version (even if old) then wouldn't it satisfy any potential legal issue?

gray quarry
normal current
#

yeah i remembered wrong, they dropped support for w7

halcyon moth
#

Note that the vast majority of 32-bit usage is server providers running it intentionally on 64-bit hardware.

gray quarry
#

why

tepid dock
gray quarry
#

32 bits os for lighter ram operations? lol

halcyon moth
#

Well, if you gave them a 32-bit branch option they'd probably use it.

gray quarry
#

see how many upgrade or stubbornly stay if you dont announce the branch but put it

halcyon moth
#

Is that 1GB stack reduction making it to perf as well?

light lintel
tepid dock
halcyon moth
#

I don't know, they got quite angry last time I asked them :P

#

But the general argument seemed to be that it "uses less memory".

#

Given that the HCs were lucky to stay up for ten minutes with a 3CB modset, that is technically true.

full sonnet
keen sundial
#

IIRC the „3fps bug“ started appearing after the windows update that added the Xbox overlay.

harsh orbit
normal current
grim lion
#

Some wip images of a moc os using CT_WEBBROWSER in sandbox mode:

lunar bane
#

👀

#

The future is coming ♡

light lintel
#

But can it run Doom

carmine juniper
#

Yes

full sonnet
#

Or I'm sure there's a web assembly in browser Linux command line...
Oh wow the possibilities xD

tacit spade
#

Hello one question

#

Development for singleplayer multicore
Profiling for multiplayer multicore is this right?

formal cipher
#

No, multicore is on any branch.
Both dev and prof branches have the new improvements, and both are SP and MP compatible. Dev branch is not compatible with the main branch, but prof is.

tacit spade
#

okay thank you

grim lion
#

@full sonnet It's all from scratch using html, css and javascript, with some paa images packed in a pbo. As of right now all the html is in one file, while the js is loaded up in separate js files and the css is in it's own file being loaded up. Definitely would like to separate each part of the html into it's own component html file and have it loaded up, just have to play around a bit more, and implement more custom apps, lol

full sonnet
#

That sounds amazing. And better than what I could come up with so far 😄

#

With the way I solved arma:// url's in blazor I had an idea.
I could let the engine, install a global fetch() wrapper.
So that whenever you fetch() a file from a arma:// URL, it would fetch it out of the game.
Would still only work with text files though.
Maybe that'd make it a bit easier to use? But its just a different looking wrapper around the existing api

#

Maybe I could even register a service worker, that catches all file requests, so you can do literally <link href="arma://mainstyle.css" rel="stylesheet" />
But service worker seems to be issue that it only loads on second page load. I don't know how it interacts with the iframe, I don't even know if I can persistently register one.. Tons of messes, probably not worth it

full sonnet
carmine juniper
#

At this point Arma 3 is just a Dedmen's funny sandbox

pallid cliff
full sonnet
#

Taking the sand and making glass out of it

gray quarry
gray quarry
halcyon moth
#

It won't change.

#

Well, unless threads are being added over time, which is hopefully not the case.

#

"Driving for a while" just sounds like map loading.

solid island
#

man I can't wait to abuse this web browser renderer, this is huge

light lintel
gray quarry
full sonnet
full sonnet
solid island
#

Ive got two questions though:

  • would it make sense to use this instead of UI for vehicle MFDs? I was planning to use the UI-to-texture rendering in my aircraft mod, and while I relish the idea of using react to render and manage the state of the interactive MFDs, it sounds more resource expensive. Otherwise I'll gladly stick to using this approach to run doom and some other OS-like pages >:D
  • I see that we can run JS from SQF, but is there a way to pass the data back from the browser to the SQF script? i.e. trigger an event when a web button is clicked
full sonnet
# solid island Ive got two questions though: - would it make sense to use this instead of UI fo...

Yes. Inside the engine it essentially works like ui2tex does, except that instead of rendering a in-game ui into the texture, it renders the chromium browser image into the texture.

The webbrowser is processed inside steam. I actually have no idea what Steam's limits are on how many browsers can be open and such. So that is a certain risk.
But I think in reality you would not have more than a handful browsers at one time.
The steam ingame overlay uses the same API as we do, and that one can have atleast several dozen tabs open.

The engine actually just gets an image, and copies it. All of the javascript processing is done inside the steam process.
So performance concerns wise.

Passing data back can be done via this
https://community.bistudio.com/wiki/CT_WEBBROWSER#JSDialog

If you are in offline mode, you need to use the A3API to send back, example of that is at very bottom of the page

gray quarry
#

does it work with the steam overlay disabled?

full sonnet
#

haven't tried lol, it should. Steam documentation said nothing about that

gray quarry
#

fair

solid island
full sonnet
#

Correct

#

It will... looks up code

gray quarry
#

imagine rce

full sonnet
#

If any JSDialog eventhandler is present, it always uses that and never opens a dialog.
If there is no eventhandler, then it will only open a dialog, if the config option that I forgot to implement is enabled.

#

A allowOpenMessageBox=1 config entry that you would have to set to enable it to open a dialog
I don't even know if I want to add that though, if you wanted a dialog to happen, you could implement it yourself using the eventhandler.
Most likely I will not add native dialog function, but not decided yet

TLDR; It will never open a popup by default.

#

In my little project, I send json as alert. Then in script use fromJson to turn it into a hashmap.
Which then tells me what the script wants to tell me in a nicely structured way

solid island
#

that's neat, glad there's a two-way data exchange

#

Would make sense to rename it to something more generic? The function name implies that there's a specific effect but it's mostly about passing the data back to the game. Not a big deal though 😄

full sonnet
#

Under the hood it does an alert.
And if you don't use offline mode, you would trigger the Alert eventhandler, by running alert()

So either the API name doesn't fit the eventhandler like SendMessage vs JSAlert
Or the javascript alert() doesn't match like alert() vs JSMessage

#

Yeah its a bit confusing. But I prefer to keep the naming to match what it does under the hood

jaunty rain
#

That would allow for a lot modding wise, for interactable devices...

full sonnet
#

But the thought of putting a separate browser on everyone's uniform, doesn't seem nice

jaunty rain
#

I was more thinking locally

#

Like for ATAKs, or GPS

full sonnet
#

Ah! Yes

#

Well you'd use ui2texture AND inside there a Webbrowser control

jaunty rain
#

Yeah, and I'd assume a script would pass data into the control

full sonnet
#

Yeah

jaunty rain
#

And in the case of say, an ATAK, you could have a key to full screen the device, and click around

full sonnet
#

But for a gps, you could also just put a gps control into the ui2tex

jaunty rain
#

Otherwise, it would just be displayed on the uniform passively

jaunty rain
full sonnet
#

Fullscreen is complex. Because that will be a second display, a second browser instance.
Youd need to replicate the same view, and pass data between both browsers to synchronize them.

I have done that in an example I sent a couple days ago.
But it takes some effort

full sonnet
#

Technically I could make it so the same browser instance can be shown in multiple displays. But the displays would be the same pixel size so probably not

#

I guess for your use case it might even make sense to open a different "settings menu" UI, while the main one on the body is just a display

grim lion
#

@full sonnet What would the best approach be to render the in-game map for the WebBrowser, I know there's the rscmap control, but I would like to avoid using that if possible. Also any ideas on how I could use the components approach for different parts of the UI.

full sonnet
#

☠️

#

There is export SVG, but you can't get that into offline browser, unless you pregenerate it.

#

Don't know what u mean with components

grim lion
misty aspen
full sonnet
#

Dude do you work in webdev? 😄 How do you do that so easily xD

full sonnet
#

Actually, did you have issues with text inputs. I just found out we trigger key events out of order.
We do KeyPress, KeyDown, KeyUp
instead of
KeyDown, KeyPress, KeyUp
🤔 Not sure if that actually causes problems. I have one website where space key doesn't work, but in steam overlay space works, and online javascript keytester tells me the same stuff for both browsers blobdoggoshruggoogly

#

The browser itself seems to be very confused in general. The F7 key is the code for F24...
An the key, is the code "KeyD" but when I test it in a real browser, it says code "Space" thonk
How can it possibly mess this up

grim lion
#

The text inputs seem to be working fine, I haven't really tested them to much, but the few I did seemed good. I've been doing web development for years now as a hobby, amongst other hobbies, I actually build houses for my day job, lol

full sonnet
#

Yeah this is ultra weird.
Press F8 in normal chrome
key: 'F8', code: 'F8', keyCode: 119
Press F8 in-game browser
key: 'F8', code: 'Lang4', keyCode: 119

I'm sending the same keycode, how does it cause a different result 💀

grim lion
#

The first thing that comes to mind is the in-game browser not being able to detect/process different keyboard layouts properly

#

Like you said before, I think if you were to correctly process the key events in the correct order, it may resolve the issue, unless you've already tried and it's still acting strange

full sonnet
#

I'm sending events in correct order now.

I found where the value comes from.

keyCode 32 stands for the Space key.
But, Code 32, stands for KeyD https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values

I can only give it one number
So I can tell it
32 and get key: ' ', code: 'KeyD', keyCode: 32 all except "code" are correct.
Or I can tell it
57 and get key: '9', code: 'Space', keyCode: 57, and all except "code" are wrong XD

Its supposed to be the same browser API as the steam overlay.
And steam overlay does it correctly 🤔
And there is no API to set any keyboard layout or language. Fun!

grim lion
#

I'll have to test this out on my UI when I get done with work, that's quite the bug, lol

full sonnet
#

I'm writing a ticket to steam about it now 😄 That must be their bug, or some undocumented API to set the browser language or smth

full sonnet
#

Also I think no-one tested this on proton yet.
I see that Steam wants you to send it the "native" key code for key presses.
But the native linux codes are different than windows. I have no idea what it would do there

full sonnet
#

So. Steam support was too slow to reply, so I dug deeper.

https://github.com/SteamDatabase/SteamTracking/blob/8bdab7b1b8d2969e71bc4fe0702bc74e6e154896/Protobufs/htmlmessages.proto#L13
This is the message that steam internally sends. It has separate fields for keyCode and nativeKeyCode.
But the steam API, only lets me provide the nativeKeyCode.
It seems it just sets the same code into both properties. Which is wrong.

And it indeed passes the nativeKeyCode as both parameters
If I hack the steam dll, and pass nativeKeyCode=57 and keyCode=32 then..
Tadaa
key: ' ', code: 'Space', keyCode: 32
Fixed!

Is valve going to fix this?
Quite unlikely, they would need to publish a new SDK version.. I suppose they most likely will opt to not care :/

grim lion
#

So what will have to be done if steam doesn't fix this bug?

full sonnet
#

I will fix it myself 😄

gray quarry
#

patching steam from within arma in runtime?

full sonnet
#

KeyDown is fixed, KeyUp and KeyPress next week meowsweats

grim lion
#

I've been able to create a JavaScript framework within the sandbox environment which allows me to create components and apps for the OS, still a lot of work to do though, lol

green summit
grim lion
#

Status update on the OS Framework:

full sonnet
#

Gotta love it when pressing space actually sends a Space key press.
Those were the kinda unforseen problems I expected to find when starting with the webbrowser stuff.
It took this long to find them, and they're already fixed.

But they're only fixed on 64bit, so stop using 32bit! 😠

#

I am leaving the wrong order of the events. Because this way is more reliable, otherwise some presses would be delayed. So far the wrong order isn't causing issues in the web apps I tested, so I think its going to be fine

grim lion
#

I did some testing and I noticed that when I hit enter in a text box that it didn't go down to the next line. Still didn't stop me from creating the javascript framework for the os that's fully working in-game, lol

full sonnet
#

yeah the KeyPress event for enter is missin

tall pumice
#

you know what to do with 32bit 😄

full sonnet
#

ah the pain

full sonnet
#

I think all input problems will be fixed with next update (next prof). Atleast all the keys I tested now behave correctly

grim lion
#

WebApps anyone, what about a messenger, oh did I forget to mention working url and browser history?

carmine juniper
#

Are you building RVOS? meowsweats

full sonnet
#

MSN incoming

normal current
#

How about skype? KEK

light lintel
#

for division level meetings across altis?

grim lion
#

@carmine juniper essentially it's a virtual os in the sandbox mode using htm, css, and JavaScript framework that I put together. There's a lot of smoke and mirrors going on, lol, for example Internet explorer can only render WebApps that you've created within the framework, but it adds the illusion that your actually on a real website. The chat app is just using the mission namespace to store a hashMap of the active chat as well as player's status, the notepad does the same thing other then it stored a hashMap to the player profile namespace. There's a lot going on behind the scenes and even more to come. Also most of the apps will be pulling and sending data to and from the game. It's quite a little project, but I'm having some fun being able to use some hobby skills of mine, lol

full sonnet
#

It probably wouldn't be so hard to make the explorer be able to load any html files right?
Worst case just let javascript insert an iframe?

grim lion
#

Yep it wouldn't be to hard, right now the Web Apps have their own JavaScript and CSS files. The JavaScript file is using the commands like createElement, appendChild as well as a few others. I could easily update the Internet explorer to support reading from HTML files with only a few lines of code to tweak and add. Once I release the source code to the public I could totally see someone creating an extension to fetch live data/sites from the internet and then render it into the web browser, but that would be on them, lol

teal elk
#

can you make it run opf? lol

tall pumice
#

only 7 lines. where my humongous changelog at

grim lion
#

I've noticed that when the CT_WEBBROWSER window get's refreshed or an element within the window gets refresh the scroll wheel on the mouse no longer works, that you have to add an event handler for wheel that re-enables the mouse wheel after the refresh.

full sonnet
full sonnet
#

thonk
I added a hotfix into Ui2Tex, that it automatically triggers a displayUpdate if it contains textures that haven't loaded yet.
For koth's killfreed that was sometimes not loading images.

Now looking at the code... I don't know when I broke it, I forgot a [[nodiscard]] to notify me of this..

Yeah dude, you never set that variable meowfacepalm
It will only try one extra frame, and then abort. Its supposed to try up to 128
I'm also adding some debug logging to better see what's going on.
Maybe that also helps with Ampersand's (?) issue with it sometimes not loading

full sonnet
#

Open issue with webbrowser so far. When you launch it, you don't know when you are able to submit scripts.
If you do createDisplay followed by ExecJS, it might just be dropped because the browser hasn't even loaded yet.
If you wait a second, you have a semi-random chance of it being dropped, the browser might just be loading the first page.
Or it may have loaded the sandbox, but not inserted your content into it yet. In these cases, trying to ExecJS will just throw error inside the browser.

11:52:45 UI2Tex creating new display with name 'OS1_s' (class 'RscCytechDisplay')
11:52:45 ["load",[Display #13371337,"OS1_s"]]
11:52:48 UI2Tex creating new display with name 'OS2_s' (class 'RscCytechDisplay')
11:52:48 ["load",[Display #13371337,"OS2_s"]]
11:52:48 ["update","OS2"]
11:52:48 ExecuteJavascript 3476, 'UIUpdateState({})'
11:52:48 ["update","OS1"]
11:52:48 ExecuteJavascript 3476, 'UIUpdateState({})'
11:52:48 OnStartRequest
11:52:48 OnStartRequest
11:52:48 OnFinishedRequest 3483
11:52:48 SandBoxInsertExec 3483
11:52:48 OnFinishedRequest 3483
11:52:48 SandBoxInsertExec 3483
A bit weird, I have a 1 second sleep between load and ExecJS, yet the ExecJS is 7 frames too early, which breaks the whole page.

I'll add an eventhandler that fires once the page is loaded to the point where you can execJS.
Looks like no name of an existing EH fits, so a new one it is..

#

Question about OnDraw event on browser.
I'm thinking its more useful if the content actually changed. As in the browser did a draw, not the control in Arma did a draw.

The control in Arma will draw every frame, but it will repeatedly draw the same old texture, if the browser itself didn't draw.

grim lion
#

@full sonnet I have to head to work, but here's a few files from the system that creates a window, which is extended when creating the internet explorer app, and then the intranet web app that gets rendered within internet explorer. Maybe you could take a look and figure out what I'm doing wrong, also here's a zip of a mission in which the garage and locker UI have the fix I used to keep the scroll wheel on the mouse working. Again I wish I had more time to get the exact details of what's going on, but them houses aren't going to build themselves, lol

#

Forgot to send the relevant config entry:

/**
     *  Configuration settings for Applications and Web Applications
     * @namespace WIN99_CONFIG.applications
     */
    applications: {
        /**
         * @property {Object} applications.system - System applications
         * @property {Object} applications.web - Web applications
         */ 
        system: {
            notepad: {
                files: ['apps\\notepad.js'],
                class: 'Notepad'
            },
            internetexplorer: {
                files: ['apps\\internetexplorer.js'],
                class: 'InternetExplorer'
            },
            career: {
                files: ['apps\\career.js'],
                class: 'Career'
            },
            messenger: {
                files: ['apps\\messenger.js'],
                class: 'Messenger'
            },
            calendar: {
                files: ['apps\\calendar.js'],
                class: 'Calendar'
            }
        },
        web: {
            mail: {
                files: {
                    js: 'apps\\webapps\\mail.js',
                    css: 'apps\\webapps\\mail.css'
                },
                class: 'MailApp'
            },
            intranet: {
                files: {
                    js: 'apps\\webapps\\intranet.js',
                    css: 'apps\\webapps\\intranet.css'
                },
                class: 'IntranetApp'
            }
        }
    }
full sonnet
#

You mean this

            availablePanel.addEventListener('wheel', (e) => {
                e.preventDefault();
                availablePanel.scrollTop += e.deltaY;
            }, { passive: false });

So you mean a javascript eventhandler, not a SQF one.
I do not have control over the insides of the browser, all I do is tell it that a scroll happened.
This sounds like your issue is inside the browser/script. Not in the game. So nothing I can fix.
Wonder if that same issue happens in normal chrome too

grim lion
#

Yep that be the one, I tried integrating it within the window class, even tried an integration in the Internet explorer app, but no luck, lol

full sonnet
#

Completely forgot I had a 200ms delay for page loading. It waws to fix something broken, but now that I remove it, it still works fine anyway 🤷

full sonnet
#

Basically instant loading now.
And with PageLoaded, you can now execute script on the instant that the content is ready.

_ctrl ctrlAddEventHandler ["PageLoaded", {
    params ["_ctrl"];
    
    private _display = ctrlParent _ctrl;

    _ctrl ctrlWebBrowserAction ["ExecJS", "UIUpdateState()"];

    // Regular updating
    private _p2 = [{displayUpdate (_this#0)}, 0.1, _display] call CBA_fnc_addPerFrameHandler;
    _display setVariable ["ded_p2", _p2];
}];
full sonnet
#

Excuse me what?

#

You can now also stop/resume the browser.
Stopping it will freeze the image that was last shown, and close the browser and free the resources it had been using.
Resume reloads the page. Sadly it seems there is one black frame between the frozen frame, and the first new resumed frame 🤔
That could be workarounded if you are ui2tex, by pausing the displayUpdate calls, until a couple frames after PageLoaded fires. Then you won't see the blip.

When you resume, it loads the last URL that was open, you'll likely want to make changes after opening the main page anyway, that's on the user to handle.

I'm doing it like this.

// Stop browser
_ctrl ctrlWebBrowserAction ["StopBrowser"];
// Remove the EachFrame handler doing displayUpdate. So our ui2tex will also be frozen
[(ctrlParent _ctrl) getVariable "ded_p2"] call CBA_fnc_removePerFrameHandler;
_ctrl ctrlWebBrowserAction ["ResumeBrowser"];

// Remember when the last browser draw happened, so we can wait for it to become stable (once it stops drawing for a while)
_ctrl setVariable ["lastDraw", diag_frameNo];
_ctrl ctrlAddEventHandler ["Draw", {
    params ["_ctrl"];
    _ctrl setVariable ["lastDraw", diag_frameNo];

[{
    // Wait until the last draw, was more than 60 frames ago, until the image is "stable"
    (((_this select 0) getVariable "lastDraw") + 60) < diag_frameNo
    //#TODO handle the control becoming null because the UI was closed
}, 
{
    // No draw for 60 frames, its probably stable, resume updating the ui2tex
    private _display = ctrlParent (_this select 0);
    private _p2 = [{displayUpdate (_this#0)}, 0.1, _display] call CBA_fnc_addPerFrameHandler;
    _display setVariable ["ded_p2", _p2];
    //#TODO remove the Draw eventhandler
}, [_ctrl]] call CBA_fnc_waitUntilAndExecute;

With something like this you can just keep the ui2tex frozen, while the browser is already unfrozen, and that way hide the short blip transition into the unfrozen browser.

full sonnet
trim carbon
#

Is the CT_WEBBROWSER still a maybe on making it to stable? I want to invest some significant time in it but if it's only a maybe I have so many other things I need to do meowsweats

grim lion
#

Quick little video of the OS, you'll also see that once I maximized the internet explorer and restored it the detection of using the mouse scroll wheel stopped working, then I had to use the actual scroll bar to scroll up and down which you see in the calendar. Not sure how to fix this at the moment, hopefully I'll figure it out or get some help, lol

tall pumice
#

will you add those old windows games?

#

i mean, at this point might as well

carmine juniper
#

Can it run 3D Pinball

light lintel
#

Can it run Arma 1

solid crown
#

...but what about DOOM

pallid cliff
#

And quake

tall pumice
#

and where is winamp

full sonnet
viscid onyx
#

I hope the online part can be made to work. I think it would open up some really interesting possibilities for streaming and live-updating stuff without needing an extension.
Not to mention the meme potential ||ingame smartphones that let you send actual reaction gifs||

full sonnet
#

it works right now, but the permission prompt is unfinished and not polished. And I think many servers might find the prompt annoying but there isn't really a way around it.
And I cannot control sound volume, its outside of the game, and theres no way to fix it either.

near carbon
#

But dedmen... I thought u could fix everything

grim lion
#

Couldn't you download and pack the gifs in a pbo, then use RequestFile to get the gif and play it within the offline browser?

full sonnet
#

yes you can

grim lion
#

Then there's the answer to how create an in-game smart phone that can send gifs, lol

#

I'm really enjoying this offline sandbox browser, been able to do a lot with it, with more to add not to mention my knowledge with creating APIs and a C# extension, the possibilities are endless

full sonnet
# grim lion Couldn't you download and pack the gifs in a pbo, then use RequestFile to get th...

You can also dynamically load gifs from internet, with a offline sandboxed browser, without clientside extensions.

You can let the players browser, remoteExec the request to the server. The server has a extension to download it, compress it and pack it into base64.
That is sent back to the client, into the browser, and tadaa you have a blob containing the gif.

You could make an extension by injecting a new method into the A3API, to do that.

await A3API.RequestOnlineDownload("https://tenor....") it puts a requests into the queue, triggers an alert to notify SQF. And sometime later SQF calls A3API._response to deliver the results.

grim lion
#

Such a powerful feature, I can't wait to be done with work for the day so I can continue developing the OS. I need to work on more apps and connect them to the engine. At this point I'll just look at the wheel bug as a feature, then try fixing it in the future once I finish with everything else, lol

full sonnet
#

I have just implemented this. Navigating to a arma:// url, will be detected, and redirected to loadFile and will load the file from game instead.
But problem, this only works in online mode, because I can only detect page navigation on the root page, not in the sandbox frame.

I could add a
A3API.NavigateTo("arma://MissionSubFolder/otherFile.html");
That basically just does a script call to
_ctrl ctrlWebBrowserAction ["LoadFile", "MissionSubFolder\otherFile.html"];

It'd just be a shortcut, that you could very well implement yourself already. Not sure if worth it.

My thinking was, many normal web pages, navigate to a different page by clicking and <a href..>. If we could make that seemelessly work with in-game file structure, that would be amazing.
But I haven't yet found a way to make it work natively.
Maybe I can override location.href setter, but I don't know if clicking on a link would even trigger that.

#

I could have a script run on page load, that finds all <a href="arma://..."> and replaces them with <a onclick='A3API.NavigateTo("arma://...")'>
🤔
So then you just load a html page with links to arma:// url's, and clicking the links will just work.
But I don't think it makes sense for me to add that into the engine.
Rather provide a snippet on wiki that you can copy into the head of your page, that does that replacement for you

grim lion
#

That's pretty much how I do it, no real url or href, just an onclick and ondblclick which fires a function that uses the requestfile and then renders the file

full sonnet
#

Here you just make a very simple page like this

<script>
document.addEventListener("DOMContentLoaded", () => {
  var allLinks = document.getElementsByTagName("a");
  [...allLinks].forEach((link) => {
    link.onclick = function (e) {
      e.preventDefault();
      var targetUrl = e.currentTarget.getAttribute('href');
      A3API.NavigateTo(targetUrl);
    };
  });
});
</script>

<body>
<a href="arma://CytechUI/index.html">Click me to get to page</a>
</body>

Just normal links with url's, but arma url's.
And then you add the javascript snippet at the top of your page, which will translate all links.
And then..

trim carbon
gray cradle
#

It seems that there are problems with AI landings [they are stuck in air above squad] when they need to pick up ground forces.

#

Only on Dev branch

loud linden
#

Is that support react apps?

full sonnet
#

yes

grim lion
#

I'm having issues loading an .ogv that's in my mission folder and playing it. Is this supported and if so how would I load it within the ct_webbrowser?

full sonnet
#

BIS_fnc_playVideo, we have video textures kinda thing for it.
Inside the browser? 💀
I don't know if browsers can play that, if they can then base64 encode the file, loadFile it into javascript as a blob

#

I think I prototyped it once by doing that with a h264 mp4 with the html5 <video> element

grim lion
#

I tried using a normal MP4 with loadFile, but it wasn't able to load it, I checked the log for the length of the file when loadFile loaded the video it it was 0. Then I converted it over to ogv which showed the length was 4 when loadFile loaded it, but no luck there. I did try the blob approach and didn't have much success either, I could've written the blob approach wrong though.

harsh orbit
#

loadFile treats the file as a string. It stops on a 0 char

#

Which is why you should base64 encode it

grim lion
#

So I would have to create a sqf function to do that and then pass it to the UI? I'm working on an app that uses a virtual file system approach so you can navigate through a document folder, where I pass in 4 params; name, type, path; relative path. Type is just to give it the correct icon, relative path is the actual path from the game

harsh orbit
#

No. You should encode it to a base64 text file outside A3
Then load it using loadFile and send it to the UI

grim lion
#

Ok, so python script it is, then put the file in game, lol, thanks for the information I'll give it a try after work today

full sonnet
grim lion
#

Python to the rescue, just converted the mp4 to base64 and was able to load the file and play it

grim lion
verbal venture
#

Sometimes I am actually sad I dislike JS so much I religiously refuse to learn it

keen sundial
grim lion
#

You'd have convert it to base64 text file, the load it into the game or use and extension that can pull a video covert it then send it via a streamed in base64 code.

full sonnet
viscid onyx
#

so you could watch yourself playing Arma in Arma 🤔

grim lion
#

For those who may be wondering about the file browsing system, under the hood it's just a virtual file system that I configured, and when it comes to the actual files that you open up those get some extra parameters for relative path and file type. The file type allows the file to be processed correctly for the type of file it is. As of right now you can open MP4 videos that were converted to base64 text files and then PNG/JPEG images that were converted to a base64 text file

full sonnet
#

When I sent this to our mission makers. their first Idea was "connect usb stick to the PC, and copy a file off of it"

I suspect scripting the filesystem like
"AddFolderToFileSystem" and a eventhandler for "fileCopiedToFolder" would be simple enough to add, and thats probably all you need to do that.
When usb stick connected, add a folder.

grim lion
#

You're talking in-game action to connect USB drive and then copy a file to it? That's sounds pretty cool, I may look into implementing that. Also after work today I'll probably test opening an MP3 file that was converted to a base64 text file, I do have that built in as well just didn't get around to testing it

full sonnet
#

Not quite sure how that would work. Because you would connect the usb before booting up the PC.
Probably not while its running, but maybe you would blobdoggoshruggoogly

grim lion
#

The end goal for me is to have a pbo with the os packed, then a mission template folder with configs for users to configure the os. But there will also be the source code so people can create their own apps and web apps to add to the OS. But I could even add the ability for them to create those within the mission template folder and if the user configured it correctly the OS will pick up the new apps

full sonnet
#

Btw they keypress handling is fixed now, so your issue of enter keypress not being recognized in textbox, should be good now, on prof branch atleast

grim lion
#

I noticed, thank you so much for that fix, I still have the DOM bug that annoys me, lol. It's not a game breaker just a pain, but I believe it's to do with how I've setup the apps and window component, just didn't do a good job with inheritance, but I'll be sure that'll be fixed before release, lol

harsh orbit
full sonnet
harsh orbit
# full sonnet How? explain?

Did you mean read a file from the real life PC, or just an in-game thing?!
If the former, it's self explanatory

full sonnet
#

We are talking about Arma, if you'd follow the conversation right above

harsh orbit
#

You're talking about the web browser and adding weird stuff to it hmmyes

#

And it seemed like you were talking about adding file access to it or something blobdoggoshruggoogly

#

But yeah I just skimmed over the conversation meowsweats

green summit
# full sonnet When I sent this to our mission makers. their first Idea was "connect usb stick ...

https://youtu.be/rhCCaxL_vxY?si=t6aoVxdHblCwY4dX

The mod advanced equipment all ready has usb drive myb something like that would work

#arma3 #mods #ae3

Episode 5: Update v0.5.2

00:00:00 Start
00:00:20 Intro
00:01:22 Fr Keyboard Layout and Localization
00:02:33 New Eden Editor Modules
00:08:05 New Interface Designs
00:12:20 Syntax and Help
00:17:38 Retro Games
00:20:55 Custom Connections
00:25:22 Flash drive
00:29:52 New Commands
00:39:06 Updated Commands
00:45:06 Interaction...

▶ Play video
gray quarry
#

lol

grim lion
#

Just an update... And yes before you ask you can watch and listen to media files within the preview panel. lol
Current supported file types: mp3, mp4, jpg, jpeg, png, md. They just need to be converted to base64 text files before you'll able to use them

verbal venture
#

Not sure how exactly/if possible to implement, but can't want for someone to make a serverside extension that will actually pull internet requests and then send it to clients.

#

synced movie watching in arma, just what everyone wanted

grim lion
#

In the sandbox mode for ct_webbrowser not possible, but the live mode it would work if the website is setup to do that, of course they're are probably other ways to do that as well

verbal venture
#

Can't you get results of SQF calls?
Or access (sqf) variables?

grim lion
#

You can, but there's also a hard cap on how many bytes can be sent to/from arma

verbal venture
#

So it is doable

grim lion
#

In the live mode probably if the website is setup to do that itself, but BI may do away with the live mode and just keep the sandbox mode on release.

limpid edge
full sonnet
full sonnet
#

But I find the idea of watching videos that way quite terrible.
Might as well use online mode, or if we don't do it, use the extension that implements Webbrowser and mod it on clients.

grim lion
#

Would it be possible to use say3d for an ogg sound file of a video that is being played through r2t for part of a briefing? The video would already be base64 and in the mission folder or pbo

#

I'm just trying to think of ways to get a full briefing experience from the SNET app that I've been working on if a video is included

full sonnet
#

You are asking if a script can play sound? yes it can

grim lion
#

Do you think there would be sync issues with the video being played through r2t?

full sonnet
#

The r2t might be a frame or two delayed, at 60fps probably not much concern, at 20fps.. eh.

#

But the audio in-game plays in real-time, and the video also plays in real-time.
So it shouldn't get offset too much, as long as it starts at the same time, and the start command from browser to game might also need a frame or two to get through

grim lion
#

ok, that sounds like it shouldn't be to bad then, I would like to further develop my snet app so that it could be used as the briefing software within a mission.

harsh orbit
full sonnet
grim lion
#

No new updates for the OS tonight, I ended up working on a server-to-server UDP communication extension in .NET 8 for another Arma 3 project I've been working on, lol.

Think of a main hub in which you and a team are coordinating operations running on different servers from a central server through one of the apps on the OS

tough sand
#

The forums are down so I can't read the development changelog... can anyone tell me what has been changed?

carmine juniper
#

Tweaked: Several memory allocation optimizations
Tweaked: Updated Steamworks SDK (libraries) to 1.61
Fixed: Inflate decompression would freeze the game if there were extra bytes at the end (thanks jokoho482)
Fixed: Base64 decoding would not recognize padding characters and produce extra bytes at the end
Added: CT_WEBBROWSER Event Handlers "Draw" and "PageLoaded"
Added: ctrlWebBrowserAction "StopBrowser" and "ResumeBrowser"
Tweaked: Web browser pages now load 200 ms faster
Fixed: -init= command line parameter did not work
Added: sourceModulo for MFD sources
Added: MFD sources ClockSecondSmooth and SidePanelRadarRange
Added: mfdMaxUserValues vehicle config entry and raised the maximum MFD user value limit to 256

tough sand
#

Thanks POLPOX <3

gray cradle
#

I had similar problem with server not sending network traffic to clients, like in Performance branch [still at high / moderate fps on server], unless someone went back to lobby and rejoined the game [then it would start sending data again].
Strange problem...

lament crow
#

So is the forums being down a part of the plot to modify the changelog in order to *insert multithreading as a 1.0 feature?

keen sundial
#

someone needs to release a guide on how to limit an exe to one core to have people try out running arma on 1 core..

full sonnet
#

Its not possible anymore. I removed that ability recently

keen sundial
#

if you go into the task manager, to the processes/detaisl, you can still assign it to only one core with "set affinity" or so

#

did that once to truly limit arma to 1 core and the performance war atrocious

full sonnet
#

Ah yeah that would work

keen sundial
#

I even did all the parameters to limit arma as much as possible and it would still offload tasks to other core until I used that method

full sonnet
#

There are threads we don't have control over, like audio and graphics drivers. They still spawn threads and do work on other cores, even if we wouldn't

keen sundial
#

I did that a few years ago to find out much that "arma is a single core game" claim was true, because a lot of things didn't add up.

gray quarry
#

¯_(ツ)_/¯

#

arma 3 is minimum a dual core game

gray quarry
light lintel
#

...rusts?

gray quarry
#

sorry wrong word, im having a hard time translating what i actually mean

keen sundial
#

Nobody cares man. And can’t you read. I tested something. How do you even come up with tour. Also your assumption is absolutely bogus.

gray quarry
#

?????????

halcyon moth
#

Are we talking about electromigration? :P

#

Not likely to be an issue unless the voltages are too high in the first place, but I wouldn't rule that out with modern CPUs. Off topic though.

tall pumice
#

latest dev branch version gives me this. did i do something wrong?

#

but i can boot up the game just fine via diag exe

full sonnet
#

Does RPT say something?

tall pumice
#

yeah, file is there

#

but i just remember something.. let me test

#

hah. ok, never mind. remember a few months ago you've send me a new dll file? i forgot to revert it 😄 it works with stable branch, but doesnt with dev-branch. debug exe probably ignores the issues

full sonnet
#

sus

gray cradle
#

Yesterday/Today on Development branch server had around 5 freezes, where the game was being updated, but players weren't receiving data. [Not FPS problem].
I turned off all of the Headless clients, before game.
Same problem as one I reported on performance branch...

#

First freeze happens quite late in game [like around 1-2 hours in].

grim lion
#

Update on the character creator:

gray cradle
lament crow
near carbon
grim lion
#

It's a mock windows 98/99 os entirely out of html, css and JavaScript using the sandbox mode of the ct_webbrowser UI control

light lintel
#

ArmaOS confirmed

grim lion
#

@full sonnet Do you know if it's possible to stream a r2t camera to the ct_webbrowser in sandbox mode?

full sonnet
grim lion
#

So I create a new control over the top, size and position it, then have the ct_webbrowser send an alert to open/close that control

full sonnet
#

Yeah. I don't know how well it will handle with the delay when you move the control inside browser.
Because JavaScript arriving to game is likely one frame delayed.
But, the browser rendering is also one frame delayed so maybe it's actually fine.
That's something to be tested

grim lion
#

I was thinking of a static position for the control over top, but I'd be up to the challenge in seeing if I can mimic the movement of both a window within the ct_webbrowser and the control over top

full sonnet
#

in javascript.
Get window size (whole browser) in pixels, get your controls XY and width/height in percent of window size.
Send to Arma, ctrlSetPosition.
The code for it is fairly simple. The question is just if it will be fast enough

full sonnet
#

Todays Arma easter egg.

private _declaration = [
  ["#str", {_x = 5; ""}]
];
private _hm = createHashMapObject [_declaration];
[1,2,3] apply {str _hm; _x};
``` -> [1,2,3]
```sqf
private _declaration = [
  ["#str", {_x = 5; ""}]
];
private _hm = createHashMapObject [_declaration];
[1,2,3] apply {_dumy = 8; str _hm; _x};
``` -> [5,5,5]

Enjoy! (And please never do this)
carmine juniper
#

Old school false = true;

full sonnet
full sonnet
harsh orbit
full sonnet
full sonnet
harsh orbit
#

By cutting out 10%, do you mean TI is only adjusted based on some portion of the screen?

full sonnet
#

Guy requested that he wanted to "zoom in" on the thermal imaging.
So instead of seeing the 0-100% range on screen. Zoom into 20-60% and show only that section, stretched out.
So you get more detail in that section, but the bottom/top end are cut off

#

20-70%
0-100%
50-70%

#

It all works quite badly, the underlying data is just too bad

#

Clamping the top end to white, instead of making it black too.
50-70
60-70
62-67
20-100

#

But this is after equalization, so as soon as you move the camera its messed up.
Really you should do this at the raw temperatures before equalization, but that needs to many changes.
Just some experimentation, don't think I'll do anything with it

#

I think this is what @sick gulch wanted to get right?

#

Oh also that

#

resolution was only adjustable in vehicle/scope config. Now its also adjustable on mission scope

harsh orbit
#

Doom TI hmmyes

teal elk
full sonnet
harsh orbit
#

You can read the pixel thanks to your d3d11 extension stuff

full sonnet
#

And the temperatures anyway, are bascally garbage.
On this image, everything below 27°C is black, and everything above 27.6°C is full white

full sonnet
harsh orbit
#

Yeah meowsweats
You can still tell which place is hotter tho

full sonnet
#

26.4°C-27°C Most things are clamped to white, so above 27°C

As you can see, basically everything is between 27°C and 28°C. It doesn't really make any sense

#

Even a human's face, ends at around 30°C.
Their clothes are 25.8-27.6°C from the outer edge of their backpack, to the hottest parts of their pants.
Everything is in a ultra tiny range

#

And trying to stretch that out is what makes the thermals look so shit.

Its because everything is built around air temperature and some small offset relative to it.
Humans are not 36°C, A hot tank barrel is not 60°C, a puddle of water is not 12°C

Everything is air temperature +- a bit

pallid cliff
#

What if that offset could be changed by a global multiplier?

full sonnet
#

I tried so many things back with the thermal overhaul and nothing really worked

#

The top end is black surface temperature (when hit by sun it heats up), bottom end is white surface (reflects heat).
black is +3.5°C, white is -1.4°C. On Tanoa mid-day.

My test code to overwrite these is even still there 😄
Stretching it out to +20/-10

#

+20/-10
0-100%
40-50%
45-50%

keen sundial
#

I think your settings are fine as they are. It’s a low and high cut used in image processing and should help making vanilla TI more useful.

Is there any chance to make a scale showing what is what temperature or also allowing to change the colors of black and white ?

full sonnet
#

+3.5/-1.4
0-100%
40-50%
45-50%

full sonnet
viscid onyx
full sonnet
#

That is what you can get if you can zoom in to the small 2-3°C temperature range

viscid onyx
#

So if the detailed data is actually there but compressed, would it be possible to, like, bulk process the source data to expand its range? Like linearConversion. I figure it'd still be a fair bit of work, but presumably easier than having to fully re-author all the thermal data in the game.

full sonnet
#

0-60°C
27.6-30°C

full sonnet
#

Before your whole screen was mostly white/black, with all the change squished in a small 5-10% area of the brightness.
After, we spread out that 5-10% area over whole screen, and cut off the edges. Basically.

keen sundial
#

Can you overlay 2 TI values? Like 30-70% and 27.6°-30°?

#

And different colors 🤓

full sonnet
keen sundial
#

Hmm or interlaced

viscid onyx
keen sundial
#

I mean more like two outputs. If it requires to render the game twice it’s indeed useless

full sonnet
# viscid onyx I meant applying this process to the source, the actual temperatures of the obje...

That wouldn't make any difference.

Every pixel is at a point between the min and max range in temperature (air temperature +- a bit).
And afterwards, the temperature is scaled back to a 0-1 range in screen brightness so you can display it.

Its scaled from a 0-1 range, into temperature, scaled back to 0-1 based on min/max temperature.
Making the temperature range wider, makes the min/max wider, and scaled back to 0-1 brightness it stays the same

#

First is normal variance.
Second is making the temperature range of objects, 10x as wide.

Huh, well atleast not that much difference

#

If you zoom out.
10x first one, second one is normal

#

When the ranges are wider, the histogram equalization can work a bit better, because it works in buckets. It has 512 temperature steps to equalize, over the 0-100% range.
If an object takes up 20% it can differentiate better than it taking 2%. More buckets == better distribution.

But overall, it does basically nothing because the ranges are all still unrealistic and not based on real temperatures

pallid cliff
#

But the temperatures are not really important. We just wanna differentiate between something that is hotter and something that is cooler.

How big are the offsets from air temp that are defined?

#

Is it like 40 + air temp for a barrel?

full sonnet
#

A barrel is like air temp+3°C. Same as a human, or a asphalt road.

pallid cliff
#

Well

#

Then there is no fix

#

If everything has the same temp then there is nothing to differentiate.

viscid onyx
full sonnet
#

In reality it would be Black asphalt in the sun is hot. A black water barrel in the sun is cold, because there is alot of water in it.
A black plant is cool, because it pulls water out of the ground and evaporates it, cooling itself down.

Arma is "Black is hot"

gray quarry
#

lol welp, is it too expensive to make arma more truly realistic?

full sonnet
pallid cliff
#

You probably need to go much higher with the range.

viscid onyx
#

Gotta love the big pile of uranium gravel on the left

gray quarry
#

exciting changes with TI btw

pallid cliff
#

Yeah. Whatever you do it will look weird because it doesn't look like what we expect

full sonnet
#

As long as all objects are using the same range, it just won't do much on the end result

pallid cliff
#

Yeah. As long as a hot barrel has the same temp as a face..yes.

full sonnet
#

close up looks a bit nicer, you can make out a tiny bit more detail. But zoomed out, which is how most people will be using thermals, it makes no difference

pallid cliff
#

We basically would need a slider to adjust the range on the fly.

full sonnet
#

My idea would be to define per material.

Does it have its own temperature regulation, or is it relative to air temperature?
If it has its own:
then what is its min/max temperature
how "active" it is in that range is given by the object itself (Active multiplied together with a texture, so different parts heat up at different rates)
Whether and how much it should fade to air temperature if its not active (clothes on a body)

If not:
Offset from air temp (trees and gras always a bit colder because they cool themselves)
What is its thermal capacity (asphalt heats up and cools quickly in the sun, water barrel and gras do not. Mossy ground has alot of capacity, gravel ground has very little)

But doing that, would mean to re-do every asset in the game

pallid cliff
#

At this point...just make sure that Reforger has it properly implemented

gray quarry
#

Indeed

viscid onyx
# full sonnet My idea would be to define per material. Does it have its own temperature regul...

There is some kind of a distinction between actively heated objects and not, because engines and gun barrels do heat up, and corpses cool. Could you tie into that, to get a simplified system that requires less manual editing? Like, say, objects naturally behave as they do now, but if an object is actively heated it's allowed to exceed the normal temperature range? It would be less accurate than the ideal system, but more accurate than what we have.
Of course this is just theoretical, I have no idea if that's even remotely possible with how the system works internally.

lament crow
gray quarry
#

good luck convincing bi to finance that

scenic trail
#

New thermal imagers also have a "Red Heat" mode where an extra color is applied to differentiate a zone that's above a certain top quantile
Would that be possible without redundant computation?

full sonnet
#

textureTIConversionDX11

gray quarry
#

ooh neat, so it's fully moddable?

tall pumice
#

wait is this new or was that always a thing?

teal snow
full sonnet
light lintel
#

I think some of the CDLCs use it even

teal snow
#

or is it just the thermals

full sonnet
teal snow
#

would you know which config reference i would need to look at by chance?

full sonnet
#

I don't know how you do that in config

teal snow
#

opticsPPEffects
CfgOpticsEffect
i think im trying it now

teal snow
#

well i can script it, but i dont think arma will let me config it

#
class CfgOpticsEffect {
    class DTV_electronicZoom {
        type = "Resolution";
        priority = 1400;
        params[] = {400};
    };
};

i think this should work, but nvm, thanks for the PPeffect info

tame rover
# scenic trail New thermal imagers also have a "Red Heat" mode where an extra color is applied ...

Mine has this. But rather than being objects over a certain temperature it's more that it highlights the warmest pixels in the screen. So things will go red even if they're not much hotter than surroundings. The modern digitally processed ones are basically gated in a way where the hottest object in a scene is white, the coldest is black and then everything else is on a gradient. You can select amplification levels to change how much it ramps up the top and bottom values from the ambient

#

Older camera I used (early 2000s), you had a temperature range and you'd gate it on the upper and lower temps you expected to use

teal snow
#

im not sure if its just me but i cant get the thermalResoluton scope property to work

tame rover
#

Are you using the right syntax? It's an array even if you're only using one value, so has [] suffix in the property name and braces/curly brackets around your value e.g. thermalResolution[] = {value}; writing e.g. thermalResolution = X; wont be recognised

teal snow
#

I also tried a config optics effect for resolution for both thermal and normal vision, and neither worked

tame rover
#

@teal snow I used it a long time ago. Dunno if it was in a build that made it to public release but it worked at the time: class rhsusf_acc_anpas13gv1 : ItemCore { //parameters class ItemInfo: InventoryOpticsItem_Base_F { class OpticsModes { class TWS { //blah visionMode[] = {"Ti"}; thermalMode[] = {0, 1}; thermalResolution[] = {0.0, __EVAL(640/0.887), 1.0, __EVAL(320/0.887)}; thermalNoise[] = {0.07,0.1,0.02,1,1,0,0,0.6}; //more blah }; class TWS_5mil : TWS { //blah again }; }; }; };

teal snow
#

I’m specifically trying to use it on a vehicle -> turret -> opticsin class, is that the right directory to use it on, your reference being that of a scope

tame rover
#

Oh right well I did it on some vehicles too. Will have a look

#
    {
        class Turrets: Turrets
        {
            class MainTurret: MainTurret
            {
                class OpticsIn
                {
                    class Wide
                    {
                        initFov = __EVAL(0.7/4);
                        minFov = __EVAL(0.7/4);
                        maxFov = __EVAL(0.7/4);
                        visionMode[] = {"Normal","Ti"};
                        thermalMode[] = {4}; //red hot chilli
                        thermalResolution[] = {0.0, __EVAL(480/0.865), 1.0, __EVAL(480/0.865)};
                        thermalNoise[] = {0.1,0.1,0.1,1,1,0,0,0.9};
                    };
                    class Narrow: Wide
                    {
                        opticsDisplayName = "NARROW";
                        initFov = __EVAL(0.7/12);
                        minFov = __EVAL(0.7/12);
                        maxFov = __EVAL(0.7/12);
                    };
                };
            };
        };
    };```
teal snow
#

Il try it again tonight and share the config

teal snow
#

so for regular vision i have

class CfgOpticsEffect {
    class DTV_electronicZoom {
        type = "Resolution";
        priority = 1400;
        params[] = {400};
    };
};

class Dtv_Zoom: Dtv_wide
{
    initfov = "(0.6 / 120)";
    minfov = "(0.6 / 120)";
    maxfov = "(0.6 / 120)";
    opticsdisplayname = "Z";
    opticsPPEffects[] = {"DTV_electronicZoom"};
};

and for the thermal resolution

class Flir_Zoom: Flir_Wide
{
    initfov = "(1.5 / 120)";
    minfov = "(1.5 / 120)";
    maxfov = "(1.5 / 120)";
    opticsdisplayname = "Z";
    thermalResolution[] = {100};
    //thermalNoise[] = {0.3,0.3,0.3,1,1,0,0,0.9};
};

neither work
the noise almost gives the effect of a small resolution drop but dosent work
these are both done on vehicle turret Opticsin

full sonnet
#

can you give me that as mod to test it?

teal snow
#

well fuck, gimme sometime, il try make it a config patch

full sonnet
#

monday

teal snow
#

my config patch work is crap, but i tested that i was successfully applying config settings using visionmode as a test

harsh orbit
#

Is it possible to move diag_exportTerrainSVG to normal branch?
Now that we have DX11 and browser stuff it would be nice to send the SVGs to other programs to render the map
or alternatively, since the command is unsafe due to disk access, make it encode the SVG in multiple Base64 string chunks (based on string limit), or maybe create a new command:

exportTerrainSVG [drawLocationNames, drawGrid, drawCountlines, drawTreeObjects, drawMountainHeightpoints, simpleRoads]

Returns

["xAXa313ad..." /*Part1*/, "..." /* Part2*/, ...]
full sonnet
verbal venture
#

Ah, is there a docu about it?
Would edit the ocap extension to use it.

harsh orbit
verbal venture
#

I see mention of FindRVFunction in the wiki, but can't find anything more in depth

meager sage
#

see #TODO
blobcloseenjoy

verbal venture
#

Thx, 32 bit is professional deformation for you by now hmmyes

full sonnet
#

it is internal API though, if I need to change it there won't be backwards compat

verbal venture
#

That's fine. I'll keep the original way working too.

harsh orbit
full sonnet
#

unlikely

teal snow
full sonnet
#

ah I forgot about that, maybe tomorrow

broken musk
#

getting some unknown enum errors, with “onbuttonX” ctrl event

#

2.19

full sonnet
#

I see you have opticsPPEffects so, probably correct place?

full sonnet
full sonnet
#

The rendering code can handle single entry.
The config reading code cannot

full sonnet
teal snow
#

Il adjust the thermal resolution test pbo I sent you with those changes

full sonnet
#

I'm already doing that, but maybe you'll be faster

teal snow
#

I won’t be able to do it till tonight

#

I’m at work

full sonnet
#

I'm also at work :harold:

full sonnet
#

Your opticsPPEffects also doesn't work.
Out of the three spots where the optics config stuff is read.
Only two of them also read opticsPPEffects. The one place that you're using, does not.
They only work in muzzle configs

#

Fixed, your config will work

#

The only bug was the single resolution thing.
If you give it a scale then it would've worked

teal snow
full sonnet
#

= {1000}
turns to
= {0, 1000, 1, 1000}

teal snow
#

And the opticsPPEffects just dosent work on turret optics?

full sonnet
#

yeah

teal snow
#

Is that something that can be fixed, or do I just need to script that one

full sonnet
#

as far as I can see optics effects just don't exist there, so that would be a new feature instead of a bugfix, I won't investigate now how much effort that might be

full sonnet
floral anchor
#

is there anything to be done reasonably about the callsign attribute not updating to the lobby? or is it just the cba workaround forever

keen sundial
full sonnet
floral anchor
#

aight 👍

pallid rover
full sonnet
#

But they were always wrong before

#

on the script commands, you leave away the "on" prefix

broken musk
#

😮

broken musk
#

thanks for the heads up

teal snow
#

oh when you said typo you mean the resolution was a typo on the wiki in addition to the need for 2 entries

harsh orbit
#

Will we finally get a dev update this week?! 🥺

ebon quail
harsh orbit
#

I guess no update today then?! notlikemeowcry

vernal ravine
#

26-02-2025
EXE rev. 152675 (game)
EXE rev. 152675 (Launcher)
Size: ~64 MB

ENGINE

  • Added: productVersion now also lists the Steam Beta branch name
  • Added: "admins" whitelist to getServerInfo command - FT-T187807
  • Tweaked: Memory allocation optimizations
  • Fixed: Crash when using a SoundSet with "delay" inside a vehicle - FT-T188707
  • Added: "MaxResolution" to setTIParameter
  • Fixed: Map controls now correctly handle positioning inside control groups, if "ctrlMapSetPosition []" is executed once - FT-T189016
  • Added: "useRealViewport" config property for map controls - FT-T189016
  • Added: ctrlRelToScreen and ctrlScreenToRel script commands - FT-T189016
  • Fixed: setPiPEffect - Chromatic Aberration and Film Grain did not work
  • Fixed: Weapon muzzle attachments recoilCoef was not applied to player-used weapons - FT-T167366
  • Tweaked: inAreaArray/inAreaArrayIndexes array of positions has been unified and can accept positions in format array, object, group, location, marker (while ignoring nils)
  • Added: isNil with namespace argument now also supports control/display
  • Fixed: thermalResolution config parameter did not work when setting a single resolution instead of a zoom range
  • Fixed: UI On Texture textures would sometimes think they are not visible on screen and never update their image (thanks Lambda.Tiger)
  • Tweaked: Improved performance of AI pathfinding (sea wave positions are no longer calculated when below terrain)

https://forums.bohemia.net/forums/topic/140837-development-branch-changelog/?page=63&tab=comments#comment-3622787 (Forum - Development Branch Changelog )

full sonnet
#

Need some feedback. Please REPLY IN THREAD. Thank you.

We are working on integrating Steam game recording (https://store.steampowered.com/gamerecording)
Mainly the notable "events" shown on your timeline, to easily find moments you might want to clip and share.
See on that page "Game-Added Markers", "Game Mode Indicators" and "Highlight Viewer".
Also for reference the developer documentation https://partner.steamgames.com/doc/api/ISteamTimeline

Mod/Mission developers:

  1. If you are a mod developer, do you expect that you would add your own timeline events from your mod's scripts. If yes then what kinda things would you add?
    You can add events either as "happened now" or "Happened over the span of N seconds and just finished now".
  2. Would you want to influence the timeline tooltip, it is intended to indicate the current "state" of the game, for example for PUBG there could be a "Preparing" tooltips and then "N players left" tooltips. (Ref developer documentation SetTimelineTooltip)
  3. Similar to previous, would you want to indicate different "phases" or "rounds" happening in your mod/mission? (Ref developer documentation StartGamePhase)
  4. Would you see a need to edit the description text of an event after the event has been added? I don't think so
  5. Would you have a need to remove events after you added them? I don't think so.
  6. Developer documentation AddGamePhaseTag/SetGamePhaseAttribute, any need for that? So far I haven't found a use for these yet.

Players:
6. If you are a player, what kinds of events would you expect to be highlighted (besides the obvious Kill/Death). Maybe also what kinds of events would you want your favourite mods to add?

full sonnet
#

Keep finding webbrowser bugs.
After opening a dialog with a browser control, you cannot scroll inside the browser.
You first have to activate it by clicking into it once, and then it will allow scrolling.

I'll probably have to make it do a fake click to fix that

gray quarry
#

dedmen, thanks for making those recent steamworks api additions optional

full sonnet
#

I didn't

gray quarry
#

oh interesting

#

i mean usually developers that do implement newer steamworks stuff are breaking older steam clients

#

guess im not really sure what features have hard client requirements and which ones dont

full sonnet
gray quarry
#

20 years even, since the inception of steam3 in 2005

#

but like, csgo/cs2, dota 2, half-life alyx, aperture desk job, escape simulator,
(in my experience)
required steam client updates, either hard dependency in the game or steam appinfo saying it requires x minimum client version

#

apologies for the slight offtopic

#

observed issues were like no connection to steam, acting nosteam, game functionality being broken, startup crash, refusing to run or the steam client itself blocking you from launching

feral tangle
#

@full sonnet
Has anyone ever asked you for an FPS Limit setting?

full sonnet
#

setting where

feral tangle
#

Like in the main settings page?

full sonnet
#

yes, no

feral tangle
#

Fair. Maybe I will use Nvidia control panel to try and stop the main menu from running at 300 FPS and trying to send my fans to the moon. 😅

full sonnet
#

The default fps limit is 400fps, you can change it with -limitFPS= start parameter.
if you run game with -world=empty, so that main menu has no terrain, it limits itself to 144fps.
And when you tab out, its limited to 60fps

feral tangle
#

Interesting.

pallid cliff
#

Yeah...limitFPS is nice. Keeps my GPU from spinning up while in 3den.

feral tangle
#

In the main menu and in Eden is where mine really spins up some time. Somehow didn't know about -limitFPS but that seems like it will do the trick.

arctic fern
#

Should be noted that for the server, the default fps limit is 50fps but that the -limitFPS can be used to increase it

light lintel
#

Well gsync is more for everything to be smooth

#

But basically some of the nvidia control panel stuff appears to not work in borderless windowed mode in Arma 3 (but works in Reforger)

gray quarry
#

relative mouse does not get locked/confined in borderless fullscreen either

#

not sure if fullscreen as well

#

but what happens is that say you have multiple displays and you aim to the right, when you fire you lose focus because the mouse went to the secondary display to the left

light lintel
#

But I'm assuming Arma 3 uses some older windowing system that Reforger doesn't use

full sonnet
tall pumice
#

i dont lose focus, but i can influence shit on my left monitor

#

mostly mouse wheel, which works on windows that arent in focus

#

very annoying

verbal stag
#

Most common example of this is alt tab to a browser while leaving A3 on the map screen. Mouse wheel in browser always changes zoom level on the A3 map for me.
(Nvidia graphics card running A3 in full screen borderless window)

teal elk
#

arma does "something" to prevent it?

vernal ravine
verbal venture
#

So is the forum

winged plover
light lintel
verbal stag
#

I think it only happens on the map for me. And it’s when not in game, (normally when using web browser), mouse wheel drives in game behaviour, never in game behaviour affecting out of game experience. I’d put it in the minor irritation category but maybe it’s worse on other systems?

light lintel
#

oh yeah that does happen. Also alt-tab

#

or shift+tab for steam overlay

vernal ravine
sick gulch
full sonnet
#

zooming in on a temperature slice in thermal imaging

sick gulch
#

It would help to know what's in the screenshots lol

#

looks like some random objects?

#

Is it something I could look at in the dev branch right now?

#

If I understand correctly, it does look like it is functional. not sure why that rock is maxed out though. Guess it doesn't matter if it won't make it to the actual stable branch though

full sonnet
#

Well the conversation below the images.
Its just crap and doesn't work well due to the limitations with the thermal imaging, so I've left it disabled, its not available

sick gulch
#

rip

light lintel
#

Just wanted to follow up on this... is this something that could happen for 2.20 🥺

unreal arrow
light lintel
#

Ah ookay, that's fair

#

My use case is basically, there's no way to track a fire mission without resorting to adding and removing a fired EH, which is a bit hacky.
Like if you just want to do something per volley fired by an artillery piece.,, you add a fired EH, then within the EH you have to run the code and then remove the EH
And then use another script to re-add the EH before firing.
Also detailed here: https://feedback.bistudio.com/T180721#2658860

#

So for each fire mission i have to do

//Add event handler that launches counter battery marker script.
    //Remove the EH first so that only the first shot of the burst is processed.
    _tempEHindex = _artyUnit addEventHandler ["Fired", {
            (_this select 0) removeEventHandler [_thisEvent, _thisEventHandler];
            _this execVM "sk_EH_CBRadar.sqf";
        }];

and then later

//validate if artillery has actually fired
if (_magRounds > _artyUnit magazineTurretAmmo [_magazine, _artyUnit unitTurret (gunner _artyUnit)]) then {
    
    _artyUnit setVariable ["sk_enemyFireMission_success", true];
    systemChat "Fire mission script completed successfully";

} else {
    
    //remove the EH we added to avoid multiple EHs being stacked unecessarily
    _artyUnit removeEventHandler ["Fired",_tempEHindex];
    _artyUnit setVariable ["sk_enemyFireMission_success", false];
    systemChat "WARNING: Fire mission script completed unsuccessfully";
};```
Which works, but is messy

I'll dm the actual repo to you so as to not doxx myself lol
#

(side issue, doArtilleryFire doesn't return anything on successful fire, so it can fail silently, e.g. if the angle of the terrain is unsuitable, which can happen with even microterrain so it's not obvious)

sick gulch
harsh orbit
#

@full sonnet Regarding RvExtensionGSetWHk, can you make it return a pointer to the previously set hook?
This is so that multiple extensions can work together (e.g. if extension A adds a hook, and then extension B wants to add a hook too, it'll store A's hook and will call it in its own hook, or it won't if it doesn't want to)

Also another thing that I'd like to request is a "swapChainChanging" callback. When the swap chain has to be recreated (e.g. due to changing resolution or AA), you need to release all of its view pointers, otherwise you can't make the change. So you must let the extensions know to release their views

full sonnet
full sonnet
full sonnet
full sonnet
#

Opening UAV Terminals is a memory leak 😄
The terminal display opens the map control, the map control holds a reference to the terminal display, the terminal display holds a reference to its map control.
Circular reference, they never close. Oops.

harsh orbit
full sonnet
#

You have your window message hook.
You can detect
WM_EXITSIZEMOVE/WM_ENTERSIZEMOVE/WM_SIZING through there

#

but not in-game menu size changes :/

#

Every way I can do this is ugly, but if it has to be...

#

There are multiple places where we destroy all graphics resources, like changing texture/shadow quality.
I think I'll just notify about that, its basically a "clear all your resources now" notification.
Instead of a "Clear all your resources now because we will resize the window"

harsh orbit
#

No need to do it for all changes imo. Just the backbuffer changes, or the D3D device/context change

full sonnet
#

"No need" but its easier to implement that way, and can't miss anything

#

Like there are many places where we change fullscreen state, not only only resize or window mode change

harsh orbit
#

But for example you said "we destroy all resources", but that doesn't mean the user has to unless you're discarding the device too

full sonnet
#

But we're telling the user to do it anyway

#

Similar to RVExtensionGSetWHkProc
void CALL_CONVENTION RVExtensionGSetResetHook(void (CALL_CONVENTION *newHook)())

If that is called, consider the swapchain to be recreated.
Now someone just needs to document that :harold:

harsh orbit
#

I'll do it. Thanks meowawww

harsh orbit
full sonnet
#

You mean before game exit?

#

Yes actually. It should. Its called when engine is shut down

tall pumice
#

someone around who uses win11 with the latest update?

#

not sure if it's a3 dev-branch or something else, but somehow the game feels like it stutters now when i rotate my character around

#

this latest win11 update is total ass and also made playing classic fallout impossible for me

#

now i'm paranoid about it

full sonnet
tall pumice
#

i've disabled super sampling, disabled v-sync, but it feels choppy now.. and i'm testing in virtual arsenal, where really nothing should cause performance issues

#

kind of hard to see. maybe try to look at the weapon

#

i dont think 60fps should feel like that

harsh orbit
#

do you mean in nvidia control panel?

tall pumice
#

yes, i reenabled it because it made no difference

#

forgot to set it in the video, but issue is still the same anyways

light lintel
#

Try proper fullscreen to test that

#

For me, borderless windowed runs in some sort of default vsync or frame cap enforced by windows or the game

#

(I can't remember if it caps even when in game vsync is off)

#

Everything works fine in proper fullscreen

harsh orbit
full sonnet
#

or did we leave it undocumented?

#

just realized I did that reset hook one wrong, need to fix

harsh orbit
harsh orbit
full sonnet
#

Is it documented for 2.20? then we can still change it

harsh orbit
#

Looks like it's already in stable nvm meowsweats

#

I don't think anyone uses it yet tho? (except for me 😅 )

full sonnet
#

too late!

full sonnet
tough sand
#

I haven't been able to reproduce this yet, but I've encountered a bug where particle effects such as explosions, smoke, and fire flames don't appear while playing, probably since build 152675.
The environment is a multiplayer COOP that uses a lot of mods, so I don't know yet if it's related to the mods or parameter settings that are affecting it, but it's occurring in at least two mod environments and with multiple users on the server.
(One has a mod like Blastcore, but the other doesn't have a mod that changes explosions like Blastcore mod. maybe.)

If you guys get experience a similar bug, please let me know.
I'm trying to reproduce the bug with a minimal configuration, but I don't know how it occurs and cause.
At least, I don't think this was happening before 152675.
I will back if I find out the cause.

full sonnet
#

I've heard of that, but I have not yet seen this happen by myself 🤔

verbal venture
#

Had something similar to happen too.
Played a mission with two nuke explosion with muschroom cloud scripted.
Saw the first one, couldn't see the second one while others could. Looked totally random to me

tough sand
tough sand
# full sonnet I've heard of that, but I have not yet seen this happen by myself 🤔

Yes, some of my friends don't have this problem, and it happens sporadically (not same timing) and not reliably.
Could it be something to do with the GPU driver or CPU compatibility?
It can also happen at the beginning of a mission when I not firing a gun yet (no many particles are being generated).
And it still happening until I restart the game.
I have no idea...

winter crescent
#

Our main QA Tester has very rarely had something like that happen in the Dev-Branch smoke test, when playing the first "East Wind" mission. So vanilla and SP. Always the explosion effects for the attack on Kamino, but so far no repro. Could be a different issue as no MP is involved though.

full sonnet
#

The first reports of that on profiling branch were after v22, exactly after I changed memory allocation for particle effects.
But we had it internally for alot longer

tall pumice
#

btw to get back to my weird stuttering issue from a few days ago- it only pops up in borderless window mode. switching to fullscreen and it works again as it should be

#

ofc using fullscreen sux for alt+tabbing

light lintel
#

Yeah borderless windowed is borked for many things

#

Adaptive vsync doesn't work, gsync doesn't work... Had opened a ticket with nvidia and it actually seems to be going somewhere? So maybe they're able to fix some of the issues driver side

tough sand
# full sonnet The first reports of that on profiling branch were after v22, exactly after I ch...

About particle problem

I haven't encountered this problem in single player yet even playing a huge and long battle mission (Random Infantry Skirmish).
I have recently played EW with mods and haven't noticed any problems too.

But may be more likely to occur that problem if arma load multiple missions, like the campaign or multiplayer.

Currently, I get the bug only in 2nd or later missions.
It is possible that there is some kind of problem with loading?
Well, The only fact is that particle bug has become more noticeable recently.

Speaking of allocators, I also tried the this mimalloc instead default allocator. but this one happening that bug too.

I'll try another memory allocators and disable some parameters next weekend coop.

tough sand
# tall pumice btw to get back to my weird stuttering issue from a few days ago- it only pops u...

I play on a borderless screen and haven't had any stuttering...
(vsync off, g sync is off, win11)

This may be a bit off topic, but since a while ago there was an update to Windows or Arma3 or something, after that, I switch windows with alt+tab and click on other window(apps like explorer), often other window doesn't respond and I can't enter text too.
Calling up taskmanager with ctrl+alt+del fixes this and now I can click on other window but if re-active the arma3 again, other window is can't click anymore again.

However, I recall this happening in stable as well, regardless of dev or profiling.

light lintel
#

it doesn't matter if vsync is off in-game when running borderless windowed, because the game seems to run in vsync anyway, doesn't seem to be any way to override it

#

it's possible this is what's causing the suttering?

#

I can measure this on my computer as well, but the frame rate is too high for it to be noticeable

gray quarry
#

also an issue with borderless is the cursor being able to escape the window in multiple monitor setups

light lintel
#

It's weird because it doesn't happen in other games (not to say there's no other game in which it doesn't happen). But like Reforger is fine

vernal ravine
#

19-03-2025
EXE rev. 152743 (game)
EXE rev. 152743 (Launcher)
Size: ~81 MB

KNOWN ISSUE

  • Listen and Dedicated Servers might crash after a short while

DATA

  • Tweaked: Pause menu Steam branch indicator was not positioned correctly when running an unmodded game
  • Fixed: A Logic was created on the wrong side in a scripted function - FT-T177680

ENGINE

  • Added: Mission file downloading over HTTP
  • Fixed: Functions Viewer did not populate list of functions when opening
  • Added: Animal config property canFitUnderADoor when true will stop given animal from opening a door when entering into a house
  • Fixed: Incorrect laser marker positioning on and around water - FT-T188547
  • Fixed: Laser target marker would get stuck on objects - FT-T71322
  • Fixed: currentZeroing did not respect laser range zeroing - FT-T189309
  • Fixed: Missiles did not consider their fuseDistance setting - FT-T189277
  • Added: Initial integration of Steam Game Recording with custom game events
  • Fixed: Crash when using loadConfig with binarized configs - FT-T188760
  • Added: Option to removeWeapon / removeWeaponGlobal to abort a new weapon autoselect after primary weapon removal
  • Added: Option to addWeapon / addWeaponGlobal to abort a new weapon autoselect if no weapon was selected
  • Fixed: Crash if OGG sound file is played more than 255 times at once
  • Fixed: "Fired" Event Handler in multiplayer would receive wrong projectile for countermeasures - FT-T190141
trim crane
ocean sail
#

My Arma 3 Launcher crashing on Dev, load ok on prof and stable

full sonnet
light lintel
#

what about shells and rockets? (are they also bullets?)

full sonnet
#

Missiles are not bullets

trim crane
#

But yeah that bug was affecting any global projectile, not just shotCM, I originally saw it on an attack helicopter, where missiles were deleted due to safe zone and event reported previously shot cannon projectile for missile shot event

full sonnet
#

Fixed: "Fired" Event Handler in multiplayer could receive wrong projectile for global projectiles
so that

trim crane
#

Sure, sounds right (though a bit cryptic)

halcyon moth
pine pine
#

hey guys:) did you try the new dev branch? noticable fps boost with the new Geometric occluder

unreal cypress
#

It's on dev already? I'll start my download now then

pine pine
#

haha have 45-55 fps in cerno center and 55-60fps in kavala center

vernal ravine
#

26-03-2025
EXE rev. 152752 (game)
EXE rev. 152752 (Launcher)
Size: ~77 MB

DATA

  • Added: Steam Game Recording integration for Time Trials
  • Added: Steam Game Recording integration for Arma Invaders
  • Added: Steam Game Recording integration for Firing Drills

ENGINE

unreal cypress
#

By cerno do you mean Cherno? I wouldn't think you'd see a difference since it would require the models to be updated

pine pine
#

cherno

#

don't know i felt like a got more fps

light lintel
#
  • Tweaked: AI no longer calculates light influence on targets during daytime
    Will this influence camouflage/concealment by any chance? Or ghillie suits?
full sonnet
#

no, it is, as it says, light influence

#

It calculated if AI was hit by flashlights/lampposts/car headlights. During daytime even if the AI was standing in the sun

light lintel
#

ahh okay thanks

timber sorrel
#

According to the wiki for Geometric occluder, you need to update the models / p3ds for that new feature

#

Chances are any FPS boost you seen is because of something else

pine pine
#

haha placebo effect 😛

timber sorrel
#

Pretty sure that even if they added the technology to the current dev already, that the assets aren't using it yet.

unreal cypress
#

They have updated some models on dev branch, looking at them I saw a mix of buildings with 1 or 2 occluders

full sonnet
#

Btw webbrowser control, we decided to not enable internet functionality for now, so only the offline version will be in 2.20

harsh orbit
#

2.20 wen?

#

is it closed yet?

full sonnet
#

Should be closed very soon

harsh orbit
#

I remember that I wanted to ask something to be added or fixed or something but I don't remember what it was exactly at the moment 😅
if I remember I'll let you know (hopefully in time)

earnest mural
earnest mural
#

now im curious of why not? 😅

trim crane
#

We encounter it every day on our servers, forcing players to get back to lobby and start again, very annoying

full sonnet
#

no

light lintel
grave viper
light lintel
#

Binary blob source code?

full sonnet
grave viper
#

Oh.
"Go fun yourself. We drop this thing"

pallid cliff
#

PhysX doesn't make line go up so we drop it 😬

teal elk
#

One question and maybe was anwsered before, but ive noticed that in big maps, we have this "wingle" on stuff, and afaik is bc the 32 bit floting point.

there is a reason on why this wasn't solved when the game migrated to 64 bits, both in server and client?

halcyon moth
#

The migration isn't relevant. x86 had 64-bit floating point if you wanted it.

#

Fixing floating-point jitter needs some changes to rendering, terrain and physics engines. It's not simply changing a data type because the way you handle it is to recenter before handing off to APIs.

harsh orbit
teal elk
#

and far from 0,0 ( why cant be 0,0 the center of the map lol)

arctic fern
#

100km2 maps are just normal sized maps in ARMA 2/3 😉

halcyon moth
#

He probably means 100kmx100km.

arctic fern
#

LOL, if so, everything is up for grabs 😉

#

Biggest map I remember is Australia and that's only 40x40km

rigid warren
arctic fern
gray quarry
#

is there a height cap for a3 terrains?

opal summit
solid crown
# gray quarry is there a height cap for a3 terrains?

There is kind of "soft" cap due to engine using 32-bit floats, as with very large maps you reach and surpass the maximum resolution when it comes to e.g. position. It will lead to visible artefacts after that.

It's like you had a photo of something, and you keep increasing it's zoom level until you reach a point where you see the individual pixels. The issue becomes worse if you just keep zooming in. The pixels represent the possible positions where the character can be. So if you increase the photo size too much, the character starts to jump between the pixels due to rounding errors.

There are some tricks to avoid this (like world origin rebasing based on character's location, see a well made article here: https://gamedevtricks.com/post/origin-rebasing-space/)

signal edge
#

with this latest update to dev version, the game seems to lag a bit after first and then picks back up to normal FPS. is there something running in the background at mission start that could be causing this?

dark hemlock
#

In the main menu? If so are you running ACE3?

signal edge
dark hemlock
#

Just the ace mod itself, I've seen someone else report that the 10th anniversary thing causes some initial lag in the main menu, unsure about missions themselves

ancient lynx
#

is there a rough eta for 2.20 yet btw.? 🙂
More like next week or more like in May or later?

ancient lynx
#

so closing feature/changes wise, then bugfixing/rc and then release?

#

alright, thanks 🙂

signal edge
#

this is going to be one of the best updates to arma for internal performance in a long time: the dreaded fps complaint is going to nearly vanish overnight!

lament crow
vernal ravine
#

09-04-2025
EXE rev. 152791 (game)
EXE rev. 152791 (Launcher)
Size: ~76 MB

DATA

  • Fixed: SAAMI weapon referencing incorrect sounds - https://feedback.bistudio.com/T190390
  • Fixed: Script format error in Field Manual - https://feedback.bistudio.com/T182822
  • Fixed: Launchers were not always selected properly in Arsenal
  • Tweaked: Eye position when aiming down the sights on M320 & GM6, so the camera is no longer clipping with the rifle's mesh when recoil kicks in

ENGINE

#
tough sand
#

Added: Some of basic.cfg network parmameters can now be provided as strings

That is like or same as they talking in #perf_prof_branch message ?

full sonnet
#

Yes that.
Its not yet linked on the wiki page.
The details are on the "Numbers" wiki page

tough sand
ocean sail
#

Yay, illumination shots!
Are in plan to add the same rounds for the class weapon_ShipCannon_120mm and class mortar_155mm_AMOS?

feral tangle
#

A quick sanity check, in the unlikely event something has changed since I last thought about this. There isn't a way to overwrite the 2D map, (press M) with a custom image and be able to still place markers over the top of it, right?

feral tangle
#

🤔

pallid cliff
#

That's actually not a bad idea. Together with the new marker EHs you could update the markers drawn with the draw2D event.

umbral orchid
#

what about engine based ones ie. unit markers etc

#

mapContentFriendly etc

pallid cliff
#

Tough

full sonnet
carmine juniper
#

Seems fine. Can I have a screenshot?

full sonnet
carmine juniper
#

Yeah, that seems to be working very finely

full sonnet
#

I don't think I can do the radius parameter you wanted, so it will just be strength

full sonnet
full sonnet
#

It blurs left and right too notlikemeowcry ajajaj. Adding pp's is such a pain

ocean sail
#

Will it be possible to improve the model (or texture) of the flash for the illumination flares from the latest dev branch? With the current value of intensity the boundaries become clearly visible

carmine juniper
leaden heron
full sonnet
#

I think you are just talking about DOF

stiff parcel
#

Speaking of dof, Are there any chances of seeing an improvement in the calculation of DOF? Several times I did not use the bipod because, using an optic, the camera focuses on the nearby ground blurring the targets at a distance despite having no buildings in front of me

#

If there is interest I can try to find a point and loadout for a repo