AMX Mod X can compile and run AMX plugins,
but AMX cannot reciprocate this compatibility. The AMX Mod X team has
put much effort into making sure as many AMX plugins as possible will continue
to work with little modification.
AMX's Module API is heavily broken
and dangerously unstable. It has known memory leaks and crash problems,
and is especially volatile on Listen Servers. AMX Mod X fixes this by
implementing a new Module API which has a threefold purpose. The first
is to unify plugins, modules, metamod, and the AMX Mod X core. The
second is to remove the dependence on Metamod by creating a "FakeMeta" layer
to route engine calls. The third is to create a framework for detecting
problems and memory leaks easier. AMX's solution to the problem is
surprisingly less robust - an ugly hack to escape an ugly hack (double forcing
modules to be both in metamod and AMX at the same time).
AMX Mod X and AMX both implement the
JIT, which is an implementation of the plugin interpreter that translates
virtual machine calls into direct assembly. The JIT gives enormous
AMX Mod X has a multi-lingual system
that is tied across the client, the server, plugins, and modules. It
features a high-speed lookup routine and an intuitive method of storing
language translations. AMX's Multi-Lingual system is virtually
nonexistant, features a poor lookup routine (text read), and is mainly client
AMX Mod X is distributed as a base
package, which you can upgrade with Mod Package Add-ons. AMX is
Counter-Strike oriented and comes with mod-specific items enabled.
AMX has traditionally been a very
closed development group. Public discussion of changes rarely takes
place and release information is kept totally in the dark. AMX Mod X
publically announces all changes, all source code, and all members of the
respective development teams. The teams are well organized so
development is not a one-man operation. AMX Mod X also invites members
of the community to take place in contributing official source code, patches,
AMX's SQL support is severely
lacking, with no support for nested queries and numerous crash bugs. AMX
Mod X's SQL support has been rewritten from the ground up to be more advanced
and implemented as a driver API (this means that one function can control
different database architectures). AMX Mod X comes with support for
PgSQL, MySQL, and MS-SQL.
AMX has been infamous for very poor
organization. The directory structure is not intuitive and leads to a
lot of confusion for newcomers. AMX Mod X has replaced this archane
layout with a new one.
AMX Mod X commits every line of code
to publically viewable CVS. Every developer has access to the CVS.
With this revision control system, anyone can see a complete history of how
the AMX Mod X source code evolved. While both AMX Mod X and AMX are
under the GNU General Public License (as Metamod requires), AMX source code is
not fully available. No one seems to know why, but it fits the theme of
AMX being a closed development environment.
AMX Mod X has a full function
reference written with community exchange of ideas and source code in mind.
This has also been fully exported into the documentation. AMX Mod has no
comparable function reference.
AMX Mod X is fully
64bit compatibility on AMD64 processors. With an AMD64 machine for
testing and a researched strategy for building a 64bit interface, AMX Mod X
is ready for 64bit. AMX Mod has no known
plans for this.
The FakeMeta module allows you hook
or call almost any Half-Life Mod/DLL engine function, as well as get and set
entity properties with mahnsawce's intuitive pev() native.
AMX Mod X has an interactive web
compiler for people to try out quick plugins, do syntax checking, or to make a
convenient compile. AMX Mod has no such comparable feature. The
Web Compiler also features the backwards compatible includes for AMX.
AMX Mod compiles only released plugin on-the-fly.
This document is Copyright © 2004 The AMX Mod
X Development Team.
You may republish this document under the terms of the GNU Free Documentation License.