View Full Version : additional requirements for clanlib apps to run

09-15-2006, 02:03 PM
My current game would not display properly on my friend's pc(windows XP), only one sprite will show at a time.

I tried it on my old pentium 2(windows 98), sure enough, it has the same problem.

I thought it could be something wrong with my game, so I built the AdventureScene under ClanLib examples for a test instead. It works perfectly on my working pc, but has the same problem as my application on my friend's winXP and my win98: only the red pac-man would display, the background and other sprites are not rendered.

You can test my AdventureScene build here.

Did I leave out any required files? The FAQ clearly stated that nothing else is required except the game, as all libraries will be statically linked into the game, but from what I see now it may require the user to upgrade their opengl drivers...

Thank you in advance for any feedback!

09-15-2006, 03:29 PM
Unless you specify otherwise, the ClanLib games are statically linked, meaning you won't need any other files than your game files.

But it absolutely requires a recent OpenGL driver, and a moderately good OpenGL card. Try updating the drivers. Also check what kind of graphicscard there are in these machines. Perhaps they are just too old to properly support OpenGL.

09-16-2006, 01:50 AM
But it absolutely requires a recent OpenGL driver, and a moderately good OpenGL card.

Would you say that developing a casual game intended for the casual portals is suicide with clanlib?

Someone at the chatroom mentioned about using the SDL routines included with clanlib, says it utilizes an old version of directdraw, would that be an alternative?

09-16-2006, 03:39 AM
I think if you released today, you'd definitely have support headaches from casual gamers if you go opengl only. Every year that goes by hopefully the odds of having decent drivers go up, but I don't think we're quite there yet today. (many casual gamers don't even know how to update their drivers...)

I think the optimal solution would be OGL on mac and dx7 on windows, so both can use hardware accelerated zooming and such. Hmm, who wants to write a dx7 renderer? :)

I haven't tried clanlib with SDL yet.

On a side note "Can render only one sprite" seems like an odd problem, maybe there is a workaround we can do for it if the problem can be isolated. Unfortunately I can't reproduce it with my machines to try to debug it.

09-18-2006, 04:12 AM
Both the graphic artist and designer in our team run into the mentioned problem(using the adventure scene as test). Me and the other programmer have no problems running it on our working pc.

I even got the designer to upgrade her graphic card driver via Nvidia's webpage, but after that the problem is still there.

Did a search and it seems there are other cases where after upgrading to latest nvidia drivers but the openGL app still won't work.


I'll get the artist to try upgrading his driver too, but in the meantime, would love any suggestions to solve this problem.

09-18-2006, 07:06 AM
What graphic cards do these guys have?

09-18-2006, 12:12 PM
Ok, I've been working on this with killarkai today, my XP laptop also has this problem it appears. (although, on mine, it just makes the palette go crazy, like the color bit locations are incorrect)

By disabling the use of GL_EXT_abgr in ClanLib it's fixed (it's CL_ABGR in CL_OpenGL::to_opengl_pixelformat), so I figured my laptop just didn't have this extension. I modified opengl.cpp to do a one time check and only use it if it's available. Good in theory, right?

However, turns out my laptop is reporting it *IS* available. So uh.. I'll do some more tests and check this new version on some more computers, I'll probably add a way to just flat out disable all GL extensions for compatibility.

(for some of us this is more important than a slight boost when putting textures into the video card - we'd rather not require driver updates if possible)

This will probably be applied to 0.8 on SVN in the next few days.

PS: Btw, my laptop is Japanese XP with a Rage Mobility, maybe two years old. I've never updated the drivers on it

09-18-2006, 03:59 PM
here's a short update.

Earlier today I tried running the app in 16-bit video mode on the Pentium 2(integrated graphics), and everything turned out fine.

I thought that would do for the time being, get the others to run on 16-bit video mode as well until this bug is fixed.

The designer tried it, nope, didn't work, everything is still the same under 16-bit video mode. The graphic artist tried it and the result is the same.

Then I sent over the OpenGL Extensions Viewer for her to test, to my horror, the tests failed with a crash! Bear in mind she just only upgraded her nVidia drivers (video card: Geforce FX 5700 on Windows XP)a while ago as I instructed! I suspect she wouldn't be the only person on earth facing this problem. I got to go in person to get the computer running in openGL. (maybe reinstall video card drivers, install motherboard drivers, etc)

Would be great if someone could write a dx7 renderer for Windows!

09-18-2006, 10:44 PM
Killerkai, does this version work for you and your artist? (at 16 and 32 bit modes)

09-19-2006, 06:03 AM
My pentium2 only supports 16-bit and 24-bit, the modified adventure scene works fine under both.

My friends' computers are ill-equipped to run OpenGL apps, (although as I posted before this, they just upgraded their video drivers), but I'll get them to test it nonetheless.

Another quick update: We've tried the SDL mode (interesting enough, just a code change from CL_SetupGL setup_GL to CL_SetupSDL setup_sdl will do), and everything works fine on my pentium 2. As mentioned before by one of the clanlibbers, the program suffered a performance hit.

09-19-2006, 06:22 AM
Thanks for the info.

Ok, if I can get you (and your artist or anyone else with this problem) to try one more, please let me know if this one also works. (well, only applicable if the first one also worked)

Misc info:

_fixed1 disabled usage of GL_EXT_abgr, Test2 disables it if the drivers will properly admit to not supporting it. I'm just curious if the drivers pretend to or not. (mine did)

I'm going to commit some changes to CL that will allow you to do this:

CL_OpenGL::ignore_extension("GL_EXT_abgr"); //must be done before ogl is initted

and internally CL won't try to use it for those that want ultimate compatibility. Otherwise, it will now query for support instead of assuming.