Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
88b9664
initial camquake commit
jogi1 May 31, 2020
4d0649a
better drag handling
jogi1 Jun 1, 2020
0580926
update help
jogi1 Jun 1, 2020
066a08e
fix crash
jogi1 Jun 1, 2020
60f5096
fix editing with cl_demospeed 0
jogi1 Jun 2, 2020
b065f49
fix remove/list command
jogi1 Sep 29, 2020
1c7c1a9
fix drawing
jogi1 Sep 29, 2020
4e978e2
fix readme
jogi1 Jun 25, 2020
fa29ca2
fix editing
jogi1 Sep 29, 2020
f556038
fix editing some more
jogi1 Sep 29, 2020
3fa92d0
fix catmull rom interpolation
jogi1 Oct 3, 2020
d9af930
remove print
jogi1 Oct 3, 2020
b076d0f
make interpolation time based
jogi1 Oct 3, 2020
615a5ee
add time editing
jogi1 Oct 4, 2020
bc31a9e
add camquake_auto_playback variable
jogi1 Oct 4, 2020
204ea96
fix "camquake play"
jogi1 Oct 4, 2020
c795827
add triggers
jogi1 Oct 4, 2020
c6d10d7
seperate time from current add now keyword
jogi1 Oct 4, 2020
d7c40b9
add now keyword for trigger time
jogi1 Oct 4, 2020
d2690d9
add trigger listing to "camquake setup list"
jogi1 Oct 4, 2020
faaff9f
change play to playback, with play|stop arguments
jogi1 Oct 4, 2020
eb58838
fix playback
jogi1 Oct 4, 2020
cf621ed
add interpolation events
jogi1 Oct 4, 2020
f1c2fee
add interpolations to list output
jogi1 Oct 4, 2020
1a1346d
fix auto_playback timing
jogi1 Oct 4, 2020
df0dc49
fix linear interpolation
jogi1 Oct 4, 2020
309fd88
add segment point insertion
jogi1 Oct 4, 2020
d28e4cf
switch add_(camera/view)_point to sort by time
jogi1 Oct 4, 2020
70962bf
fix writing of setups
jogi1 Oct 4, 2020
cb72e51
fix path rendering
jogi1 Oct 4, 2020
2effe0d
fix trigger writing
jogi1 Oct 4, 2020
6ac8b11
add interpolation saving
jogi1 Oct 4, 2020
d45c14c
fix newlines
eb Oct 4, 2020
2d91ae2
add time when listing view points
eb Oct 4, 2020
aeae574
another attempt...
jogi1 Oct 7, 2020
f54f1f8
and another try
jogi1 Oct 7, 2020
94f4661
Update Makefile for camquake.
dsvensson Feb 16, 2023
c4de055
Add GitHub Actions.
dsvensson Feb 16, 2023
09b52ac
Enable camQuake by default.
dsvensson Feb 17, 2023
126fa2e
Fix msvc compiler isue.
dsvensson Feb 17, 2023
4ffe4d4
Change windows build into 'all'.
dsvensson Feb 17, 2023
0a92e48
Add camquake.cfg.
dsvensson Feb 19, 2023
3298809
Update README.
dsvensson Feb 19, 2023
c618b16
Add some missing declarations.
dsvensson Feb 19, 2023
9f8887a
Rename macOS binary before bundling.
dsvensson Feb 19, 2023
ab148a5
Mention downloads in README.
dsvensson Feb 20, 2023
93d5605
WiP: Bump qwprot to version with alpha support.
dsvensson Feb 20, 2023
166b65a
EXTENSION: Add MVD_PEXT1_EXTRA_PFS to support FTE_PEXT_TRANS.
dsvensson Jan 15, 2023
98c9315
TRAPS: Implement Map_Extension and SetExtField.
dsvensson Jan 15, 2023
aea52d1
ENTS: Handle extended alpha field.
dsvensson Jan 15, 2023
d46d2a6
WiP: client side alpha support
dsvensson Jan 15, 2023
5ffeb94
WiP: alpha support in renderer
dsvensson Jan 15, 2023
2434910
Update main.yml
dsvensson Jan 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: ezquake

on: [push, workflow_dispatch]

jobs:
windows-build:
runs-on: windows-latest

steps:
- name: Check out code
uses: actions/checkout@v3
with:
submodules: true

- uses: microsoft/setup-msbuild@v1.1

- run: msbuild -m -p:Configuration=rls-all,Platform=x64

- uses: actions/upload-artifact@v3
with:
name: ezquake-latest-windows
path: |
ezquake.exe
linux-build:
runs-on: ubuntu-latest

steps:
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v1
id: cpu-cores

- name: Check out code
uses: actions/checkout@v3
with:
submodules: true

- name: "Install dependencies"
run: |
sudo apt-get -qq update
sudo apt-get -qq install --no-install-recommends gcc make libsdl2-dev libsndfile-dev libjansson-dev libspeex-dev libexpat1-dev libspeexdsp-dev libcurl4-openssl-dev libjpeg-dev libpng-dev

- name: "Build"
run: |
make -j${{ steps.cpu-cores.outputs.count }}
make strip
- uses: actions/upload-artifact@v3
with:
name: ezquake-latest-linux
path: |
ezquake-linux-x86_64-camquake
macos-build:
runs-on: macos-12

steps:
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v1
id: cpu-cores

- name: Check out code
uses: actions/checkout@v3
with:
submodules: true

- name: Install dependencies
run: .github/workflows/scripts/homebrew.sh install-intel

- name: Build
run: .github/workflows/scripts/homebrew.sh build-intel

- name: Create Bundle
run: .github/workflows/scripts/homebrew.sh create-bundle

- uses: actions/upload-artifact@v3
with:
name: ezquake-latest-macos-x86_64
path: |
artifact
2 changes: 2 additions & 0 deletions .github/workflows/scripts/homebrew.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ function install_intel() {
}

function create_bundle() {
mv ezquake-darwin-x86_64-camquake ezquake-darwin-x86_64

sh misc/install/create_osx_bundle.sh

echo
Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "src/qwprot"]
path = src/qwprot
url = https://github.com/QW-Group/qwprot.git
url = https://github.com/qw-ctf/qwprot.git
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,21 @@ else
CFLAGS_c += -Iminizip
endif

CAMQUAKE = 1

ifdef CAMQUAKE
EZ_POSTFIX := "-camquake"
OBJS_c += $(SRC_DIR)/camquake/camquake.o
OBJS_c += $(SRC_DIR)/camquake/camquake_path.o
OBJS_c += $(SRC_DIR)/camquake/camquake_setup.o
OBJS_c += $(SRC_DIR)/camquake/camquake_command.o
OBJS_c += $(SRC_DIR)/camquake/camquake_glc.o
OBJS_c += $(SRC_DIR)/camquake/camquake_input.o
OBJS_c += $(SRC_DIR)/camquake/camquake_2d.o
OBJS_c += $(SRC_DIR)/camquake/camquake_event.o
CFLAGS += -DCAMQUAKE
endif

### Targets ###

ifdef CONFIG_WINDOWS
Expand Down
219 changes: 7 additions & 212 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,217 +1,12 @@
# ezQuake — Modern QuakeWorld Client
[![Build Status](https://travis-ci.org/ezQuake/ezquake-source.svg?branch=master)](https://travis-ci.org/ezQuake/ezquake-source)
# camQuake

Homepage: [https://ezquake.com][homepage]
Some very sharp corners.

Community discord: [http://discord.quake.world][discord]
## Introduction

This is the right place to start playing QuakeWorld® — the fastest first
person shooter action game ever.
* [misc/cfg/camquake.cfg](misc/cfg/camquake.cfg)
* https://www.youtube.com/@jogihoogi1

Combining the features of all modern QuakeWorld® clients, ezQuake makes
QuakeWorld® easier to start and play. The immortal first person shooter
Quake® in the brand new skin with superb graphics and extremely fast
gameplay.
## Downloads

## Features

* Modern graphics
* [QuakeTV][qtv] support
* Rich menus
* Multiview support
* Tons of features to serve latest pro-gaming needs
* Built in server browser & MP3 player control
* Recorded games browser
* Customization of all possible graphics elements of the game including Heads Up Display
* All sorts of scripting possibilities
* Windows, Linux, MacOSX and FreeBSD platforms supported (SDL2).

Our client comes only with bare minimum of game media. If you want to
experience ezQuake with modern graphics and other additional media including
custom configurations, maps, textures and more, try using the [nQuake][nQuake]-installer.

## Support

Need help with using ezQuake? Try #dev-corner on [discord][discord]

Or (less populated these days) visit us on IRC at QuakeNet, channel #ezQuake: [webchat][webchat] or [IRC][IRC].

Sometimes help from other users of ezQuake might be more useful to you so you
can also try visiting the [quakeworld.nu Client Talk-forums][forum].

If you have found a bug, please report it [here][issues]

## Installation guide

To play Quakeworld you need the files *pak0.pak* and *pak1.pak* from the original Quake-game.

### Install ezQuake to an existing Quake-installation
If you have an existing Quake-installation simply extract the ezQuake executable into your Quake-directory.

A typical error message when installing ezQuake into a pre-existing directory is about *glide2x.dll* missing.
To get rid of this error, remove the file *opengl32.dll* from your Quake directory.

### Upgrade an nQuake-installation
If you have a version of [nQuake][nQuake] already installed you can upgrade ezQuake by extracting the new executable into the nQuake-directory.

### Minimal clean installation
If you want to make a clean installation of ezQuake you can do this by following these steps:

1. Create a new directory
2. Extract the ezQuake-executable into this directory
3. Create a subdirectory called *id1*
4. Copy *pak0.pak* and *pak1.pak* into this subdirectory

## Compiling

### Compiling a Windows binary

#### Using Ubuntu Bash (WSL)

You can use the new Ubuntu Bash feature in Windows 10 to compile ezQuake for Windows.

To enable Bash for Windows, press the `Start` button and type `Turn Windows f` and select `Turn Windows features on or off`. Scroll down to `Windows Subsystem for Linux (Beta)` and enable it.

Now press WINDOWS+I, go to `Update & security` and then to the `For developers` tab. Enable `Developer mode`.

Now press the `Start` button again and enter `bash`. Click it and install Bash.

Enter the following command to install all required prerequisites to build ezQuake:

```
sudo apt-get install -y git mingw-w64 build-essential libspeexdsp-dev dos2unix pkg-config
```

Now clone the ezQuake source code:

```
git clone --recurse-submodules https://github.com/ezQuake/ezquake-source.git ezquake
```

Make sure line endings are not CRLF:

```
dos2unix *.sh
```

Now build the ezQuake executable:

```
EZ_CONFIG_FILE=.config_windows make
```

Copy the compiled binary to your Quake folder, the binary is called `ezquake.exe`.

#### Using a Linux system

Initialize/update git submodules:
```
git submodule update --init --recursive --remote
```

Make sure you have mingw32 toolchain installed. On Arch Linux it's `mingw-w64` (select complete group).

Build an executable using the following command:

```
EZ_CONFIG_FILE=.config_windows make
```

You can add `-jN` as a parameter to `make` to build in parallell. Use number of cpu cores plus 1 (e.g. `-j5` if you have a quad core processor).

### Compiling a Linux binary

_These instructions were tested on Ubuntu_

Make sure you have the dependencies installed:

(You may skip installing dependencies if you are going to use the build-linux.sh script included in the repository, this will take care of installing packages for you.)

- For *Ubuntu 16.10+*
```
sudo apt install git build-essential libsdl2-dev libjansson-dev libexpat-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libsndfile-dev libspeex-dev libspeexdsp-dev libxxf86vm-dev
```
- For *openSUSE Tumbleweed*
```
sudo zypper install -t pattern devel_C_C++
sudo zypper install git pcre-devel Mesa-libGL-devel SDL2-devel libjansson-devel libexpat-devel libcurl-devel libpng16-devel libpng16-compat-devel libjpeg8-devel libjpeg-turbo libsndfile-devel speex-devel speexdsp-devel libXxf86vm-devel
```
- For *Fedora*
```
sudo dnf group install 'C Development Tools and Libraries'
sudo dnf install git pcre-devel mesa-libEGL-devel SDL2-devel jansson-devel expat-devel libcurl-devel libpng-devel libjpeg-turbo-devel libsndfile-devel speex-devel speexdsp-devel libXxf86vm-devel
```

Clone the git repository:
```
git clone --recurse-submodules https://github.com/ezQuake/ezquake-source.git
```

Switch to `ezquake-source` path:
```
cd ~/ezquake-source/
```

Initialize/update git submodules:
```
git submodule update --init --recursive --remote
```

Run the compilation (replace 5 with the number of cpu cores you have +1):
```
make -j5
```
You can add `-jN` as a parameter to `make` to build in parallell. Use number of cpu cores plus 1 (e.g. `-j5` if you have a quad core processor).

Copy the compiled binary to your Quake folder, on 64bit linux the binary will be called `ezquake-linux-x86_64`.

### Compiling an OS X binary

_These instructions were tested on Mac OS X 10.10._

Get [Homebrew](http://brew.sh)

Run exactly as it says on the front page:

```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

Make sure you run the `brew doctor` as instructed before doing anything else.

Then run:

```
brew install sdl2 sdl2_net sdl2_image sdl2_gfx sdl2_mixer pcre jansson pkg-config speex speexdsp libsndfile
```

When it's done, just run `make` and it should compile without errors.


#### Creating an app bundle

Call from main ezquake-source directory, e.g. you probably do something like this:

```
make
sh misc/install/create_osx_bundle.sh
```

Current directory should have an `ezQuake.app` folder which is the app.

There will also be an `ezquake.zip` which basically just zips up the .app.

## Nightly builds

Nightly builds for Windows can be found [here][nightly]

[nQuake]: http://nquake.com/
[webchat]: http://webchat.quakenet.org/?channels=#ezquake
[IRC]: irc://irc.quakenet.org/#ezquake
[forum]: http://www.quakeworld.nu/forum/8
[qtv]: http://qtv.quakeworld.nu/
[nightly]: http://uttergrottan.localghost.net/ezquake/dev/nightlybuilds/win32/
[releases]: https://github.com/ezQuake/ezquake-source/releases
[issues]: https://github.com/ezQuake/ezquake-source/issues
[homepage]: https://ezquake.com
[discord]: http://discord.quake.world/
Latest build for Windows, macOS and Linux can be found as a logged in GitHub user in the [Actions](https://github.com/qw-ctf/camQuake/actions) tab.
Loading