It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
I am wondering if there is a decent graphics library that would fit these criteria:
* Must not depend on there being a GPU
* Must not depend on any of the 3D graphics APIs (so no requirement for OpenGL, DirectX, or similar)
* Must be portable (at least to Window, Mac, Linux; ideally should be easy to port to other systems, including embedded systems)
* Must be callable from C code (I don't want to restrict my choice of language here, and C can be called by basically any major language) and must not bring in a large runtime
* A 2D game made using this library should run at least as well as a similar game running under emultation, preferably much better; furthermore, the GPU should not be required for such performance
* Must be open source

(Note that 3D is a non-requirement here.)

So, any recommendations?
Allegro
http://embeddedlightning.com/ugui/ ?
SDL
avatar
Barefoot_Monkey: Allegro
I was going to suggest this one.
My first ever attempt at making a game was with Allegro.
avatar
kbnrylaec: SDL
SDL is a library that will be getting support for a long time. It's not just a graphics library, it's a general hardware abstraction library, it can handle things like gamepad input or sound playback as well.
Voting for SDL too
avatar
Barefoot_Monkey: Allegro
avatar
adaliabooks: I was going to suggest this one.
My first ever attempt at making a game was with Allegro.
Another vote for Allegro.
I thought the point of the thread was looking for alternatives to sdl, sfml etc
SDL
There's really no better options than the two stated; SDL and Allegro. The other alternative is to write your own. I've done this and it's a lot of work.
avatar
dtgreene: I am wondering if there is a decent graphics library that would fit these criteria:
* Must not depend on there being a GPU
* Must not depend on any of the 3D graphics APIs (so no requirement for OpenGL, DirectX, or similar)
* Must be portable (at least to Window, Mac, Linux; ideally should be easy to port to other systems, including embedded systems)
* Must be callable from C code (I don't want to restrict my choice of language here, and C can be called by basically any major language) and must not bring in a large runtime
* A 2D game made using this library should run at least as well as a similar game running under emultation, preferably much better; furthermore, the GPU should not be required for such performance
* Must be open source

(Note that 3D is a non-requirement here.)

So, any recommendations?
I've been trying to tackle this issue, too, so i've come to an unahppy conclusion: what i really need is a reliable standard for more than just graphics. I need to make a VM, which is easier done than said, believe it or not, but then you get performance hits and such. Depends on what you want to do, and if i ever get bored enough to finish project Amber, i'll actually go ahead and make the VM in javascript (with HTML5 canvas, obviously), SDL for windows, probably do something to make it work for android, and so forth. I'm just sick of not having a reliable platform to work for, and Java just plain isn't the solution, realistically.

EDIT: To be clear, the slowdown of graphics issues with the VM idea can be mitigated with proper planning.

One of my bigger requirements is being able to, essentially, develop games on any platform with a C++ compiler for any platform, so once the VM is made, I could develop apps/programs for my VM using Termux on an android tablet with a keyboard.

EDIT2: For clarity, my option, naturally, makes no sense for you. What you should take from this is maybe abstracting the graphics library itself, so that anything you make you can easily port to other platforms, if needbe, simply by rewriting your interface to the underlying graphics library. Since my graphics implementation will rely on something similar to xpm files, unless you work for a large company with alot of artists, i'm willing to bet this would be fine for you, too. Even if not, odds are you just want to throw something on the screen, anyway, so having a "load image" and "place image" and "hide image" and "flip" set of functions would probably be easier for your goal in the long run.
Post edited August 11, 2018 by kohlrak
Are there today any systems out there without Opengl support? I think it's ubiquitous.
Anyway I know that you want something which supports C, but if at any point want multiplatform in a different language, I can warmly recommend LibGDX (Java, Kotlin). Performance is really good actually since the graphics is an Opengl abstraction.
Otherwise +1 for SDL from me also.
sdl [4]
avatar
blotunga: Are there today any systems out there without Opengl support? I think it's ubiquitous.
MacOS sadly. And no, nobody is going to waste time on Metal for a few hundred sales :( So that's MacOS completely dropped by thousands of game developers which is probably what they wanted to achieve with this, to make it look like a "serious" platform...