Hiding the mouse cursor (DEF-1619)

any more updates on if this is possible??

You can hide your cursor using DefOs DefOS - Extra native OS functions
And then add your own cursor in on_input method

2 Likes

I’m almost inclined to say that this issue should be closed. Yes, nice to have it in the engine, but if it’s readily available in an extension then it’s unlikely that we’ll give an engine integrated solution priority.

I’ll try to make example project and upload to github.

1 Like

I’m still of the opinion that all features of DefOS has should be core Defold eventually.

2 Likes

simple example
Custom Cursor Example.zip (2.2 MB)

I disagree with you.
As I told earlier modules with special functionality this is good architecture in my opinion. Better than huge engine with million api methods, and games which use only 1% of them.

I hope in future all exernal dependencies and appmanifest modules would be connect to the project by checkboxes (config with all modules can be generated and downloaded from the community page, for example).

3 Likes

Modularity is good and the appmanifest features are very good. I still think these features belong in core Defold and maintained by Defold team because they are universally important for shipping commercial games, maybe as an OS module which still be enabled or disabled with an appmanifest option.

2 Likes

I agree with both of you. :slight_smile:

It’s great that DefOS is a module that you only add in if you need it. Plus, mobile and web projects especially need to keep the size down.

But . . .

To be honest I don’t like ^ this ^ very much (no offense, Britzl). The things that DefOS does (and more) are pretty much essential for any desktop project. The current built-in desktop support is so limited, I really don’t think it’s possible to make a desktop game without an extension—at least not a polished and professional one.

This could be a long discussion, but anyway, I still hope for full, official support for desktop. Defold would be ideal for desktop games, if only it had these features! People won’t choose an engine unless it already provides the things they need. (like this guy)

6 Likes

after years of this topic, what is the easy way to hide mouse cursor now?!

I have downloaded this example, i still see mouse cursor in game(windows 10)
edit:
i have one error:
ERROR:GAMESYS: Error running Window callback: /main/cursor.script:5: attempt to call field ‘enable_mouse_cursor’ (a nil value)

You should add DefOS.
Also its api has changed.

defos.set_cursor_visible(bool_value)
4 Likes

Thanks selimanac, does it workson html5 too?

I don’t know, I didn’t try it with DefOS.
You can simple hide cursor by using css+js on html page for canvas without defos. But hiding cursor on html canvas pretty weird to me.

1 Like

I’m enjoying developing in Defold and I understand that it leans more towards a framework than a game engine but even love2d framework has a built-in,

love.mouse.setVisible(false)

This is such a basic requirement, using plugin for it feels like an overkill!

1 Like

Funny that you just replied to this…I read this post yesterday and was disappointed to find out I have to use an add-on. Plus when it’s a built-in the documentation can be consistent and easily found.

Maybe if they had approved add-ons that they referenced in their documentation and even put them in the engine for ease of adding them it would be better. And it would clue people in on where to get this functionality.

1 Like

Yes, we have the intention to add things like this but it is dependant on finishing the GLFW3 update for linux, which is already in flight. I hope we can get the new functions in before christmas.

2 Likes

Most of the time, every developer believes that a particular feature they need for their game should be part of the engine. However, if the engine were to include every feature that each individual developer considers a “must-have,” it would become bloated, with a large size and 90% of features unused by most individual games.

You may argue, “No, not all of them, only this one—it’s so obvious.” To that, I would respond: I’ve heard this argument countless times about thousands of different features. That’s why extensions exist.

4 Likes

I am totally onboard with keeping the engine minimalist, avoiding bloat and using plugins.

However there’s a risk of minimalism descending into austerity and that might give a perception that using Defold has too many friction points compared to other similar frameworks like love2d.

As users who love Defold it is our responsibility to point out friction points and gaps, then leave it to the wisdom of the Defold team to fill those gaps.

Recent reply by @jhonny.goransson gives hope to those who would like this feature built-in.

I’m not opposed to this particular feature, and it’s likely that it will be implemented in the engine. I’m simply trying to explain the reasoning behind it.
The frictions you mentioned are the cost of other benefits, such as speed, small size, fewer breaking changes, etc.

Not exactly sure what the difference is here, but yes we are pretty strict with this approach. If there’re is enough users/benefit to be included in the default functionality, we do it.
If it can be done by the user in Lua or via an extension, then we do that.
So it’s not a whole process, but fairly strict guidelines.