Cursor

Could you add an option to adjust the cursor? It’s sometimes barely visible in a monster’s path. Otherwise, it’s a very good game with a lot of potential.

They cannot, Unity technical limitation based on the only possible solution which is available causing severe stuttery cursors even with modern powerful machines.

Engine-issue which is atrocious.

You can implement third-party solutions overwriting the cursor from the windows-side of things directly, but they haven’t created such a program interacting with their own, which is something they should over time definitely do though despite the intensive amount of work required, simply because it is a great non-detrimental accessibility feature, much like colorblind modes are. No downside and only upsides.

1 Like

Yeah little weird that you can’t tinker with the cursor from the development side due to engine capabilities.

I use Yolo Mouse @Cuda-6000 I think tons of people do my cursor is giant and bright green because I’m old and blind it cost me like 5 dollars as a once off on steam but also check their price is 5 bucks seems steep.

1 Like

Yes, that’s currently the best workaround option for it until EHG gets the capacity to do it themselves.

I expect it in around 5-10 years to happen potentially :joy:

2 Likes

It’s a Unity issue, they just refuse to add that functionality.

There is a free version on git hub as well but so many games seem to have issues implementing stuff like this so I bought it as well at some point.

That’s actually crazy that they don’t want to add it unless they secretly own yolo mouse as well haha

They want to but unity seems to say no.

I think that’s what he meant. That Unity didn’t want to add the functionality.

Maybe ^^

Create a problem, then sell the solution.

1 Like

That would be fine, if not for the fact that they actually have a free version available and you don’t actually need to buy Yolomouse. :stuck_out_tongue:

1 Like

Give out free samples until they’re hooked, then make it expensive ^^

1 Like

I honestly don’t understand the issue here. Unity’s cursor implementation cannot be modified in certain ways? Okay? Then hide the mouse and put an image on top of the real cursor’s location instead? Where’s the “intensive amount of work required” here?

Because that’s exactly what cannot be done.

You cannot change the mouse-picture outside of the startup routine of the program. It’s then fixed and unchangeable. The only exception is by changing it via a trigger from a interaction, like for example hovering over a chest. There is only one possible change at any time able to be done though, and those changes are also fixed for that interaction.

Which means you cannot create a ‘base cursor’ which is different.

As example:

You got a white cursor which is 50 pixels big. That’s your ‘startup’ cursor. All fine, the normal, right?
But… you want it to be 100 pixels sized since you have troubles seeing it properly, your brain struggles following the color or shape of it.
And here the issue starts… Unity only allows for exactly one cursor currently at the hardware level, there is no function to choose and change it.

Now you got potential option for integrated options which work on the hardware level (more to that later):

  • WHich is a window-sized overlay which always changes it to the wanted cursor. The cost is that no other cursor changes are possible anymore as it’s always present. That means your cursor stays the same if you hover over an enemy instead of for example turning red. It stays the same when hovering over a chest. It stays the same when hovering over any form of interactable.
  • The alternative is allowing the cursor to change. Hence you got your chest cursor, your enemy cursor, your interaction cursor. The cost is that you hence cannot ever change the base cursor.

And this obviously poses a major problem.

Which one is more important to you?
The base cursor for baseline visibility?
Or the changes which allow your brain to act according to different circumstances?

Loosing either is a massive detriment, up to a impossibility to use the product. But you can only choose one solution.

Now, there is something available for Unity which actually allows developers to change the cursor and code it it. But it’s not a viable option and the Unity devs are utter morons for making it the primary and only available solution.
That’s a ‘software rendered cursor’.

For that the understanding between ‘hardware rendered’ and ‘software rendered’ is important to know.

Your cursor runs at the refresh rate of the screen. That means at most modern screen it moves at the speed of 240 Hz, hence 240 FPS basically. That’s very very smooth. With old screen you can see it ‘dragging along’ and leaving a afterimage, making it very hard to depict the actual position of the cursor, and for any game which mandates quick reactions (which an ARPG does) it’s a non-feasable situation.
That’s the ‘hardware rendered cursor’

Now what does a ‘software rendered cursor’ do?
This will be a lengthy explanation so I’ll provide a TLDR:
If your game runs at any time below 120 FPS then your cursor will feel like crap. The less… the worse. Do you run LE at 120+ FPS? I don’t. I don’t know anyone who does consistently without a single dip ever happening.

It runs at the FPS of your software.
LE runs below 120 FPS (awful screen, but doable still)? Sorry… now your cursor doesn’t ‘move’ but it ‘teleports’ instead.
Got a dip in FPS down to 20 for some reason? Now you can watch your cursor getting stuck for 50 ms.

To understand what that means we have to take into consideration how the human brain works with consecutive pictures (hence frames).
Smooth motion happens for us at a minimum of ~24 FPS, we see it as ‘decently natural’. But that’s only if we don’t interact with the medium. That’s how the first movies worked. And if you watch one and actually only focus a moment on the frames you can see them being ‘choppy’.
So 24 FPS obviously it too low.
Modern games work with at least 60 FPS. But that’s only for the feedback back to you. It means to even consider it being ‘smooth’ in some way without realizing a major difference for most people the reaction speed of input versus return needs to be at a minimum of 16,67 ms. That’s already damn fast.
But we need to go a step further even. And that’s ‘Display speed’. And here we get into interesting areas. Modern mouse input is adjusted to our bodily reaction speeds, as that’s how we ‘act’ towards the world. If something takes even remotely close to anything we can perceive to then act we already feeld a disconnect happening.
A ‘normal’ modern mouse-delay is at most 5 ms. That’s 200 FPS speed.
Professional mouses work with down to 1 ms in input delay for a reason.
Screens work at the premise of 240 Hz for competitive minimum. With 360 Hz ones seen as the ‘Professional Standard’ even.

For the absolute minimum acceptable rate we can take 120 Hz… 8,33 ms… or 120 FPS. Anything below is an atrocious feeling, and that’s the absolute lower limit.
And that what your game needs to run at constantly at every single second without fail for a software rendered cursor.

The alternative:
A cursor on the hardware level. This is something Unity has not included, because their leaders are greedy moneybags rather then people who want to provide a good functional product.
So you can only adjust it by enforcing it by creating your own code. Hence writing your own whole program which allows you access to the hardware render of the cursor on the OS-side, for every OS supported.

These are the options.

I appreciate the attempt to explain it to me like I’m brain damaged, but now I’m even more baffled. If the base mouse can only be modified at the game’s startup, then just make it one of those menu options that they tell you requires a restart. Where’s the issue there?

Yeah, I thought the same thing. But it’s a hardcoded aspect which has to be fixated at compilation, not a option for choice after runtime happens.

You literally have no selector option for a hardware rendered cursor in Unity, only for a software rendered cursor. With the exception of interaction on a model as you point at it.

It can’t, the devs can only add different cursors when they compile the exe. Everyone gets the same cursor for any given action/mouse over, Unity doesn’t allow users to choose different cursors at runtime.

I’m getting the weirdest flipped deja vu here with this topic & these user icon-things. At first I thought @DJSamhein had forgotten Unity+cursor & Kulze was having to explain to him…

1 Like

That would’ve been hilarious :joy: