SkillAgentSearch skills...

Amcduke32

Fork of eduke32 for the AMC Squad.

Install / Use

/learn @dibollinger/Amcduke32
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

AMCDuke32 - Fork of EDuke32 for "The AMC Squad"

About

AMCDuke32 is a fork of the eduke32 engine, created for the game "AMC Squad". EDuke32 is based on the Duke Nukem 3D source, which was built on the Build engine by Ken Silverman, released under the Build license.

The main purpose of the fork is to raise engine limits and alter hardcoded game behaviour, to allow for greater flexibility with developing AMC Squad. It also adds a number of CON script commands that enable modification of features not available in base eduke32.

Note that, since AMC Squad makes extensive use of eduke32 modding features, much like Ion Fury and Ion Fury Aftershock, it will not be compatible with Raze.

The original eduke32 source port was created by Richard "TerminX" Gobeille. Its repository is hosted at:

https://voidpoint.io/terminx/eduke32

The AMC Squad

"The AMC Squad" is a free, story-driven first-person shooter built on the Build engine. It currently features four episodes, each episode spanning 8+ hours of gameplay. The story centers around the titular AMC Squad, a paramilitary group which is established after the EDF's number one agent disappeared without a trace.

The group attempts to defend Earth against threats of extraordinary nature, but soon realize that they may have inadvertently made things much worse...

The gameplay is mixture of classic FPS gameplay with a variety of modern features. The levels are arranged in a mission-based structure, which takes the player across a large variety of locations and themes.

The game is free and standalone, and can be downloaded at:

https://www.moddb.com/games/the-amc-tc

https://amcsquad.itch.io/game

Installation

Windows builds for the latest engine revisions can be found in the releases page, along with older versions for use with previous releases of the game. Note that you should always use the tagged release build for specific versions.

The latest engine revision will also be packaged together with the download of the game itself.

We provide binaries for Linux, compiled on Ubuntu 22.04. However, for optimal compatibility, we recommend compiling the binary from source, using the instructions given below.

The engine can in principle be compiled for Mac, but the game is currently untested on this OS.

Building from Source

Required packages:

 * Basic dev environment (GCC >= 4.8, GNU make, etc)
 * SDL2 >= 2.0 (SDL >= 1.2.10 also supported with SDL_TARGET=1)
 * SDL2_mixer >= 2.0 (SDL_mixer >= 1.2.7 also supported with SDL_TARGET=1)
 * NASM (highly recommended for i686/32-bit compilation to speed up 8-bit classic software renderer)
 * libGL and libGLU (required for OpenGL renderers)
 * libgtk+ >= 2.8.0 (required for the startup window)
 * libvorbis >= 1.1.2 (libvorbisfile, libogg)
    libvorbisfile
    libogg
 * libFLAC >= 1.2.1
 * libvpx >= 0.9.0

On Debian / Ubuntu

sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl2-dev libsdl2-mixer-dev flac libflac-dev libvorbis-dev libvpx-dev libgtk2.0-dev freepats

On Fedora 22-25

sudo dnf groupinstall "Development Tools"
sudo dnf install g++ nasm mesa-libGL-devel mesa-libGLU-devel SDL2-devel SDL2_mixer-devel alsa-lib-devel libvorbis-devel libvpx-devel gtk2-devel flac flac-devel

Freepats is not packaged in Fedora, you must download and install it by yourself if desired. See also the "timidity-patch-freepats" package on others RPM based distros.

Compiling

To compile, simply run the command make in the base folder (with parameter -j# to speed up compilation with multiple threads). If successful, this should produce the following binaries in the base folder:

  • amcsquad
  • mapster32

The amcsquad binaries do not support game autodetection like eduke32. Instead, you should copy the binaries into the folder that contains the AMC Squad data, i.e. the folder where the amcsquad.grpinfo file is located.

Additional build instructions can be found here:

Feature Differences

This section lists the major changes to the modding API, including new CON and DEF script commands, and how to use them.

General Changes

  • MAXTILES increased from 30720 to 44800
    • Previously was increased to 32512 with AMC 3.5 up to 4.0
    • The editor now alters the mapversion if there's a sprite with a tile above this value.
    • This is intended to prevent loading maps with the wrong editor version, which could delete sprites from the map.
  • MAXGAMEVARS increased from 2048 to 4096 (also doubles MAXGAMEARRAYS).
    • Doubled from 1024 to 2048 in the editor.
  • Increased MAXLABELS from 16384 to 24576. More script labels can now be defined.
  • Increased MAXQUOTES from 16384 to 32768, due to the large amount of cutscene text required.
  • Add additional startup logging to give better feedback on the slow startup process.
  • Mapster32: The key combination [' + Y] enables a pink tile selection background, to improve visibility of tiles in the selector.
  • Looping ambient sounds are now able to overlap with instances of themselves.
  • Added a lower bound for distance between menu items. This allows menus to scroll properly now.
  • Add PROJECTILE_WORKSLIKE flag PROJECTILE_RADIUS_PICNUM_EX:
    • Flag value is 1073741824 (0x40000000).
    • The flag changes the htpicnum of the projectile to the actual picnum, instead of using RADIUSEXPlOSION. However, it also preserves hardcoded behaviors specific to RADIUSEXPLOSION, including destroying spritewalls and spritefloors that have a hitag.
    • RPG projectiles can only burn trees, tires and boxes if this flag is set. Player will receive the same pushback as with RADIUSEXPLOSION when hit.
  • Hardcoded anti-cheat measure removed from skill 4.
  • Change crosshair size slider to range from 10 to 100.
  • Make save settings menu and reset progress options available.
  • Disable hardcoded Duke3D Steroids effects, such as increased kick strength or speed boost. These effects now need to be defined in CON.
  • Various smaller changes that affect AMC specifically, in particular to hardcoded Duke3D functions and player clipping behavior.

CON Commands

Commands that extend the functionality of the CON VM.


definesoundv

Usage: definesoundv <soundID> <filename> <pitch_lower> <pitch_upper> <priority> <flags> <distance> <volume>

Variant of the definesound command, with an added parameter to change the sound's actual volume.

Note: Since this command was added, the original command has been updated to also support volume adjustments. This command is kept for backwards-compatibility.

Defines a sound and assigns various properties to it. The maximum number of sounds that can be defined is 16384.

  • <value>: This can be either the sound's number or the name that has been defined for that number.
  • <filename>: The name of the sound file. Sound files are assumed to be in the same directory as the program unless a folder path is specified.
  • <pitch_lower> and <pitch_upper>: Range in which the sound pitch can vary. Values may be positive or negative.
  • <priority>: A value of 0 to 255 indicates the priority the sound has over other sounds that are playing simultaneously.
  • <flags>: Bitfield which indicates what type of sound you are defining.
    • 1: The sound repeats if continually played.
    • 2: The sound is an ambient effect.
      • 3: The sound will loop until instructed to stop.
    • 4: The sound is a player voice. Disabling "Duke Talk" in the menu will mute this sound.
    • 8: The sound contains offensive content. Disabling "Adult Mode" or enabling the parental lock in the menu will mute this sound.
    • 16: The sound will always be heard from anywhere in the level.
    • 32: If set, only one instance of the sound is allowed to play at a time. (also for definesound)
    • 128: The sound is used in Duke-Tag.
  • <distance>: Negative values increase the distance at which the sound is heard; positive ones reduce it. Can range from -32768 to 32767.
  • <volume>: Ranges from 0 to 16384, with 1024 being the default volume. Changes the actual volume of the sound being played.

ifcfgvar

Usage: ifcfgvar <var>

Can only be used with variables. Will check if the CFG contains the given variable, and if ye

View on GitHub
GitHub Stars19
CategoryDevelopment
Updated3mo ago
Forks5

Languages

C++

Security Score

77/100

Audited on Dec 30, 2025

No findings