Domain: ggi-project.org
Stories and comments across the archive that link to ggi-project.org.
Comments · 55
-
GGI Project
and there is libgii for keyboard/mouse input........ http://www.pl.ggi-project.org/
take a look at the screenshot, different no? example screenshots
-
Don't forget PenguinPlay, GGI and GSI
PenguinPlay games SDK (probably the API that compares most closely to DirectX) at http://sunsite.auc.dk/penguinplay/.
GGI (General Graphics Interface, compares to DirectDraw, Direct3D and DirectInput portions of DirectX) at http://www.ggi-project.org/.
GSI (General Sound Interface) at http://wouters.www.cistron.nl/gsi/gsi.ht ml.
All these projects could use some help from any of you out there with a bit of free time.
-
Q3test for Linux?
a new 990329 tarball snapshot of GGI...did you look at GGI lately?
-
It's not MesaGL + other comments (DirectX sucks)
This is nitpicking, I know; sorry.
But Brian Paul has asked that it not be referred to as "MesaGL". It is the "Mesa graphics library" or "Mesa 3D library". It is OpenGL-compatible, but it is NOT a licensed implementation of OpenGL, which is why, I believe, he prefers people to not use "GL" with it.
Mesa is not all that similar to DirectX. Mesa is similar perhaps to a combination of DirectDraw and Direct3D (which are large parts of DirectX.) Mesa (and OpenGL) are much cleaner and better designed and more efficient. Direct3D has more features, although is a horrible nightmare to program. OpenGL is lower-level
.. it is more similar to the immediate mode portion of Direct3D only. People also seem to forget that OpenGL is a 2D graphics lib as well.I would hate to see DirectX on linux. DirectX is, techically, a total horrific kludge; and ONLY Microsoft could ever have gotten away with forcing something so awful down the throats of developers, hardware vendors and consumers. The linux world should be able to come up with a much cleaner design, but it is going slowly - there is not enough support.
Promising libs:
Clanlib (http://www.clanlib.org/.)
GGI (http://www.ggi-project.org/.)
PenguinPlay games SDK (http://sunsite.auc.dk/penguinplay/.) (This is the closest equivalent to DirectX in the free software world.)
To any developers out there with a bit of spare time, please support these projects!! Either directly, or write apps for them!
It would be ideal if we could see some major software vendor (with a commercial interest in seeing a decent cross-platform API which could be used to make games for Linux and Windows) could lend some full-time developers to one of these projects, such as PenguinPlay SDK and/or GGI.
-
Roadmap for Linux Gaming Support
Oh dear, you've gotten me started. As an occasional game author myself, I have some perspective on this (with lots of lessons learned the hard way from both sides), and it just happens that I've been thinking about this issue lately. Here are some things I believe Linux needs to improve its appeal to gamers and game developers.
Transparent Access to Full Screen Display Modes
SVGAlib has been an excellent tool for a long time, but it's starting to show its age, and it supports considerably fewer cards than the current release of XFree86. Further, it's silly to have to write a driver for the same card two or more times (once inside XFree86, once inside SVGAlib, etc.). I've read the work of The GGI Project, and I suggest interested techies do, too. There are no glaring flaws in the design (though it has odd warts here and there), and with work it could become an excellent foundation for high-performance graphics device control and configuration. SVGAlib and XFree86 could both be built on top of this structure. Thus, drivers would need to be written only once. I've love to see this move forward.Unlike Windoze display modes (which all come out of a fixed table), Linux should be able to generate any resolution and scan rate the card can physically generate. Multi-monitor support would also be nice, but this is much harder (trust me on this one). Also, you should be able to launch a full-screen app from inside XFree86, and neither XFree nor the app should care (being able to switch back and forth would be nice, too). Ambitious souls may care to emulate BeOS's "Workspaces", where each virtual desktop can be a different resolution, scan rate, and pixel depth.
There also needs to be work done on supporting VESA DDC (Display Data Channel) which allows the system to identify the attached monitor and determine its scanning limits (thus alleviating the need for the dreaded mode table in XFree86config; just ask the monitor what it can do). We may also need to beat up on VESA to make its standards more readily available.
Expansion of OpenGL Efforts
OpenGL is the future of 3D gaming (just ask John Carmack). While Mesa is an excellent first step (and very complete), its performance is poor compared to OpenGL ICDs available for Windoze. Basically, we need to get the triangle counts up. Part of this can be done by optimizing Mesa. However, a significant portion of the rest has to be done by or in cooperation with the 3D card manufacturers.A standard interface needs to be established between Mesa (or whatever OpenGL implementation ends up dominating) and the graphics cards. This will allow for Mesa and the hardware drivers to be evolved and optimized independently of each other. It also allows users to plug in any compliant card and expect it to work. This GL/hardware interface can be established at the driver level; the GGI people probably have suggestions on this.
Finally, everyone reading this article needs to beat up on the 3D card vendors to support Linux. Roughly half of all Quake servers are running on Linux. 3D card vendors live or die based on their Quake frame rates. Why should a server operator have to crash back into Windoze just to test out the latest RA/TF/CTF/LMCTF release? This alone is compelling enough reason for the 3D vendors to formally support Linux.
New Sound Architecture
OSS is functional (it works well for Quake and MikMod), but modern gaming requires much more. Sound has always been my weak point, so I don't have a lot of concrete ideas here. ALSA (Advanced Linux Sound Architecture) looks interesting, but I lack the knowledge to evaluate it properly.Basically, the goals of the sound API need to include extremely low latency and low overhead. The system shouldn't be eaten alive just mixing and playing back sounds. Also, for applications that do buffer sounds ahead of time, there should be an event system built in such that the application can be informed when a particular sample or sample segment has started playing. This allows the client to synchonize other events (explosion visuals?) with the audio.
Networking
In my view, very little needs to be done here. Linux's socket API is one of the most reliable and complete implementations anywhere. There's no reason a game can't directly use network sockets.Input Devices
Again, the keynote here is low latency and high sample rate. Most PS/2 mice will run at higher baud rates (if you're running Windoze at the moment, grab a copy of PS/2 Mouse Rate and see for yourself), so the mouse drivers should have the ability to tweak this.I'm not as convinced that USB is important, but in order to get that to work, you better start beating up on Intel for the specs now. Intel's documentation department can be slow to respond (I'd use the term "glacial," but that conveys an unwarranted sense of haste). USB is a non-trivial beast. Getting all the device types, hubs, and hot-plugging issues down is going to take time.
Anyway, that's pretty much what's on my laundry list. I also have specific ideas on how some of this might get implemented. If I wasn't so darned employed, I'd probably be working on some aspect of this stuff.
Thanks for reading.
Schwab