Jump to content
Sign in to follow this  
HateDread

Addon to Help Low-Vision Players?

Recommended Posts

Hey all,

(Taken from my thread in the Scripting section, here: http://forums.bistudio.com/showthread.php?t=102828 )

A particular friend of mine who owns ArmA 2 will not play due to his poor vision. He has a particular problem that means he can't wear glasses to correct his eyesight, either, so I'm thinking out-of-the-box here.

Is there a way we can assist him?

I'm thinking things that detect AI and somehow make them more obvious. Is that possible? Everything from light effects on the AI, to targeting things, etc. Anything that makes them more visible.

So that's what I'm after - a way to help my friend play ArmA 2. Does anyone have any ideas?

Cheers.

- HateDread.

Share this post


Link to post
Share on other sites

A retexture maybe? Change the brightness of enemie textures so they will stick out more? This will ofcourse be considered a cheat in some MP games but between friends it will work just fine.

Share this post


Link to post
Share on other sites

I really wish I could help your friend. I can maybe contact some of the popular addon makers to see if they would be willing to help out.

If I knew anything more about making addons I would. I know the very basics, but I'm not sure how I could attach something noticeable to every unit. That would require him to edit the game's original PBO's to do so.

Would he play online? With such modification, he wouldn't be able to play online unless the server allowed it. Which I'm assuming most servers wouldn't cause then people that can play the game fine would use it to cheat.

Share this post


Link to post
Share on other sites

Well, you have some nifty options to edit in the difficulty menu.

But seriously, even people with fine eyesight find it very hard to spot enemies and\or shoot them, so your friend probably wouldn't be able to play the game without frustration even with any kind of modification.

Share this post


Link to post
Share on other sites

if its just for personal use, is there away to attach that floating ball in OA tutorials, ontop of enemy some how? I dunno im not a modder so

Share this post


Link to post
Share on other sites

Ok I'm no expert on eyesight, so whether this direction is even useful will depend on your friends specific condition.

Przemek_kondor made a mission where you can adjust some sliders that manipulate the colorcorrection values. You could run this for your friend to see if there is a better setting for him? Then you could have a unit added to missions that has this(the derived values placed in a colorcorrection command) added to his units init. Would need to include an event handler if you use revive or respawn as well.

http://forums.bistudio.com/showpost.php?p=1491732&postcount=18

If you need to actually highlight enemies, then some trial and error with some sort of overlay could be possible, though trying to find a nice balance between going from frustratingly hard to being to easy would be the issue. You would also need to consider line of sight issues which an overlay would probably not allow for.

Hope this helps.

Edited by blakeace

Share this post


Link to post
Share on other sites

Maybe he should play GRAW ?

Share this post


Link to post
Share on other sites

Isn't there that terrible red/green/white dot that goes over every object/person everybody hates that makes it easier to see?

Share this post


Link to post
Share on other sites

This is an intriguing idea making games more playable for eople with poor sight. maybe audio could be useful? like audio ques to help him out.

Someone in my clan is deaf, maybe a mod to help him out in arma 2 as well? :), some visual aides to replace lost sound.

Share this post


Link to post
Share on other sites
Maybe he should play GRAW ?

How is that helpful or constructive? If you have nothing better to offer a thread then please refrain from posting, else we call that spamming here.

Share this post


Link to post
Share on other sites

Thank you everyone for the support.

Yes it's mainly for LAN use. But if it's able to go online (as he has a legit copy of ArmA 2), it'd be extra nice. But I could get whatever addon it ends up as to be accepted on a few servers, so that's okay.

I'll run him through the linked example mission to see if any colour correction options help his sight, but I doubt it.

You guys are talking about overlays, etc. That's the sort of thing I was after. It needs only be for him, and his client, so he can see the enemies much easier.

Does anyone know how I could go about this?

- HateDread.

Share this post


Link to post
Share on other sites

I dunnow if may help, but ..

In the difficulty settings there is an option that create a green square around your men (hud group info .. i think) ..if someone is able to make also the enemy marked with this green (or better red) square thay'll be much easier to recocognize ..

Share this post


Link to post
Share on other sites
Thank you everyone for the support.

Yes it's mainly for LAN use. But if it's able to go online (as he has a legit copy of ArmA 2), it'd be extra nice. But I could get whatever addon it ends up as to be accepted on a few servers, so that's okay.

I'll run him through the linked example mission to see if any colour correction options help his sight, but I doubt it.

You guys are talking about overlays, etc. That's the sort of thing I was after. It needs only be for him, and his client, so he can see the enemies much easier.

Does anyone know how I could go about this?

- HateDread.

By overlay I am refering to the use of displayctrl to add a GUI object. It is the system used to create the likes of dialogs etc.

Here is a link to a tuit that Hendo made that prob is the easist way to get started. I haven't used these much more just played around with, but

http://community.bistudio.com/wiki/User:Hendo:Tutorials:Display

Below BIS dialog control page. Showing the different types that can be displayed including pictures. Note that one limitation is that arma can only disply one cutRsc and one titleRsc at a time. So whether something you create conflicts with something else?

http://community.bistudio.com/wiki/User:Manny/Dialogs_%28Work_in_progress%29#Pictures

So I am far from an expert with these so take the above with a grain of salt!:eek::D

Share this post


Link to post
Share on other sites

Maybe it would be good to enhance the "aura"-view ... those little dots at the screen border that indicates the corner of the players eyes.

It would be helpful for your friends if those dots are brighter and not limited to the screens border. I will investigate this for you tomorrow!

(I also have some other good ideas)

Share this post


Link to post
Share on other sites
Maybe it would be good to enhance the "aura"-view ... those little dots at the screen border that indicates the corner of the players eyes.

It would be helpful for your friends if those dots are brighter and not limited to the screens border. I will investigate this for you tomorrow!

(I also have some other good ideas)

Your solution in particular sounds extra helpful.

I'd love to hear your ideas!

(And I shall be looking into the other possibilities also. Thank you everyone for your support so far).

- HateDread.

Share this post


Link to post
Share on other sites

Okay guys, now that I have bought OA, and so has my friend, I am wondering...

How do I execute a script like this:

targetMark = "Training_target_EP1" createvehicle getPos this; targetMark attachTo [this, [0,0,2.2]];

Or any other such 'attach' scripts, for that matter, for all units in every mission as standard? Some way in which to load an addon that attaches such a thing to every unit, specifically for my friend's viewing.

Any ideas?

Share this post


Link to post
Share on other sites

Just a quick script to allow you to at least test the suitability of this approach with your friend.

It will place the target above the nearest "known" enemy closest to the point in the world the centre of the screen is currently over. So looking in the sky may have not reveal the desired unit.

nul1 = [] spawn
{
_targetMark = "Training_target_EP1" createvehicle [0,0,-100];
while {alive player} do
{

	_pos = screenToWorld [0.5,0.5];
	_enemyobj = player findNearestEnemy _pos;
	if (!isNull _enemyobj) then
	{
		_targetMark attachTo [_enemyobj, [0,0,2.2]]; 
	};
	sleep 0.001;
};
};

Share this post


Link to post
Share on other sites
Just a quick script to allow you to at least test the suitability of this approach with your friend.

It will place the target above the nearest "known" enemy closest to the point in the world the centre of the screen is currently over. So looking in the sky may have not reveal the desired unit.

nul1 = [] spawn
{
_targetMark = "Training_target_EP1" createvehicle [0,0,-100];
while {alive player} do
{

	_pos = screenToWorld [0.5,0.5];
	_enemyobj = player findNearestEnemy _pos;
	if (!isNull _enemyobj) then
	{
		_targetMark attachTo [_enemyobj, [0,0,2.2]]; 
	};
	sleep 0.001;
};
};

Sweet, thank you!

A few things:

- How do I make it for all enemies, whether known about or not? The friend can't find the enemies to make them 'known about' without this, which needs him to find them, and so on and so forth in a circle.

- How to make it adhere to multiplayer locality? If it's run as 'player' it'd spawn 4 seperate markers if there's four players, right? This leads to:

- How do I make it so the markers appear for only one person's view? This one friend out of four players needs them, all others don't.

If we can just get past these issues, it'd be even greater!

Thank you so much.

- HateDread.

Share this post


Link to post
Share on other sites

I read somewhere about red/green colour blindness in males. I think the colour you choose could be just as important maybe.

Share this post


Link to post
Share on other sites

It's apparently due to some thing as a child where his eyes see very differently, therefore glasses can't fix it. It's some irreparable condition.

What needs to be focused on is contrast. Be that bright colours against Takistan colours, straight lines against nature, etc. He can see contrast well. Hence the earlier stuff about coloured markers.

Share this post


Link to post
Share on other sites

nul1 = [] spawn
{
_targetMark = "Training_target_EP1" createvehicle [0,0,-100];
while {alive player and name player == "Blakeace"} do
{

	_pos = screenToWorld [0.5,0.5];
	_enemyobj = player findNearestEnemy _pos;
	if (!isNull _enemyobj) then
	{
		_targetMark attachTo [_enemyobj, [0,0,2.2]]; 
	};
	sleep 0.001;
};
};

Maybe use the players name to ensure it only runs for him like above?

The reason I used nearest enemy is I am unaware of an alternative that doesnt involve some fancy coding to, one find your sided, then determine the enemy then ist them all.

Maybe if you only play as west side you could use nearsest object searching for soldierEB objects? Though I am not an arma guru so it doesnt mean there isnt an easy way.

Share this post


Link to post
Share on other sites

Okay, thank you, I shall give that a try, for sure!

Just to clarify - I run it once, as it's a 'while' loop, right? So I could execute the "VisionAssist.sqf" (for example) through the init.sqf?

I'll look into that nearest object stuff.

Share this post


Link to post
Share on other sites

Yep you could do that. I just used the spawn option as a quick copy and paste to see if this option was even viable to your mates specific eye condition. Note this option will only highlight one enemy at a time.

Note I added a check for what your cursor is actually pointing at, so that if like me your mate likes an aiming deadzone then the target will always appear above any known targets he is actually aiming at or trying to track.

Another possible tack that would play in with this style of script is utilising the reveal command on any objects within a certain distance from the player.

That way it wouldnt matter which side you are playing for.

Possibly using another script that checks for the nearestobjects of type CAManBase and reveal them. (Not verified though).

Hope this helps.

if (isDedicated) exitWith {};
_targetMark = "Training_target_EP1" createvehicle [0,0,-100];
while {alive player and name player == "Blakeace"} do
{

	_pos = screenToWorld [0.5,0.5];
	_enemyobj = player findNearestEnemy _pos;
	if ((player findNearestEnemy getpos cursortarget) == cursortarget) then
	{
		_targetMark attachTo [cursortarget, [0,0,2.2]]; 
	}
	else
	{
		if (!isNull _enemyobj) then
		{
			_targetMark attachTo [_enemyobj, [0,0,2.2]]; 
		}
		else
		{
			detach _targetMark ;
			_targetMark setpos [0,0,-100];
		};
		sleep 0.001;
	};
};

Share this post


Link to post
Share on other sites

Thanks so much!

How would I go about using type CAManBase? Or revealing all units nearby, etc?

And do you know the classnames for the helper objects? I'm looking for sphere 100cm classname, but cannot find.

Cheers.

Share this post


Link to post
Share on other sites

while {alive player and name player == "Blakeace"} do
{
_list = nearestObjects [player, ["CAManBase"], 500]; 
sleep 1;
for [{ _listpos = 0 },{_listpos  != ((count _list) -1 )},{_listpos  = _listpos  + 1}] do
{
	player reveal (_list select _listpos);
	sleep 0.05;
};
};

No idea about the sphere class name?

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×