I watch this thread all the time but have always beem hesitant to reply as I'm unsure whether I'm in the lion's den or that I'm more welcome than I realise. While there's many comments here I'd like to address, I'll probably just sum things up:
Raze's name is inspired by how Ken wanted to name his engine. Ken wanted a single syllable synonym of construction, so he chose Build. The antonym of construction is demolition (
which Raze was going to be called) and a single syllable synonym of that is Raze. There is no further meaning behind the name other than being the opposite of Build.
ZScript has been talked about as a Doom-specific language that's getting bolted on. ZScript was designed to be game-agnostic from the ground up and as such could be used in any game or any program wanting scripting capabilities. The main reason ZScript exists is because AngelScript can't have script objects inherit from native objects in a seamless fashion. This is why Blood FS exported all native actor code to AngelScript. By using ZScript, the native code can be maintained for speed and accuracy.
Raze isn't going out of its way to be unfaithful and in fact until the game's main loops and networking code was consolidated, the NBlood component still played vanilla demos with no de-syncing. So while the original demos aren't playable, it does not imply we're an inaccurate port but I acknowledge without capability of playing the original demos it might seem as such. If there's something not accurate, that's a bug that should be fixed, and would appreciate any such reports.
Raze is not in any way an attempt to be a hostile fork, though I appreciate the perception that it might have been due to comments on various forums that indicated as such. Graf also opted to license all of his code under the 3-clause BSD license and requested other GZDoom contributors who source contributes to Raze to do the same thing. This is a very permissive, GPL-compatible license and allows our code to be included in EDuke32 and used with IF binaries, should the team deem anything we've done worthy enough for inclusion.
We're trying to do our own thing in our own way and the removal of the EDuke32 component will allow us to achieve that without the breaks in compatibility with EDuke32 that we had. It should show that we can manage the game-side code without having to reply on syphoning code from upstream ports and also puts us in a somewhat unique position where original EDuke 2.0 mods that can't be played on GDX or are no longer compatible with EDuke32 play fine.
Raze isn't about superseding any other ports or diminishing the significance of other ports, Raze is just another choice amongst a great list of ports one can choose from. GZDoom for instance does not affect the popularity of Chocolate Doom, and Raze probably won't affect the popularity of EDuke32, RedNukem or NBlood either. All of our ports have a specific design goal and aim and the audience will choose whichever one feels right to them.
I don't really want there to be bad blood between communities or for there to be rivalry or continued shit slinging from either side of the fence. I fully acknowledge that I've contributed to that angst in the earlier days, either on a forum or on Discord but it's not appropriate. I've tried to right wrongs by working with NY00123 on uplifting VoidSW to having fixed-point mouse input like EDuke32 does and by porting jfaudiolib's ALSA MIDI support into EDuke32's audio library.
I think a lot of people are still wondering about what Raze is doing and what its goals are. There has been a start on making Duke's actor code more accessible to ZScript and that will continue in time for the other games, but Graf has decided to re-engage with his original focus of improved rendering while we further evaluate the direction in which to take regarding scripting as each game manages actors differently. By working on the renderer, Graf can do what he does best and this will provide highly visible changes that people will respond to however they wish to.
Other things we've improved are interpolations by way of GZDoom's timing code, interpolated look_ang for Duke which gives that really nice and smooth panning when each new level starts, unsynchronised mouse input for Exhumed, along with an options menu for various bits and pieces within that game, internationalisation for game strings and content, plus many other minor things. There are of course divisive improvements like using OpenAL which might be better for some and not for others, but again that why players have the luxury of choice when it comes to ports.
I'm unsure what kind of replies I will get but I hope what I've said here is taken as an open letter of sincerity. We're just a small team of three guys in what's ultimately a smaller community than others like Doom. Rather than a continued divide, it'd be great if there was increased unity between camps as I strongly feel that more options irrespective of which one a player opts for will increase interest in these classic games and ultimately increases the community size as a whole.
jkas789, on 10 November 2020 - 09:43 PM, said:
Huh,
Raze got updated to 0.73.Going by the changelog this seems to be a substantial update (I think?). That's cool I suppose. The first thing that would make this even remote usable for me would be able to use the voxel mods, which afaik don't work (and probably will not work).
Voxel support should be fixed as of three hours ago with
this commit. Things like this were never disappearing but understandably while we're still alpha and still transitioning things over there might be some breakage.
Tea Monster, on 11 November 2020 - 01:18 PM, said:
Depending on how he's coded it, you may need to change how the defs are written. I don't know much about voxels though so I couldn't say.
NightFright, on 11 November 2020 - 01:34 PM, said:
I doubt Graf cares much about how we do things over here. You probably would have to write all-new defs.
Graf actually cares more than you think or more that he lets on. Particularly during early development, considerable testing of the EDuke32 component was done with major EDuke32 mods to ensure no breakage occurred. With the DEF parser, Graf left features there that he doesn't particularly agree with to maintain compatibility. Anything that loads on an EDuke32-based version of Build should load fine whereas the GDX parser is a lot more limited. For instance, we can parse and load the HRP fine but are still working on model and sky code.