In no particular order:
* Use `set -e`, because it prevents accidents, and means we can avoid
lengthy &&-joined command chains.
* Override defaults by setting env vars; this means people don't have to
edit the script to change things.
* Use an unpredictable and safely-created tmpdir for building; ain't nobody
wants to cleanup from a tmpdir race condition attack.
* Test for the presence of `git` and `make` *before* asking questions, and
only prompt the user about them if they're missing. No need to bother
people with unnecessary reading.
* Automatically clean up the build directory after use.
* Tidy up some indenting that had come asunder.
If your distribution doesn’t include such niceties, these could help a
newbie get started with a compiled build of ioquake3 for servers and a
short script to get started.