Skip to content

Conversation

WofWca
Copy link

@WofWca WofWca commented Sep 21, 2025

For more reliable shotgun damage, as in Quake Live.

TODO:

  • Check whether the cvar is properly initialized, declared and stuff,
    and whether its name makes sense and the prefix shouldn't be com_ (common).
    I have checked that it works, but I don't have much experience with cvars.

To test this client-side, you can replace cgame.vm in pak8.pk3 with the one that has been build from this MR.

For more reliable shotgun damage, as in Quake Live.
@NuclearMonster
Copy link
Member

I am sorry. This is the kind of gameplay change we fundamentally avoid with the ioquake3 project. I would recommend putting this into a modification instead.

@WofWca
Copy link
Author

WofWca commented Sep 21, 2025

Is there like a ruleset for what is and what is not allowed? Because I'm looking at g_speed, g_gravity, g_knockback, g_quadfactor. They exist (since the source code release). Why can't something like g_shotgunMorePellets exist then?

ioq3/code/game/g_main.c

Lines 143 to 146 in d5eb4de

{ &g_gravity, "g_gravity", "800", 0, 0, qtrue },
{ &g_knockback, "g_knockback", "1000", 0, 0, qtrue },
{ &g_quadfactor, "g_quadfactor", "3", 0, 0, qtrue },
// So is it supposed to be `g_` or `com_`?

@NuclearMonster
Copy link
Member

In terms of a defined boundary, it's spelled out in the README:
The intent of this project is to provide a baseline engine which may be used for further development and to play Quake 3: Arena, Team Arena, and mods.
and further down under the Contributing section:
The focus for ioq3 is to develop a stable base suitable for further development and provide players with the same Quake 3 experience they've had for years.

ioquake3 tends to not change gameplay of baseq3 in order to preserve the original experience. I do need to update the CONTRIBUTING.md to remind people there as well.

@WofWca
Copy link
Author

WofWca commented Sep 22, 2025

Yes, I saw those lines in README.
But what exactly constitutes a gameplay change? If I changed g_knockback to 10000, I think that can be hardly considered an "original Quake III experience". Yet an option to change knockback still exists.
I do not think that having a variable that is off by default would put people off and make them demand "we want the original!!". If you open the console and change the variable manually yourself, then you are the one who wanted to do it. Otherwise the gameplay remains the same as in the original, and everyone is happy.

@timangus
Copy link
Member

Fundamentally, any changes to the game code in terms of game play are fairly pointless since the overwhelming majority of servers will run the original game code, meaning any changes we make to it in ioq3 won't be seen. i.e. we could add your changes, sure, but the likelihood of anyone using them is very low, option or not, because most servers simply won't run that code (and won't allow the client to run any altered code either).

Changes to the game code in ioq3 are limited to fixing build errors, fixing bugs or providing non game play related features intended to be used by derivative mods, where game play changes can and should be made.

(And FWIW your argument with respect to g_knockback is flawed in that said option is in the original code, so if a server changes that, it is the original Quake III experience.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants