NZ:P QuakeC fork used by the Android port of Nazi Zombies: Portable
  • QuakeC 99.4%
  • Python 0.3%
  • Shell 0.3%
Find a file
2026-11-01 16:49:49 -04:00
.github YML: Drop upstream's workflows 2026-10-30 13:03:33 -03:00
bin TOOLS: Make the hash table generator work with pandas 3 2026-10-30 13:03:33 -03:00
progs GLOBAL: Add on-screen touch controls 2026-10-30 13:00:33 -03:00
source GLOBAL: Keep the interface clear of the camera cutout and rounded corners 2026-10-30 13:02:33 -03:00
testing nzp-team/nzportable#1196 / nzp-team/nzportable#1196 - Ballistic Knife reliability and stability fixes (#141) 2025-09-26 07:36:19 -07:00
tools SERVER: Enable enhanced toasts and hitmarkers for Vril (#169) 2026-08-25 21:18:27 -07:00
.gitignore SERVER: Fix global_triggerstate never being properly set in SUB_UseTargets 2026-01-05 21:17:33 -05:00
LICENSE Initial commit 2022-02-08 13:42:28 -05:00
README.md README: Describe this fork rather than upstream 2026-11-01 16:49:49 -04:00

Nazi Zombies: Portable QuakeC for Android

The game code behind the Android port, and the changes it needs on a phone.

Upstream is nzp-team/quakec, NZ:P's QuakeC. This branch follows upstream's last version that the FTE engine can still run; upstream has since moved on to its own Vril engine.

Used by nzportable-android, which builds this code into the APK.

What this fork changes

Area Change
Client Aim assist turns on once a controller is used
Menu A Vulkan and OpenGL renderer toggle, and an advanced video menu
Menu Menus navigate with the left stick, and B goes back
Menu Controller support for the Co-op server browser
Global On-screen touch controls
Menu A high-end realtime lighting mode
Global The interface keeps clear of the camera cutout and rounded corners
Tools The hash table generator works with pandas 3
Repo Upstream's workflows are gone; nzportable-android's CI builds this code

Everything below is upstream's README, unchanged.

About

This is the QuakeC portion of the NZ:P source code. QuakeC is responsible for most game-related code such as weapon logic, ai, and Perks. You can read more about QuakeC on the Wikipedia page. NZ:P makes use of CSQC for PC/FTE.

Project Structure

Here is a brief explanation for each of the (sub)directories in this repository:

  • bin: Command line binaries for FTEQCC + the ini configuration file.
  • progs: *.src files, a list of QuakeC source files each platform is dependent on.
  • source:
    • client: FTE-exclusive CSQC, used for the HUD, achievements, and other server->client requests.
    • server: Game code relevant to all platforms, contains most expected logic.
    • shared: Definitions for weapon stats and some utility functions shared by both the client and server.
  • tools: Build scripts to compile the QuakeC into .dat and .lno files.

Updating

While it's usually recommended to stay on the QuakeC version provided with your build of NZ:P, you may want to update it to the current development builds to test new features and changes. To do this, navigate to the Releases page and follow the instructions there for downloading and installing.

Building (Beginner Friendly)

There are no prerequisites or dependancies needed to build QuakeC other than a working Windows, macOS, or Linux-based machine.

Before you can build the NZ:P QuakeC, you must either download this repository (easy) or clone it (for developers).

Python 3.7 or above is required to execute additional required components for hash table generation. You can install the required modules with pip install -r requirements.txt pointing to the provided file.

To build, simply navigate to the tools directory and run the qc-compiler-* script for your platform. If unfamiliar with executing shell (.sh) scripts on Linux systems, give this itsFOSS article a read.

After having done this, a build directory will have been created, and inside of it will be more directories named after every platform. Copy the contents of the platform directories into your nzp game directory. (Example: For PSP, copy progs.dat and progs.lno from standard/handheld to PSP/GAME/nzportable/nzp).