What are the downsides of using ebiten as a gui software? #2208
-
If I wanted to create an app, say for example a text editor, why not to use ebiten? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
You are not alone. In Discord, Nicolas posted in #show-and-tell a preview of their progress for their own text editor (02/19/22) |
Beta Was this translation helpful? Give feedback.
-
Simply, because Ebitengine is not oriented to those use-cases. First, the UI libraries for Ebitengine are usually not general purpose UI libraries, but libraries oriented to games. There's ebitenui, but you will find better libraries on environments focused on general purpose application development. Another example is text. System fonts are not actually a big problem, but there are many other important issues if you want to support multiple languages: text shaping is currently not possible on Ebitengine. Mostly because /x/font/sfnt doesn't support it. Gio and Fyne use libraries developed for them, porting HarfBuzz or others precisely because Golang support on that front is very lacking. Another important concern is performance. Ebitengine will be less performant, simply because it makes other trade-offs in pro of portability, it handles many kinds of inputs, and it's basically a single-man project where you can't expect things to be as well optimized as on bigger projects. Maybe it will get better in the future, but from what I can tell and tests on raw glfw, there's a lot of room for improvement there. With all that being said... if you don't intend to support complex scripts for languages like Arabic and you are not trying to build the next big text editor but rather an experimental tool or a tool for yourself and a few others only, then developing on Ebitengine may allow you to move forward more quickly due to the simplicity of the API. I generally think your choice of using gio is a good idea here. Consider also fyne. Beyond that, I was only replying to add more context and be potentially helpful to anyone else that may search for this in the future. EDIT / 2023 Update
The general conclusion doesn't change a lot, but some things have indeed improved a bit. |
Beta Was this translation helpful? Give feedback.
Simply, because Ebitengine is not oriented to those use-cases. First, the UI libraries for Ebitengine are usually not general purpose UI libraries, but libraries oriented to games. There's ebitenui, but you will find better libraries on environments focused on general purpose application development. Another example is text. System fonts are not actually a big problem, but there are many other important issues if you want to support multiple languages: text shaping is currently not possible on Ebitengine. Mostly because /x/font/sfnt doesn't support it. Gio and Fyne use libraries developed for them, porting HarfBuzz or others precisely because Golang support on that front is very lacking.
A…