viciious / d32xr

A modern port of Doom for the Sega 32X
Other
161 stars 12 forks source link

Chasecam during demo playback #94

Closed SSNTails closed 5 months ago

SSNTails commented 5 months ago

This pull request adds a chasecam during demo playback. It can be disabled/enabled with the USECAMERA preprocessor macro. It's also possible to enable it during regular play by removing the USECAMERAFORDEMOS preprocessor macro.

https://github.com/viciious/d32xr/assets/159929665/56703cd3-b1b0-4c59-b4cb-ad1684a14051

viciious commented 5 months ago

Ideally you'd split the newly added stuff into a separate source code file with its own license, otherwise the code might be attributed with the Doom Source Code License, which I guess we don't want

viciious commented 5 months ago

Cool feature though!

SSNTails commented 5 months ago

OK, thanks. Have you considered making a CONTRIB file so those wishing to contribute know how you want pull requests done?

WRT license, this was originally from a very old version of Doom Legacy, which was also under the Doom Source License, before iD Software gave the option to 'upgrade' to the GPL. I then personally rewrote it for a GPL project, but as the original author I have authority to relicense as I wish, and I am fine with the Doom Source License.

Regardless, I will see about reworking this PR to split things out to separate files. What license would it be under, then?

Have you considered upgrading to the GPL, though? You may get more contributions that way. That being said, the Boom source code was originally released under the Doom Source License as well, and I'm interested in adding a subset of Boom-compatible features in the future.

SSNTails commented 5 months ago

Alright, I put everything into a separate file. I worked on this using the v3.1 tag, and copied the code over to 'master' and verified compiling, but I haven't been able to build a master-compatible WAD yet, so I hope this works. 😊 If it doesn't, whatever error remains should be a very light lift (probably a missing function prototype, etc.).

viciious commented 5 months ago

What license would it be under, then?

MIT

Have you considered upgrading to the GPL, though? You may get more contributions that way. That being said, the Boom source code was originally released under the Doom Source License as well, and I'm interested in adding a subset of Boom-compatible features in the future.

I can't simply switch to a different icense. Jaguar Doom source code was released by Songbird Productions under DSCL and despite sharing a common ancestor with the GPL-licensed Linux port of Doom, it can not be voluntarily "upgraded" to GPL, at least not without getting all contributing parties and id/Bethesda/Zenimax/Microsoft lawyers involved.

SSNTails commented 5 months ago

Okay, I'm fine with MIT. Looking back on this code, I had to rewrite all of it anyway since the way Jaguar Doom handles collisions (TryMove, SlideMove, CheckPosition, etc) is very different from stock Doom.

I'm also fine with the DSCL. You are welcome to choose.

viciious commented 5 months ago

What is the purpose of this feature anyway? It's not like I am ever going to need it for Doom..

SSNTails commented 5 months ago

It's just something fairly unique (nobody remembers Doom Legacy) and different, and makes folks go, 'hey, that's cool' when the game boots up, in exchange for very little additional memory pressure. You can even cut the memory use down farther if you eliminate the camera2 variable for the splitscreen player, and remove the unused angle_t 'aiming' variable (next I was going to add look up/down).

If you don't feel it's right for the project, I won't feel bad if you reject it. I just like to try and give back where I can.