Graphical programming libraries with low graphical requirements

Started by
13 comments, last by UziMonkey 11 years, 6 months ago
Hello, i am looking for a graphical library that has very low system requirements. For a reasonable size project. I couldn't find proper hardware requirements for the libraries(most only really say a basic graphics card with opengl support etc.) and therefore cannot really assume they will work for larger projects(as i found with running opengl games on an intel intergrated card....).

The machines that will be running the programs are very short on vram(2mb i believe) and aren't brilliant for hdd space either(500mb total). So along with a small hdd footprint i am also looking for reasonable graphics with the 2mb i have.

On a side note, how do you calculate the system requirements of your games?

Thank you for your time.
Advertisement
The requirements are calculated based on what processor features you used, how much RAM you need, and what GPU features you use. They are usually only loose guidelines though, because all machines are slightly different.

You can try the Allegro game library. It's a C\C++ library that has been around for close to 20 years.
Thanks, just out of interest are there reasonable alternatives to this?
I don't know of any that would run on that low of hardware.
Thanks. Can the actual processor be used for rendering instead? I think flash does this.
Yes. Allegro can render sprites and basic 3D primitives in software mode.
Is this an embedded system? Can you share the specs in more detail?

When you are dealing with higher-level libraries you might be locked in to what it chooses to use behind the scenes, but I imagine many are pretty intelligent about using what's right based on what the system has. If using a lower-level library like OpenGL or Direct3D, then you're in control of what hardware support gets invoked and you don't pay for what you don't use.

Keep in mind that if you render using the CPU, those CPU cycles can't be used for other things necessary for running the game, like AI, or processing geometry. If the system has only 2MB of VRAM, it sounds seriously old though -- the GPU is probably not much more than a basic blitter, framebuffer, 2D primitives, and cursors. I doubt it has any 3D rendering capability at all and its about a 50/50 shot that there's even scaling or rotation of 2D images. If you somehow find yourself with an abundance of CPU power despite the minimal GPU, you can probably do quite a bit via software rendering, if you've got a similarly-limited CPU, then I suggest probably SDL or Allegro, or for you to write your own tailored graphics routines.

If you have to roll your own, try to find a good graphics text that's from around the same time (2-4 years after, ideally) as the CPU was new -- a lot of what's true about processors today is not true of the processors of yesteryear, so sound micro-optimization advice tends to move on after a new CPU architecture takes hold 3-5 years later. If your processor has SSE, 3D-now, or MMX -- use it.

throw table_exception("(? ???)? ? ???");

Yes, they have 2gb ram and 2.2ghz core 2 duo, shame about the intergrated graphics. Software rendering libraries?
Are you *sure* the graphics card has only 2mb? It's extremely odd for a system with that modern of a processor to have such poor graphics -- even the crappy PCI cards they stick in servers that will run headless for 99.9% of their life come with 8 or 16mb. 2mb isn't even enough to double-buffer any reasonable display resolution. It'd also be fairly uncommon for a core 2 duo not to have integrated graphics, and even if it were something crappy like a GMA 950, it'd be a couple orders of magnitude better than what you describe. If it is integrated, you might just need to turn up the VRAM setting in the BIOS, but I didn't think they allowed you to go down to just 2mb.

What's the exact GPU you're dealing with?

If it is true, then at least you've got a modern-ish, dual-core CPU that you can work with. This will run something like Allegro or SDL quite nicely, as it supports SSE2, maybe even 3 (but 2 is the big one for graphics operations). If you end up rolling your own graphics routines, then the two vectors you've got for good performance are SSE2 (for 3D transformations and block moves, and rasterization if you're clever), and dual-core -- its relatively straight forward to have the renderer running on the second core, since there won't likely be any data-sharing issues.

throw table_exception("(? ???)? ? ???");


Are you *sure* the graphics card has only 2mb?


Yes, definitely double-check this.


running opengl games on an intel intergrated card


If it's an integrated Intel you're talking about, then you have a LOT more than 2mb video RAM (hell, even an original 3dfx from 1996 had more). These generally share main memory with the rest of the system though, so whatever you're using to report the 2mb may be just giving you the wrong figure. Also note that one of the key problems with running OpenGL games on Intel graphics is the quality of their OpenGL driver - historically it's been very poor (their D3D driver is much better and typically all you have to worry about is low performance, although the recent HD series are starting to look quite good).

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement