Hi, I've been around on the forum for a little while to get a bit familiar with OA's development, but there are still a few issues I don't understand well.
Mainly, it has to do between compatibility between versions, and the part OA takes in modifying the engine.
So here are a few questions, if you don't mind to enlighten me a bit
:
1) Imagine I get latest ioquake3 version from their SVN, what are the modifications which are done to it so that we obtain on openarena build ?
- One element: changing baseq3 for baseoa directory
- Second element: protocol version number
- Is there anything else ?
2) This is for the engine, but from what I understood on Q3's way to work, it uses QVM. So QVM are a great thing as they allow to modify the game's logic in an cross-platform way, without really interfering with the engine. Is the missionpack a simple rework on these QVM (bringing Q3 Team Arena's code + some custom work) ?
3) So now we've got our OA engine, with some missionpack, and with assets. In common with Q3, we've got the engine with slight modification (see 1)), some common assets such as ones used for weapons and Sarge model. And so some mod like Defrag, simply by coming with a common QVM, can make OA and Q3 compatible, right ?
4) Is there some other mods, like Defrag, which could have been both used with OA and Q3 ? (I enable the mod inside OA, and I /connect to some specific "q3" server, right ?)
5) Now imagine I get some _old _ ioquake 3 release, with no SDL, without VoIP support. If I build the engine from it, and use latest OA QVMs and assets, would it work ? Why if not ?
6) Between 0.7.1 engine, and 0.7.6 engine which has the funky mouse input, were there some changes which were quite awaited (or even necessary) and welcome in OA ? Were there even more in 0.8.0 (except the mouse fix) ?
7) OA 0.7.1 uses protocol 68, OA 0.7.6-7 uses protocol 69, OA 0.8.0 uses protocol 70, from what I understood it helps in not melting versions (which all have different engine/qvm/assets) it also broke compatibility with most Q3 clients which were using protocol 68. Would there be a way to alter protocol version at launch time, such as with a command-line argument ? Would it help to have such a feature ?
And lastly, why OA hasn't been designed as a simple mod over ioquake3 if it's goal is mainly to add assets ? If making a standalone game brings flexibility, it seems to be some flexibility which is sporadically used (no physics modification intended, and so on ... ). So, was there some necessary need to make it a standalone game ?
I've finished, I repeat myself a bit in these questions, and hope I didn't say too much bullshit
Thanks