Skip to content

Conversation

@erysdren
Copy link

this should help enable more developers to use ioquake3 as an independent gamedev platform.

@erysdren
Copy link
Author

oops, forgot to fix it up for the QVMs

@erysdren erysdren marked this pull request as ready for review November 15, 2025 16:24
@timangus
Copy link
Member

This is likely very disruptive for anyone already using the standalone feature, so it would be good to get some feedback from those people first.

@smallmodel
Copy link

I personally like this idea. However I think it would be best to define all values in a single place. There is this code q_shared.h:

#ifndef STANDALONE
#ifndef PRODUCT_NAME
#define PRODUCT_NAME "ioq3"
#endif
#ifndef BASEGAME
#define BASEGAME "baseq3"
#endif
#ifndef CLIENT_WINDOW_TITLE
#define CLIENT_WINDOW_TITLE "ioquake3"

Could STANDALONE and all defines inside be removed? This avoids defining ioq3-specific values twice so it completely uses CMake values, it would look clearer to define everything in a single file.

Also, the inconvenient of CMakeUserPresets.json, that is in .gitignore, is that everyone would need to possess this file locally. If someone wants to contribute to a fork, then they would need information about the forked product, such as icons, cinematic intro, and more.
As an alternative if identity.cmake must be constant, how about having idioq3.cmake for upstream ioq3 product, and having a real identity.cmake file (if it exists) that replaces ioq3 product information? So you can have separate product information while still allowing contributions to ioq3.

@erysdren
Copy link
Author

i made some changes last week, any thoughts now @timangus @smallmodel ? thanks!

@timangus
Copy link
Member

timangus commented Dec 4, 2025

In principle I don't really mind this change, but as I've said already, I'd like to get the opinion of anyone already using this feature first.

Why have you made all the options CACHE STRING though? I can't really see any reason you'd want to change these more than once, or sparingly at the very least. It exposes a user support surface where they've been changed inappropriately. There's also a commented line that should be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants