i've been running quake2max, which uses opengl immediate mode, but when i mess around with lwjgl, it goes super slowly. why is that?

It is indeed slower but it's not too bad. As long as you know the limitations and work with those you can get some really good fps. My current game runs at about 2800fps on my stationary machine, which is a couple of years old.

Can you give some more specific information except for "super slowly"?

SW rendering never gets near 26fps so it's likely to just be a very crappy computer + outdated drivers combo. I'd be surprised though if Quake in Java vs Quake in C makes any significant difference to framerate though.

Dump immediate mode, switch to using Vertex Arrays or VBO's instead. That should pretty much solve the bottleneck issue. In other words you want to batch the data together as much as possible so you send it to video card in lumps thus reducing the number of calls. This'll be much faster then immediate mode regardless of whether you use java or not.

vtx arrays or vbos should work. i'm still surprised it goes so slow, though. it is currently only rendering 4 quads with a display list.(i decided to put any static geometry in a display list, but i'll swith to a vtx array.)

If that is the case and your getting 8-26fps then jni and the number of calls isn't the problem. Its likely either a bug in your code or the graphics driver/hardware is the problem. Which graphics card is it?

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org