If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Unvanquished Is Rewriting, Modernizing The Quake 3 Engine

Phoronix: Unvanquished Is Rewriting, Modernizing The Quake 3 Engine

The Unvanquished open-source game is one of the most fascinating open-source game projects as they've strived for fundamental improvements in the ioquake3 engine and also to deliver high quality art assets and in-game content. Unvanquished is powered by the Daemon Engine, which is derived from the ioquake3 engine at its core -- the open-source version of id's Quake III engine. With the original code being the better part of two decades old, the developers are seeking to modernize and rewrite the code-base...

Did you considered other options? If yes which were they?
Why is better to modernize engine than ship the game?

You say that as if they cannot do both and that they are mutually exclusive.
Also, the amount of time people spend writing code is generally not going to affect the speed of game shipment since all the other parts (assets, sound..) are done by other people. Most of the work is not programming, which is why most FOSS games just suck.

I had a look at some of your latest source code and it's looking really clean and heavily document. Well done.
I'm just loving that C89 style. So neat and proper. It's no wonder so many quake3 ports have been made over the years.
C might get tedious and boring but well written C just makes me happy in ways no C++ hack could. I suspect the lack of interest in Doom3 indicates others feel the same way as I do.

I haven't noticed any C++ stuff so I'm hoping your C++11 transition will be very strict and limited.
Using PNaCl is interesting. I really dislike JavaScript so I think, while not optimum, it's probably the best way to get a web app going. Though I'm not quite sure why you guys are interested in PNaCl. Is an FPS really a web app now?

Anyhow, I hope you guys can merge the Jedi Outcast\Academy modifications so that there will truly be one fork to rule them all

I haven't noticed any C++ stuff so I'm hoping your C++11 transition will be very strict and limited.
Using PNaCl is interesting. I really dislike JavaScript so I think, while not optimum, it's probably the best way to get a web app going. Though I'm not quite sure why you guys are interested in PNaCl. Is an FPS really a web app now?

The blog explains it in detail. PNaCl is supposed to get over the older VM that is in use right now. It's just a bytecode interpreter, the same as it's in use right now, but delegating the maintenance of its compiler to Google, and thus switching from a currently unmaintained and inefficient one to one widely supported.

I had a look at some of your latest source code and it's looking really clean and heavily document. Well done.I'm just loving that C89 style. So neat and proper. It's no wonder so many quake3 ports have been made over the years.
C might get tedious and boring but well written C just makes me happy in ways no C++ hack could. I suspect the lack of interest in Doom3 indicates others feel the same way as I do.

I haven't noticed any C++ stuff so I'm hoping your C++11 transition will be very strict and limited.
Using PNaCl is interesting. I really dislike JavaScript so I think, while not optimum, it's probably the best way to get a web app going. Though I'm not quite sure why you guys are interested in PNaCl. Is an FPS really a web app now?

Anyhow, I hope you guys can merge the Jedi Outcast\Academy modifications so that there will truly be one fork to rule them all

Good-luck!

You love that style, but did you contribute back? If you don't and you are just saying: this developer should use this, what is the benefit?

What is so bad of using C++ or C++ 11?
Using iterators or auto? Using a STL sort function that works faster than QSort?

What would be the problem if they would use JS like V8 (they don't, as you did not read the blog post) as their portable scripting engine? Would it taint the project? Would it make it a web app? 0AD game is using a JS engine as the main scripting, and I don't see it working on the web, maybe you can clarify me.

PNaCl is not a web technology, is a sandbox environment to execute C/C++ programs. PNaCl (Portable Native Client) is a C/C++ VM that executes everything in a sandbox. But is still C++. It is more C++ than Asm.JS is, as it can do all operations that C++ does, excluding some very weird pointer arithmetics, and even if a buffer overflow occurs, this would in the worst case break the VM (the runtime of the game logic), not the user's machine credentials and such.

I am mildly disappointed that they are switching to C++ if only because I have been spending a fair bit of time learning C lately and was starting to look for decent game projects I could start to dig into and potentially help out with. As Unvanquished is one of the nicer and more polished open source games out there I was strongly considering getting to know the code base. But now? Not so much, as I really don't care for C++. I know it offers a lot of features missing from C, but none of them seem compelling enough to spend any significant amount of time wading through C++ code which almost always seems to tend towards the convoluted and unnecessarily over-engineered side of things. This is just personal preference though and obviously the devs have already made up there mind, I'll just have to keep looking around till I find a project that is a better fit for what I am after.