Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPMA support #3

Closed
luismbo opened this issue Apr 22, 2020 · 7 comments
Closed

CPMA support #3

luismbo opened this issue Apr 22, 2020 · 7 comments

Comments

@luismbo
Copy link

luismbo commented Apr 22, 2020

Adding in CPMA (https://playmorepromode.com) and its fun variations like instagib, Clan Arena, CTF, etc would be awesome.

@ratnose
Copy link

ratnose commented Apr 22, 2020

The server config is in the container... no idea other than that. :D

@treyyoder
Copy link
Owner

@ratnose is correct, the server config is in the container. But you can edit it:

exec into the container:
docker exec -it quakejs bash and then navigate to:

/quakejs/base/baseq3
/quakejs/base/cpma

From there you can vi server.cfg to edit it.

You could also copy a config file from your host machine to your container:
docker cp server.cfg quakejs:/quakejs/base/baseq3/server.cfg

With both of these methods restart the container afterwards:
docker restart quakejs

@luismbo
Copy link
Author

luismbo commented Apr 22, 2020

Isn't entrypoint.sh hardcoded to baseq3?:

node build/ioq3ded.js +set fs_game baseq3 set dedicated 1 +exec server.cfg

(It's interesting that the server side runs a Javascript version of the server rather than the plain C++ version. Is there a performance penalty there we could avoid? 🤔)

Have you considered moving the configuration and content to a volume. IIUC, it's bad practice to modify containers. This might allow one to add the standard Q3 maps such as pak0.pak, or other custom maps, maybe?

@treyyoder
Copy link
Owner

Yeah, you'd have to update entrypoint.sh changing it to cpma instead of baseq3 in the container as well.

Right, you shouldn't be changing a container, but this project isn't official, so do so at your own risk. I was just offering a work around until what you are asking for is implemented.

It's running in JavaScript because that is what quakeJS is.

I did think about putting the config/maps on a volume, I'll try to prototype that out and see if it adds complexity. I want to keep this as simple as possible for people to be able to pull and run with little to no configuration required.

@luismbo
Copy link
Author

luismbo commented Apr 24, 2020

@treyyoder the key Javascript part is certainly the client since that lets us run Quake on a browser. There's no benefit in running the server via Javascript, is there?

@treyyoder
Copy link
Owner

@luismbo Read this section on the main quakejs repo from which this is derived, and the part about quakejs using websockets and how native builds and web builds currently can't interact with eachother.
https://github.com/inolen/quakejs#running-a-dedicated-server

@luismbo
Copy link
Author

luismbo commented Apr 24, 2020

Oh, interesting. Thanks for the pointer @treyyoder.

@luismbo luismbo closed this as completed Apr 24, 2020
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

No branches or pull requests

3 participants