I am one of those geek who code for relaxing. My girl is in holidays and between the exams I really need some relaxing. So I am working on Quake 2 in the free time. When I decided to continue the work, I knew that exams will be soon. So I want to start after them and I said the first release will be in august. But as every semester I hate learning and instead I doing tons of other stuff like practice guitar playing or even tidy up and cleaning the desk.
I fixed a lot of bugs and added some features in Quake 2. And now it is time to release the second multiplayer beta. I still focus on multiplayer, because I think this is the more capable type of gameplay for the psp.
Here is another video from Stranno playing against his friend and me.
.pak File Support
Quake 2 has a simple archive format called pak. I have added support for pak files. This will decrease the copy to memory stick rapidly. It also increases loading time a little bit. I have rewritten the memory management for those archive and they use much less memory. So it is acceptable to use them.
Sound
I èave implemented sound in Quake 2 now. It is still very buggy and slow. Exspecially the sound during the id logo is pretty ugly because a lot of power is used for decoding the video data. But during the game it is very nice even if not all sound data is loaded so far.
Clipping
As I already explained in another post psp hardware clipping is implemented very badly. So you need to correct it in software. In the previous Quake 2 versions I did this with some flimsy tricks. So I never looked as bad as on the first screenshot, but this is the result of pure hardware clipping on the handheld.
Quake 2 - Faulty Clipping
Quake 2 - Fixed Clipping
Now I finally fixed clipping. During my studies I learned that it is much more important to optimize the algorithm than the code. And so the algorithm is pretty fast, but the code is not. Even if clipping is not slow at the moment, there is a lot of potential to make it faster, by using the vfpu as example. Since I have an algorithm I am happy with, I can now start to optimize the speed.
Quake 2 - Clipping Regions
Quake 2 - Clipping Regions
The screenshots show the different regions of clipping. The blur regions are sorted out early without even be clipped. I use a polygon prediction to decide that a surface does not need clipping at all. The green surfaces are tested, but not clipped and the yellow ones are clipped at the viewing frustum. The first screenshot uses no exact clipping, so the green regions never can reach the borders of the screen. The second image increases the size of the viewing volume. So more polygons are sorted out early. The threshold (ε) is still between the psp hardware clipping limits. When the tolerance is raised the chance of clipping errors is increased to, but the drawing is faster. You can set the clipping tolerance via console. The variable is called: gu_clippinge and a good ε is between 0 and 5, default is 0.
There are still clipping errors in the sky and the inline models like doors and elevators. I will fix this with the next version.
Flipscreen support
You can set gu_flipscreen 1 in the console to turn around the psp viewing by π (180°). So you can hold the psp upside down. I implemented this because I want to make Quake 2 as configurable as possible, but it is not in the menu because I think that not much players will use it and when you enable to it accidentally, it may be very confusing.
Master Server
I am trying this with my beta testers, but it is still not stable enough to use. So it is disabled in this release.
Please be sure you read Quake 2 Multiplayer Howto before you ask question. And again, if you have trouble, do not post in a random board, instead come to the chat irc.freenode.org #emergencyexit and ask my teammates or me. If you want to play a game, you are also welcome to challange me. I will accept if I have the time.
Did you read the text or just scrolled down to the link?