Skip to content

Commit 6de2790

Browse files
committed
Update README to account for changes with 4.5
1 parent 3f58cb1 commit 6de2790

File tree

1 file changed

+45
-77
lines changed

1 file changed

+45
-77
lines changed

README.md

Lines changed: 45 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* [Installation](#installation)
66
* [Building from Source](#building-from-source)
77
* [Feature Differences](#feature-differences)
8+
* [General Changes](#general-changes)
89
* [CON Commands](#con-commands)
910
* [definesoundv](#definesoundv)
1011
* [ifcfgvar](#ifcfgvar)
@@ -16,24 +17,19 @@
1617
* [profilenanoreset](#profilenanoreset)
1718
* [setmusicvolume](#setmusicvolume)
1819
* [DEF Commands](#def-commands)
19-
* [keyconfig](#keyconfig)
2020
* [customsettings](#customsettings)
2121
* [Game Events](#game-events)
2222
* [EVENT_CSACTIVATELINK](#EVENT_CSACTIVATELINK)
2323
* [EVENT_CSPOSTMODIFYOPTION](#EVENT_CSPOSTMODIFYOPTION)
2424
* [EVENT_CSPREMODIFYOPTION](#EVENT_CSPREMODIFYOPTION)
2525
* [EVENT_CSPOPULATEMENU](#EVENT_CSPOPULATEMENU)
26-
* [EVENT_PREACTORDAMAGE](#EVENT_PREACTORDAMAGE)
2726
* [EVENT_POSTACTORDAMAGE](#EVENT_POSTACTORDAMAGE)
2827
* [Struct Members](#struct-members)
2928
* [userquote_xoffset](#struct-members)
3029
* [userquote_yoffset](#struct-members)
3130
* [voicetoggle](#struct-members)
3231
* [csarray](#struct-members)
3332
* [m_customsettings](#struct-members)
34-
* [Misc Changes](#general-changes)
35-
* [cl_keybindmode](#misc-changes)
36-
* [PROJECTILE_RADIUS_PICNUM_EX](#misc-changes)
3733
* [Credits and Licenses](#credits-and-licenses)
3834

3935
## About
@@ -42,29 +38,29 @@ AMCDuke32 is a fork of the eduke32 engine, created for the game "AMC Squad".
4238
EDuke32 is based on the Duke Nukem 3D source, which was built on the Build
4339
engine by Ken Silverman, released under the Build license.
4440

45-
Its primary purpose is to raise engine limits and alter hardcoded game behaviour, to allow
46-
for greater flexibility in the development of the game. It also adds a small set of CON script
47-
commands that enable modification of features not available in base eduke32. The changes are
48-
generally kept sparse to make merging with mainline eduke32 as smooth as possible.
41+
The main purpose of the fork is to raise engine limits and alter hardcoded game behaviour,
42+
to allow for greater flexibility with developing AMC Squad. It also adds a number of CON script
43+
commands that enable modification of features not available in base eduke32.
4944

50-
Note that The AMC Squad makes extensive use of eduke32 modding features, and hence will not be
51-
made compatible with BuildGDX or Raze.
45+
Note that, since AMC Squad makes extensive use of eduke32 modding features, much like Ion Fury
46+
and Ion Fury Aftershock, it will not be compatible with Raze.
5247

53-
The original eduke32 source port was created by Richard "TerminX" Gobeille, and can be found at:
48+
The original eduke32 source port was created by Richard "TerminX" Gobeille. Its repository is
49+
hosted at:
5450

5551
https://voidpoint.io/terminx/eduke32
5652

5753
## The AMC Squad
5854

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

6359
The group attempts to defend Earth against threats of extraordinary nature, but soon realize that they
64-
may have bitten off more than they can chew.
60+
may have inadvertently made things much worse...
6561

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

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

@@ -74,11 +70,15 @@ https://amcsquad.itch.io/game
7470

7571
## Installation
7672

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

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

81-
For Linux, we recommend compiling the binary from source, using the instructions given below. Mac support is untested.
78+
We provide binaries for Linux, compiled on Ubuntu 22.04. However, for optimal compatibility, we recommend compiling the
79+
binary from source, using the instructions given below.
80+
81+
The engine can in principle be compiled for Mac, but the game is currently untested on this OS.
8282

8383

8484
### Building from Source
@@ -116,8 +116,8 @@ with multiple threads). If successful, this should produce the following binarie
116116
* `amcsquad`
117117
* `mapster32`
118118

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

122122
__Additional build instructions can be found here:__
123123

@@ -129,6 +129,29 @@ __Additional build instructions can be found here:__
129129

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

132+
### __General Changes__
133+
134+
* `MAXTILES` increased from 30720 to 44800
135+
* Previously was increased to 32512 with AMC 3.5 up to 4.0
136+
* The editor now alters the mapversion if there's a sprite with a tile above this value.
137+
* This is intended to prevent loading maps with the wrong editor version, which could delete sprites from the map.
138+
* `MAXGAMEVARS` increased from 2048 to 4096 (also doubles `MAXGAMEARRAYS`).
139+
* Doubled from 1024 to 2048 in the editor.
140+
* Increased MAXLABELS from 16384 to 24576. More script labels can now be defined.
141+
* Increased MAXQUOTES from 16384 to 32768, due to the large amount of cutscene text required.
142+
* Add additional startup logging to give better feedback on the slow startup process.
143+
* Mapster32: The key combination `[' + Y]` enables a pink tile selection background, to improve visibility of tiles in the selector.
144+
* Looping ambient sounds are now able to overlap with instances of themselves.
145+
* Added a lower bound for distance between menu items. This allows menus to scroll properly now.
146+
* Add `PROJECTILE_WORKSLIKE` flag `PROJECTILE_RADIUS_PICNUM_EX`:
147+
* Flag value is 1073741824 (0x40000000).
148+
* 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.
149+
* 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.
150+
* Hardcoded anti-cheat measure removed from skill 4.
151+
* Change crosshair size slider to range from 10 to 100.
152+
* Make save settings menu and reset progress options available.
153+
* Various smaller changes that affect AMC specifically, in particular to hardcoded Duke3D functions and player clipping behavior.
154+
132155
### __CON Commands__
133156

134157
Commands that extend the functionality of the CON VM.
@@ -141,6 +164,8 @@ Usage: `definesoundv <soundID> <filename> <pitch_lower> <pitch_upper> <priority>
141164

142165
Variant of the [definesound](https://wiki.eduke32.com/wiki/Definesound) command, with an added parameter to change the sound's actual volume.
143166

167+
__Note: Since this command was added, the original command has been updated to also support volume adjustments. This command is kept for backwards-compatibility.__
168+
144169
Defines a sound and assigns various properties to it. The maximum number of sounds that can be defined is 16384.
145170

146171
* `<value>`: This can be either the sound's number or the name that has been defined for that number.
@@ -261,28 +286,6 @@ Commands that extend the DEF script functionality.
261286

262287
----
263288

264-
#### __keyconfig__
265-
266-
Allows reordering of gamefunc menu entries.
267-
268-
Usage:
269-
```
270-
keyconfig
271-
{
272-
gamefunc_Move_Forward
273-
gamefunc_Move_Backward
274-
gamefunc_Strafe_Left
275-
gamefunc_Strafe_Right
276-
...
277-
}
278-
```
279-
280-
List the [gamefunc names](https://wiki.eduke32.com/wiki/Getgamefuncbind) in the order in which you want them to appear inside the keyboard and mouse config menus, separated by newlines or whitespaces. Any omitted gamefuncs will not be listed in the menu.
281-
282-
This command is compatible with the CON commands [definegamefuncname](https://wiki.eduke32.com/wiki/Definegamefuncname) and [undefinegamefunc](https://wiki.eduke32.com/wiki/Undefinegamefunc).
283-
284-
----
285-
286289
#### __customsettings__
287290

288291
Can be used to define the structure of a custom settings menu. Has a maximum of 64 entries.
@@ -413,19 +416,6 @@ For instance, this can be used to change the default values of the menu, and/or
413416

414417
----
415418

416-
#### __EVENT_PREACTORDAMAGE__
417-
418-
This event is called when an actor runs `A_IncurDamage()`, just before decreasing `sprite[].extra` and changing the owner.
419-
420-
i.e. it occurs before the actor has taken damage and its health was updated.
421-
422-
* `sprite[].htextra` stores the damage to be applied, `sprite[].htowner` stores the source of the damage.
423-
* `sprite[].extra` stores the current health, `sprite[].owner` stores the previous source of damage.
424-
* Set RETURN to != 0 to cancel damage.
425-
* Currently, this event is not executed when the player takes damage.
426-
427-
----
428-
429419
#### __EVENT_POSTACTORDAMAGE__
430420

431421
This event is called when an actor runs `A_IncurDamage()`, just after decreasing sprite[].extra, resetting htextra to -1 and updating htowner.
@@ -453,28 +443,6 @@ New struct members added by the fork.
453443
* IMPORTANT: Uses the index defined inside the DEF, not the ordering of the items!
454444
* The index will be set to -1 if the index was not defined within the DEF.
455445

456-
### __Misc Changes__
457-
458-
* `MAXTILES` increased from 30720 to 44800
459-
* Previously was increased to 32512 with AMC 3.5 up to 4.0
460-
* The editor now alters the mapversion if there's a sprite with a tile above this value.
461-
* This is intended to prevent loading maps with the wrong editor version, which could delete sprites from the map.
462-
* `MAXGAMEVARS` increased from 2048 to 4096 (also doubles `MAXGAMEARRAYS`).
463-
* Doubled from 1024 to 2048 in the editor.
464-
* Mapster32: The key combination `[' + Y]` enables a pink tile selection background, to improve visibility of tiles in the selector.
465-
* Looping ambient sounds are now able to overlap with instances of themselves.
466-
* Add cvar `cl_keybindmode` to change keyboard config behaviour.
467-
* If 0, will allow multiple gamefuncs to be assigned to the same key in the keyboard config menu (original behavior).
468-
* If 1, will clear all existing gamefuncs for that key when binding a key to a gamefunc. This prevents accidentally assigning multiple gamefuncs to the same key, e.g. when default values exist.
469-
* Added a lower bound for distance between menu items. This allows menus to scroll properly now.
470-
* Add `PROJECTILE_WORKSLIKE` flag `PROJECTILE_RADIUS_PICNUM_EX`:
471-
* Flag value is 1073741824 (0x40000000).
472-
* 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.
473-
* 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.
474-
* Hardcoded anti-cheat measure removed from skill 4.
475-
* Change crosshair size slider to range from 10 to 100.
476-
* Make save settings menu and reset progress options available.
477-
* Various bugfixes and changes that affected AMC specifically.
478446

479447
## Credits and Licenses
480448

0 commit comments

Comments
 (0)