Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Quake First Person Shooters (Games)

Quake3 Arena on Linux 92

Bill Lynch wrote in to send us a quick quote from John Carmack's most recent .plan update: "Q3test, and later the full commercial Quake3: Arena, will be simultaniously released on windows, mac, and linux platforms." The plan also has a pretty lengthy discussion on the new Apple boxes and games. Comments about Code Warrior for Linux and the like. Interesting stuff.
This discussion has been archived. No new comments can be posted.

Quake3 Arena on Linux

Comments Filter:
  • Regarding the banshee, Daryll is making progress on it according to his news page, and for the new voodoo3 board, they mentioned Linux as supported in the press release.

    For news about 3d on Linux, particularly 3dfx related, look at http://glide.xxedgexx.com/
  • Finally, someone who understands that programming in a GUI IDE is a lot more powerful than a few xterms running vi and gdb.

    Now if there was only a nice complete GPL'ed IDE as full featured as MS Visual Studio or Borlan.. er Inprise's offering.. maybe I can get some real work done :)
  • Well lets see.

    Project management provides a method of replacing Makefiles which is not only faster, but provides multidirectory dependancies easily.

    Most debugging environments will open the correct source file to the exact line which was causing the problem at any breakpoint. This speeds things up quite considerably when you are working with a lot of breakpoints which happen to have functions in multiple files.

    A single, unified editor for all code editing complete with multiple language syntax highlighting and function lookup/mispelling detection. Not many IDEs contain function lookup/mispelling detection, but it is quite nice when you do have it. Some will even warn you if you forgot a { when starting a function definition.

    The end to the debate about how many spaces you should indent your code. When working in a GUI IDE, they almost all have tab-stop settings. Although this is true under a lot of editors, some IDEs will have ruler style tab-stop settings so the first tab is at 8 spaces, the second tab is at 4 spaces, the third.. etc etc.

    Integrated compiling lookup. Similar to the debugging environment, open the file which caused the error to the correct line. Very handy.
  • Well... will quake3 have the linux binary on the CD?
  • In my experiances with the codebase for Quake2 (I don't mean gamei386.so or whatever; i mean the quake2 binary and the gfx libs), it is semi-portable. some stuff is windows specific, and takes some fixing, and many re-compiles, but after a while, it compiles pretty well and runs without crashing.
    I think whenever a new version of Quake2 comes out, Zoid just applys a "Linux patch" and compiles, but dont quote me on that.

    In short, it dosnt compile out of the box (./configure;make;make install) but after some cutting-windows-crap-out and stuff it works nicely.

    my $0.02
  • Speaking of IDEs, is there any IDE for Linux that uses ANSI graphics (perhaps in a color xterm)? I'm still using Borland Turbo C/C++ v3.0 for DOS (from 1992) to write most of my code because it's much more useful than any graphical (windows and/or X) IDEs I've seen.
  • But, WebSite Pro is from Oreilly. Yeah, the book guys. That software is really good.

  • Though I'm no Emacs user, I'll agree that Emacs appears to do most of the tasks people desire in their graphical IDE's. Like vi, however, there's a lot you have to learn about Emacs before it can be usable, and a bit of configuration needed to make it useful as an IDE. Your average GIDE is typically ready to go out of the box. I can usually hop on any Windows IDE that I've never used before and crank out a simple GUI app in a few minutes.

    Like most Windows vs Unix apps, the Windows versions tend to be easier for new people to learn, but in this case, I don't think anything Unix-based will be any more powerful than what's already available for Windows. With the exception of my "vi lapses" (hitting escape all the time, etc.), Microsoft's IDE is extremely powerful and, quite frankly, speeds my coding time considerably over my (non-Emacs-based) Unix equivalents. Like I said, though, I haven't tried Emacs, so that might be just as easy... I'd recommend you try programming in VisualC++ or J++ on Windows and see what I mean.

    Not to start another tab-stop war or anything, I really have to disagree about your argument against hard tab stops. Most all programs have the ability of adjusting the amount of space used by hard tab stops. I routinely set my tab stops in vi to 4 spaces. If someone else prefers a different number of spaces for indentation, it's a simple matter to set the tab stops to the value of their choice. Using 3 or 4 spaces when you're coding forces everyone to look at your source using your preferred "tab stop", and their coding habits may differ, causing the code to be a mish-mash of different spacing styles. If everyone uses hard tab stops and adjusts their editor appropriately, everyone is happy.

    Where I work, there are three other coders that I routinely work with. One uses hard tabs, like me, and adjusts his tab stops to 3. The other two use spaces (2 and 4). Code that the "space people" have collaborated on tends to get very messy (especially when cutting/pasting and re-indenting so that the pasted block matches up with the code that already exists). Quite frequently, someone will miss a space or add an extra space, and things never quite line up. When I collaborate with the other "tab guy", our code is always very neat, indented precisely and generally very easy to work with. It's very easy to make code changes in simple editors like 'vi' without auto-indentation.

    As you might expect, when a "tab person" and a "space person" end up collaborating, the results tend to be disasterous. The only thing worse than using spaces inconsistently is using tabs *and* spaces.
  • While most of my programming is done on Unix, occasionally I'll write some Java using VisualJ++. In addition to the GUI building portion of the IDE, the actual *coding* is considerably easier than most anything I've dealt with.

    As you code, the IDE will note the types of classes and objects you declare, and as you use them, it will give you pop-up menus (in a passive, background sort of way so as not to interfere with your coding) with all of the possible methods and properties, so if you're not totally familiar with a class, or forgot how you declared it, you can see and choose from the list (or just keep typing). I find this feature extremely useful.
  • I'm not an Emacs user, so someone else might have the proper solution, but I would look and see if you can tell Emacs to use a different character besides a space for indentation (i.e. a hard tab), and set your indent level to 1? It would "auto-indent" 3 "spaces" (tabs) if you were 3 levels deep...

    Not sure if this is even in the right ballpark, but it might be a usable hack. For all I know there's an Emacs option specifically designed to do what you're trying to do.

    Good question.
  • When develoing software with CodeWarrior, I don't have to remember the different -W flags to
    turn warnings off -- I go to the "C/C++ Warnings" panel in the Project Settings and click on
    checkboxes. When adding a source file to a project, I can just click on the targets I want it added
    to. To check in a modified file, I just select it in the project window and choose "Check In" from a
    menu. I never have to touch or even think about a makefile, because the IDE does dependency
    tracking for me.


    I see. You don't want to learn anything extra?
    BTW, autoconf and makedepend are both usefull tools.

    Checking in and out can be done in just about any Unix editor. I use Nedit and have ClearCase integrated in where I can do just about any ClearCase command just from the menus.

    In other words, it lets me focus almost completely on writing code.

    Doesn't look like you are now ;)

    The only problem with it is that the project file format's not open. But to me, it's not a big
    problem...


    Indeed!

    "In true sound..." -Agents of Good Root
  • This is in response to the other posters in this subthread...

    The big benefit of an integrated development environment like CodeWarrior is that it maintains and manages your projects for you, not because of any sort of interface construction. (IDEs often include interface-construction tools, but they're not the reason for IDEs' existence.)

    When develoing software with CodeWarrior, I don't have to remember the different -W flags to turn warnings off -- I go to the "C/C++ Warnings" panel in the Project Settings and click on checkboxes. When adding a source file to a project, I can just click on the targets I want it added to. To check in a modified file, I just select it in the project window and choose "Check In" from a menu. I never have to touch or even think about a makefile, because the IDE does dependency tracking for me.

    In other words, it lets me focus almost completely on writing code.

    And for the vast majority of Macintosh projects, the IDE is flexible enough that you don't have to worry about not having makefiles or anything like that.

    The only problem with it is that the project file format's not open. But to me, it's not a big problem...

    Also, at least CodeWarrior is not a monolithic tool. There's the project manager -- the IDE proper -- which hosts compilers, preference panels, linkers, etc. as plug-ins, and also has an excellent syntax-aware text editor and class browser. Then there's Constructor, the interface construction tool, and ResEdit or Resorceror for editing resources. So while it's a complete environment, and some pieces of it do run in the same memory space, it's not all that huge or monolithic.

  • You wrote:
    Most of the exceptions that drop me into the debugger on the Mac would probably not have been helped by guard pages - the exception happens in the system code after you feed it some stupid parameter value... sure, it is usually a memory access exception but it isn't in your code - so who catches it and who cleans up???
    Buy yourself a copy of Spotlight from Onyx Technologies [onyx-tech.com]. It's like Purify for the Mac -- it provides protected memory and system call parameter validation and memory leak detection for code run under it. It works incredibly well for a product that's still in development, and compared to equivalent utilities on Windows and Unix (Purify) it's really cheap.

    If these memory bugs are in other peoples' software, email or call or write them and tell them to run their code through Spotlight. It can really help you clean up your code and make it rock solid.

  • It's modeled after CodeWarrior and uses the compiler of your choice.
  • It's funny someone mentioned that MacKiDo article [mackido.com]. I was just musing on the definition of "real stability" after hosing X Windows on my Linux box while improperly (I guess) updating kdelibs in order to get Korganizer running.

    Anyway, I've always read Carmack's take on the Mac with interest. Since I know nothing about gaming (vanilla Angband is still my game of choice), I'm curious about how much credence to give his opinions. Should Apple drop everything and do what he says? Is he a lone crank? Or somewhere in the middle? I'm curious to hear what knowledgeable people think.

  • Although I totally agree that the using a PPC on a mac is vastly overrated, I am very curious to find out how fast the PPC is compared to Intel's offerings, if the MacOS wasn't slowing down the PPC so much. Has anyone done any sort of benchmarking in comparable builds of Linux to test out how much faster the PPC would be than the PII, if the OS wasn't slowing it down so much?
  • Look, that guy is a zealot and a kneebiter.

    Trut is, it *hasn't* been fixed yet; guard pages don't go into the os until spring.

    FWIW MacOS does NOT crash like that under normal (and even stressed) operation anymore...Even Netscape has a hard time kiling it these days...

    An honest, foaming-at-the-macmouth-free post.

    -K


  • I grabbed the following off of voodooextreme (http://www.voodooextreme.com) from Zoid about the Q3A's Linux support:

    ---

    "My current platform support for is clients on Linux x86 and SGI IRIX. For servers I'm supporting Linux Alpha, Solaris x86 and Solaris Sparc. LinuxPPC may be considered, but I couldn't get LinuxPPC to install on my Mac G3 machine.

    Quake3 is a hardware _ONLY_ game for visuals. You must have OpenGL hardware support. Currently, that means MesaGL with VooDoo, but I have also got stuff working with XiGraphics Accelerated X11 as well. I have hardware Quake2 up and running with a Number Nine Revolution III card using OpenGL on it. I'll be testing Quake3 with it shortly. :)

    So, the plan is hardware OpenGL support under Linux for MesaGL w/VooDoo, and XiGraphics Accelerated X with OpenGL (with serveral different cards supported). I'm also working with the Metrolink guys who are building accelerated OpenGL X servers as well.

    Currently, there isn't any hardware OpenGL support for platforms such as Linux Alpha. Sun does have hardware OpenGL on their new UltraSparc Creator workstations and I'll be investgating support for that as well. I'd like to see Quake3 running on every platform that supports hardware accelerated OpenGL."

    ---

    Since he's got it running under Mesa for Voodoo boards, I assume you might still be able to run it, albeit slowly, under Mesa in software mode (or is there a flag somewhere within Mesa that one can check to see if hardware support exists?).

    Personally I don't have a Voodoo board and I'm not about to shell out $200 or more for a commercial X11 distribution so I guess I'll be playing Q3A on my Windows box...
  • Linux Alpha
    Linux i386
    Solaris SPARC

    If you finger zoid@idsoftware.com, you should see links to those versions I think.
  • IDEs can become a bit smarter about code than just a bunch of text in files. Look at ObjectMaster, or SlickEdit for example. This programs know all sorts of stuff about a _project_ that an editor will not know. Will warn about syntax problems. Knows which functions/methods call from where and to where. Has macros for commonly used programming syntax. Adds your functions into the macros, complete with parameters. _Structured_ ( ie not simply a grep ) search project wide. When using a program like these I spend less time worrying about location of code, and syntax of code, and more timing thinking about algorithms and structure. Intelligent about OO code as well. Knows about inheritance etc. All in all a big win.

  • Isn't that what traps are for? I'm not entirely clear on linux's usage of traps, but I thought you could use them for stuff like syscalls
  • My current platform support for is clients on Linux x86 and SGI IRIX. For servers I'm supporting Linux Alpha, Solaris x86 and Solaris Sparc. LinuxPPC may be considered, but I couldn't get LinuxPPC to install on my Mac G3 machine.

    Quake3 is a hardware _ONLY_ game for visuals. You must have OpenGL hardware support. Currently, that means MesaGL with VooDoo, but I have also got stuff working with XiGraphics Accelerated X11 as well. I have hardware Quake2 up and running with a Number Nine Revolution III card using OpenGL on it. I'll be testing Quake3 with it shortly. :)

    So, the plan is hardware OpenGL support under Linux for MesaGL w/VooDoo, and XiGraphics Accelerated X with OpenGL (with serveral different cards supported). I'm also working with the Metrolink guys who are building accelerated OpenGL X servers as well.

    Currently, there isn't any hardware OpenGL support for platforms such as Linux Alpha. Sun does have hardware OpenGL on their new UltraSparc Creator workstations and I'll be investgating support for that as well. I'd like to see Quake3 running on every platform that supports hardware accelerated OpenGL.

    /// Zoid.
  • who on earth is doing that still?
    editing multiple files), and I use plain gdb as a debugger, when strace isn't enough. I've used IDEs before, in the days of MS-DOG, and I don't want ot go back there. I could use 'ddd' sometimes, but I'm generally too lazy to keep it around, and gdb is good anywya.
  • Quite simply, carmack may be the greatest coder to live on this earth. He is always one step ahaed of the pack in whatever he does. To give an example of how good he is, he offhandidly mentioned that he wrote a voxel renderer for quake2. I mean offhand, he mentioned it like he had simply added another weapon. He has also caused microsoft to change it's stance on OpenGL, though, not much admittedly. After he started a movement, which gained several other developers, MS promised to work with SGI in making a new 3D API. Kind of an amalgam of Directx and OpenGL i guess.
    So basically, anything carmack says is probably correct. He is a very thorough coder. After listening to him speakign about some of the problems he had encountered during quake/quake2 development, he was certain that the way he had gone was the best way, because he had tried every other way and they just didn't work as well.
    Another cool thing mentioned, i beleive in Adrian Carmacks book (no relation), is that John wrote the dynamic lighting code for Quake in an hour. I just thought that was amazingly cool
  • The Reason idsoftware.com runs linux is because Disruptor is their siteop. And as we all know, disruptor is good for doing one thing, and one thing only. Making animated gifs.
    For an example, he once came on efnet #quake and asked what the deltree command on linux was...
    anyway, NT4 is easier for incompetant people, and that's the gist of it.
    On a side note, telefragged.com runs apache i beleive. They run linux at least.
  • Blah, how can Carmack like CodeWarrior? It's not even the fact that it's an IDE that bothers me, it's just such a piss-poor program. We use it at my university, and I'm sure it causes at least 90% of the crashes on the machines there. Almost all of our Mac's (we have Windows machines, Unix (Solaris), and Macs... sometimes all in the same room) are literally killed because of CodeWarrior, and I hear my friends complaining about CodeWarrior's speed all the time. It's complexity is too high for our simple comp.sci 101 programs, though I suppose with a program as complex as Quake 3 it would help.

    I've never liked IDE's anyway... I think typing out all the structs and classes yourself will teach you to be a better programmer than using all the goofy wizards will.
  • It's called a Makefile.
  • From that URL:

    "NVIDA has targeted its multimedia accelerators at the mainstream PC market. This market consists of the Windows 9x and Windows NT operating systems. NVIDIA has full resources dedicated to tuning performance and quality under these operating systems. NVIDIA does not offer register level programming guides for development of other operating systems or applications at this time."

    What a stupid policy. Will these HW companies never learn...?
  • Does Quake 3 have anything new that might contribute to "strategy" ? For example, new defensive techniques or weapons. I've been spoiled by Heretic 2 :)
  • Did anyone else notice that it seems to have only taken him 3 weekends to port Quake 3: Arena to MacOS?? A fully functional port in 3 WEEKENDS! Holy %@!@#$. Quake 3 is one of the most cutting edge games in the works right now (besides Unreal II and Unreal Tournament) and it only took 3 weekends to port. Carmack is good. And I also give a lot of credit to Tim Sweeney of Unreal fame who learned curved surfaces in a weekend. I wish I was even half that good.. Or even 1/4...
  • I know.. But still... 3 weekends when you are dealing with 3D graphics, curves, acceleration, sound, network, textures, etc, etc... Insane! And to do all the required translations between his generic Q3 code and the MacOS in only 15k?
  • Yes, the wonders of truly portable code..
    I only wish I could write such code...
  • NT works, not as well as Linux in certain situations but works, get over it.
  • For this to happen there needs to be at least one example of Linux game that actually made some money ... otherwise , forget it. It is as simple as that.
  • It doesn't surprise me that http://www.planetquake.com runs IIS. Notice that it and all its affiliate sites (ritualistic.com, etc) all use ASP... Of course, I think we all know they'd be better off with apache...
  • There is an intergrated environment for linux:

    XEmacs!
  • >Finally, someone who understands that programming in a GUI IDE is a
    >lot more powerful than a few xterms running vi and gdb.
    Who on earth is doing that still? I don't know
    anybody doing development with xterm/vi/gdb.
    Everybody here is using XEmacs+ddd (or whatever
    graphical debugger working well on the particular
    platform), and that integrated environment is as
    good as they get (I *did* use the MS and Borland
    IDEs back when I touched those systems).
  • The Question is how Quake3 will find out if a system supports hardware OpenGL? I guess under Win95/NT all you have to do is check if GL_RENDERER returns something different that "GDI GENERIC" which almost always means you have OpenGL ICD/MCD installed...

    What about Linux? checking out /proc/pci won't do the trick since mounted card doesn't have to provide support for hardware OpenGL under Linux. Glide/Mesa + Accellerated X11 are going to be the *only* two renderers in Quake3? What about GGI?

    --
    disty
  • "My current platform support for is clients on Linux x86 and SGI IRIX. For servers I'm supporting Linux Alpha, Solaris x86 and Solaris Sparc"

    Does this really mean that we will not be able to run Quake3 servers on x86 hardware with Linux? :-O
  • I think the likelihood that there will be support for both console and x is very high. Quake II had both. Also, Quake Arena will need some for of hardware acceleration, although the 3dfx cards are not the only ones that will be supported. The I740 2D/3D video card will also be supported.

"When the going gets tough, the tough get empirical." -- Jon Carroll

Working...