But still I have images and videos from it
Moderators: Nexuiz Moderators, Moderators
glxinfo | grep -i 'string\|direct'ender.saka wrote:This thread is very long, so I would not read it all.
I don't know if you still need more devs, though I would like to give my suggests.
1) Network have to be corrected or rewriten. Having a network independent from frame rate would be better. Currently, apart Client Side prediction, it seems that everything is FPS dependant.
2) Mac OpenGL backend have to be rewriten. Also GLSL and OpenGL specific parts are probably not well integrated with the Mac OS X system.
3) And Mac UI should be ported to Cocoa. Soon or later AGL and Carbon will be not anymore available (probably with next system, Snow Leopard).
4) 64bit architectures should be supported all around the code. It is predictable that soon 32bit architectures for Personal Computer will be totally superseded by 64bit (Core Duo, Dual Core and Quad Core architectures).
This already happens in Linux and Mac OS X. Leopard is mostly 64bit and Snow Leopard will be probably totally 64bit.
5) I suggest to move QuakeC code to C. So, that you will have more opportunities to find other developers, in the future.
6) The engine sources need to be better organized. It is too much monolitic. Modularity and to follow a MVC pattern, would make it easier for external developers to approach it.
7) Multythreadign has to be modified and used in a better way. Currently it does not work good on Mac OS X. I noticed that disabling it gives better performances.
From the point of view of portability I think that some parts have to be not so portable.
I don't know for other platforms, but Mac offers a wide set of utilities both in Cocoa APIs and in Core Graphics/Quartz APIs. All the texture loading and manipulation part can be moved from libpng, libjpeg and similar to Cocoa or Quartz.
Event Handling, GUI and Threads can be handled using Cocoa APIs.
Fast mathematic computation can be highly optimized usign the API that Apple offers to take advantage of the vector extensions available in all CPUs starting from Pentium 3 (Apple also support similar API for Altivec PPC coprocessor).
Similar APIs should be present in Windows and Linux, considering that the vector math API of Apple is based on Intel directives.
I could help, but the engine as it is, is really hard to be interpreted.
I could help also with Modeling, but I think that is a waste of time to model objects for an engine that I cannot smoothly play on my Mac. So, first of all, I would have something working.
ender.saka wrote:About QuakeC. If you use it, it is normal that have hard time to find developers. Honestly, I would like to help you, but I have simply no time to learn a strictly proprietary language that is used only in Quake engine. And I think that many developers think the same (at least this is the answer I received from all the developers I know).
ender.saka wrote:The comment on ohloh is just a quick description of Nexuiz bad performances, on Mac platform, and it is also the consequence of the bad answers (and bad comments about Mac users... if they are still there I can link them if you want) I received in another thread. And that ohloh comment is not a mystery. Everyone can read it and I wrote it because you and users can read it. It is an honest and objective critique, based on my experience about Nexuiz and Nexuiz Forum, nothing more.
ender.saka wrote:Ok, the problem is not GraphicsFPS VS NetFPS (not good names but I hope you understand what I mean) but PhisicsFPS VS NetFPS. Though, I observed that, if I enable V-Sync (that results in fixing frame rate to 60 FPS), the problem about sync of the client with the server (that I describe in the following lines) become bigger. In any case, the situation does not change. More that half of bullets simply do not hit the target.
ender.saka wrote:About multithreading I think it is not a good approach to implement it based only on drivers support.
ender.saka wrote:SDL version of Nexuiz under Mac OS X is simply unusable. SDL has not a real Cocoa implementation (I read somewhere) just a simple wrapper, nothing more.
Ok, the problem is not GraphicsFPS VS NetFPS (not good names but I hope you understand what I mean) but PhisicsFPS VS NetFPS. Though, I observed that, if I enable V-Sync (that results in fixing frame rate to 60 FPS), the problem about sync of the client with the server (that I describe in the following lines) become bigger. In any case, the situation does not change. More that half of bullets simply do not hit the target.
About OpenGL and Mac. I played several OpenGL games (open source too) that works perfectly under Mac OS X; I also tested different engines. You would probably be surprised to know that a Java based engine (that uses JNI to call native OpenGL) works really good.
So, it might be that the Mac OS X drivers are not so good, but there should be also something in Nexuiz code.
About multithreading I think it is not a good approach to implement it based only on drivers support.
About optimizzation with vector math: you say that there would be really few gain. The point is that you answered NO to all my proposals. Now suppose that the vector math alone would gain 1%. Multithreading another 1%. And so on... if you would not be so negative there could be a 5% or more of gain. Don't you think?
About QuakeC. If you use it, it is normal that have hard time to find developers. Honestly, I would like to help you, but I have simply no time to learn a strictly proprietary language that is used only in Quake engine. And I think that many developers think the same (at least this is the answer I received from all the developers I know).
Finaly, to have 64bit code with Mac, you have to move from AGL to NSGL (Cocoa). CGL is also supported, if needed, and is not about to be abbandoned. Though Window and User Input Event Handling have to be implemented using Cocoa.
Alien wrote:It would be great if ender.saka could fix this and NetRadiant issues on Mac.
I think you misunderstood my intentions. You continue to take my critiques as attacks. I do not understand why! I am just discussing. Don't you like discussing? Or don't you like critiques?divVerent wrote:If you were a bit more cooperative, you could start working on this and submit a patch for this, instead of bashing the hard work that's being done here.
The point I wanted to underline was not, if SDL team or Nexuiz team should fix it. I just wanted to say that SDL is not the right choice. I was helping you, saying « Do not waste your time with SDL! It is not the solution for Mac port. »; I was not attacking you.divVerent wrote:Well, that's what SDL is on any platform, and it works fine. So why not on OS X too? It's IMHO rather SDL's problem to solve and not ours then.
Return to Nexuiz - Development