Software devs: what's the good GUI library or framework or language with excellent 2D support?
-
@thezerobit I personally enjoy Qt (with C++) -- but I think you knew about this option without my reply. Pros: decent OOP abstractions, cons: Qt is a framework, it is nudging you to program in a specific style.
More relevant: @aeva are working on a visual programing thingy and have a very long thread (tm) about their experience. I think they used SDL for graphics and audio; I will link to the thread in a reply once I look it up -- it has good ideas even if you choose a different route.
@anton @thezerobit I'm SDL3 for graphics. Specifically I am currently using their basic "renderer" module, not their "GPU" module. I am also planning on switching to using OpenGL ES2 to do the drawing (while retaining SDL3 for window and rendering context creation, input event management, and eventually using their audio API as a fallback audio backend).
I'm not presently using SDL3 for any audio or MIDI functionality, I'm just calling the relevant platform APIs directly at the moment.
-
@anton @thezerobit I'm SDL3 for graphics. Specifically I am currently using their basic "renderer" module, not their "GPU" module. I am also planning on switching to using OpenGL ES2 to do the drawing (while retaining SDL3 for window and rendering context creation, input event management, and eventually using their audio API as a fallback audio backend).
I'm not presently using SDL3 for any audio or MIDI functionality, I'm just calling the relevant platform APIs directly at the moment.
@anton @thezerobit I highly recommend using a generic 2D graphics API (SDL3, Cairo, etc) instead of an opinionated toolkit like QT, as visual programming languages tend to follow eccentric interaction and presentation conventions and you don't want to be fighting with your tools every step of the way.
-
@anton @thezerobit I highly recommend using a generic 2D graphics API (SDL3, Cairo, etc) instead of an opinionated toolkit like QT, as visual programming languages tend to follow eccentric interaction and presentation conventions and you don't want to be fighting with your tools every step of the way.
@anton @thezerobit this is the current tail of my devlog thread for my visual programming language Mollytime
-
@anton @thezerobit this is the current tail of my devlog thread for my visual programming language Mollytime
@anton @thezerobit the thread starts with me hashing out ideas and planning out the semantics I want before diving into prototyping. I went into it with some very specific ideas for using 2D procgen to solve things I find irritating about conventional visual programming languages like wire placement. I still intend to implement some of these ideas, but I've found early on that doing things simplest way possible was quite tolerable, and so my attention has mostly been on the synth pipeline.
-
@anton @thezerobit the thread starts with me hashing out ideas and planning out the semantics I want before diving into prototyping. I went into it with some very specific ideas for using 2D procgen to solve things I find irritating about conventional visual programming languages like wire placement. I still intend to implement some of these ideas, but I've found early on that doing things simplest way possible was quite tolerable, and so my attention has mostly been on the synth pipeline.
@anton @thezerobit in general, I've prioritized ease of development over long term correctness, and through the benefit of experience I've mostly avoided painting myself into a corner architecturally. This has allowed me to build out all of this in about 7 months. I hired a friend to help out for about four weeks, and in that time he set up a build system and replaced pygame with SDL3 for me.
-
@anton @thezerobit in general, I've prioritized ease of development over long term correctness, and through the benefit of experience I've mostly avoided painting myself into a corner architecturally. This has allowed me to build out all of this in about 7 months. I hired a friend to help out for about four weeks, and in that time he set up a build system and replaced pygame with SDL3 for me.
@anton @thezerobit and by far the biggest time sink by a long shot has been fighting with Linux's utterly slapdash support for multitouch screens.
-
@anton @thezerobit and by far the biggest time sink by a long shot has been fighting with Linux's utterly slapdash support for multitouch screens.
@anton @thezerobit it also helps that the language runtime itself under the visual representation was something I already knew how to build, as this project follows many prototypes, and other language experiments before it
-
@anton @thezerobit it also helps that the language runtime itself under the visual representation was something I already knew how to build, as this project follows many prototypes, and other language experiments before it
@anton @thezerobit my recommendation is to find a 2D drawing API that you like, and experiment with drawing the basic primitives of your language, and seeing if it scales up acceptably. Once you have that, you can work out how to make those experiments parametric, and how to connect them to the underlying runtime of your language. Pick interaction semantics that are easy to implement. Every button in mollytime triggers on mouse down instead of up for example.
-
@anton @thezerobit my recommendation is to find a 2D drawing API that you like, and experiment with drawing the basic primitives of your language, and seeing if it scales up acceptably. Once you have that, you can work out how to make those experiments parametric, and how to connect them to the underlying runtime of your language. Pick interaction semantics that are easy to implement. Every button in mollytime triggers on mouse down instead of up for example.
@anton @thezerobit this project has taken up the majority of my free time and spare thought this year. I have no regrets. It is magic. It has been very rewarding and I highly recommend making visual programming languages.
-
@anton @thezerobit this project has taken up the majority of my free time and spare thought this year. I have no regrets. It is magic. It has been very rewarding and I highly recommend making visual programming languages.
@aeva
Wow, thanks for sharing your experience and thoughts. I've spent some time working in the game industry, too, albeit nearly 20 years ago (Wii, PS2). A lot of what you said makes sense, I do think I need to probably build the elements from primitive graphical elements to get an interface that isn't jank. I'll have more to say when I've had some free time to look into what you've been working on a bit deeper. Cheers! -
undefined oblomov@sociale.network shared this topic
-
@aeva
Wow, thanks for sharing your experience and thoughts. I've spent some time working in the game industry, too, albeit nearly 20 years ago (Wii, PS2). A lot of what you said makes sense, I do think I need to probably build the elements from primitive graphical elements to get an interface that isn't jank. I'll have more to say when I've had some free time to look into what you've been working on a bit deeper. Cheers!@thezerobit I am happy to elaborate on anything or chat more on the subject if you want someone to bounce ideas off of and so on. What games did you work on?