FTE QW

FTE also known as FTEQW, FTE QuakeWorld and Fore Thought Entertainment.

Update: At Quake Expo 2016, AfterQuake was released. AfterQuake is a package with everything you need to fully enjoy the wonders of FTE. See wiki page for more info: AfterQuake

Latest version [here], but consider using AfterQuake

= Information =
 * Founded: 2002 by [[Image:flag_uk.gif]] Spike
 * Current team members: [[Image:flag_uk.gif]] Spike
 * Inactive team members: [[Image:flag_us.gif]] TimeServ, [[Image:flag_dk.gif]] Bigfoot, [[Image:flag_au.gif]] Moodles and [[Image:flag_se.gif]] Molgrum

= Client feature list = and of course, the most common features, like:
 * Quake Singleplayer, NetQuake and QuakeWorld support (all in one)
 * Demo capturing - create your own movies, using custom resolutions, encoding in your favorite codec... very simple!
 * Many options for screenshots (virtual reality, mega resolution, stereoscopic)
 * Plugin system - the current plugins will allow you such features as customizing the HUD,connecting to IRC or download from QuakeInjector.
 * On-the-fly video mode switching - switch resolutions and even renderers (GL/SW/D3D/Vulkan) without restarting QW
 * 32-bit support, even in SW
 * Optional software-style rendering
 * rendering at a different resolution (want more speed? or more quality?)
 * Realtime lighting
 * MD3 and MD2 model support
 * Android port for your phone and tablet
 * netcode decoupled from the frame rate (cl_netfps 0 to disable, but why would you)
 * Key binding modifiers, like SHIFT-5 or CTRL-F
 * Copy to clipboard (click and drag text on the console with mouse 2 pressed)
 * Massive versitility
 * QuakeC debugger
 * Eye candy stuff:
 * HDR (retina) implementation
 * bump mapping
 * Customizable particles - create your own effects, even in SW
 * Support for TrueType Fonts
 * Several projection types! Stereostopic projection (playable fov 180), Equirectangular (VR-like, 360o screenshots, videos)...
 * Independent physics
 * Built-in serverbrowser
 * PK3 and ZIP support - compress your files and organize the quake folder

and many, many more... Some of the features are described in more detail below:

The console
FTE’s console is amazing!

Colors, TTF and links:
 * ^1 – ^7 quake3 colors
 * ^b blinking text
 * ^&FB Ansi color codes. The two letters should be hex codes for the foreground and background colors. The background is opaque but can be transparent if – is used instead of a hex char.
 * ^xRGB Specifies a specific 12-bit color value for the following text.
 * ^{XXXX} Specifies an explicit unicode char value. Note that Quake’s chars are mapped to the E0XX range, while various hud images are in the E1XX range, if you want to embed some of those images.
 * The engine can support unicode text using the mechanism above, but in order for it to be displayed correctly, you’ll need a unicode font, eg: ‘/gl_font cour‘, which will use "courier" from your windows’ fonts directory.
 * ^[/foobar^] console links, this example can be clicked to provide hints to other people for console commands to use (like ^[/connect x.y.z.w^]).
 * There are additional types of links which contain a trailing ‘infokey’ string, and can be context-dependent. For instance, ^[Hello\tip\I SAID HELLO^] will display some text when the mouse cursor is moved over it. ^[\img\gfx/conback.lmp^] can embed images, but only when it is the first thing on the line (hurrah for the echo command).

Copy to Clipboard, autocomplete, search
 * player names are also normally clickable, giving a couple of options (especially if you’re hosting a listen server).
 * The dir command will provide clickable filenames for extensions/paths that it recognizes, to view/edit those files.
 * left-click and drag to scroll the console up/down.
 * right-click and drag to copy text to the clipboard. Paste it back with ctrl+v (or into other programs).
 * tab attempts to complete the command, up until the next deviation. Alternative completions will be displayed as footer text.
 * ctrl+space autocompletes the full predicted command.
 * Command/cvar descriptions will be displayed as footer text, where provided.
 * If you don’t know the full name/prefix of a command, type /apropos followed by what you do know, and the engine will display a list of the cvars/commands that contain your snippet as part of their name or description.

Mega Screenshots
This little feature uses render-to-texture rather than rendering stuff to whatever puny window you have. This allows the high-resolution screenshots, and by high-resolution, I mean 16384*16384. Each of these commands takes a filename argument followed by width then height. The width and height are still limited by your GPU, but have absolutely no dependency on your monitor or window size etc.

screenshot_mega: Takes a ‘simple’ large screenshot. screenshot_stereo: Takes two screenshots side-by-side with a small(r_stereo_separation) offset (also assumed by screenshot_mega with the .pns extension). screenshot_vr: Takes many many many screenshots giving a horizontal 360 perspective that can be viewed with a few different display software.

The resulting filename will be displayed in the console (as a more easily findable system path).

r_renderscale
This renders the game view at a different resolution than your screen. A value of 2 is good for supersampling, giving a smoother appearance even mid-surface (unlike msaa), without needing to resort to bluring (read: fxaa). Fantastic looks. A value of 0.5 can give a small speedup with complex scenes involving many rtlights or reflections.

Values above 1 should not normally be used in conjunction with /r_fxaa. The result is not desirable, while smaller values are positively weird, but awesome with it.

Download Menu
The in-engine download menu provides easy access to install/uninstall additional packages, or simply update them more easily. You should be able to find retexturing packages and rtlight definitions in here, of note, are the in-game editor (which needs cheats or singleplayer to use), as well as a number of additional plugins.

While FTE has had a ‘/menu_download‘ command for a while, its options didn’t include anything noteworthy and it wasn’t exactly advertised whatsoever.

And So Much More
CSQC, Advanced SSQC, BSP2, Lit files, RealTime Lighting, Specular, Bumpmapping, Paralax mapping, Refraction, Reflection, NetQuake mods, QuakeWorld mods, plays Quake2, plays Hexen2, Quake3 support too!

Doppler, OpenAL Reverb, Ogg, Voip. Ingame brush editing, skeletal models.

A javascript port, an embedded web browser, 360 degree vision, walking on the ceiling, portals, 6dof, custom huds, skyboxes, fog, etc etc.

Plugins
Plugins add (even more) functionality to FTE. It's a library (DLL file in windows) that is copied to AfterQuake root folder. Some plugins:

The Quake Injector plugin downloads mods and metadata from http://quaddicted.com/. The mods are downloaded and run from cached zips within the downloads directory, rather than having their own individual game directories. Most entries are maps, but many will have dependencies. Note that few mods have directly been tested with FTE, but a number of those that have do require /sv_nqplayerphysics to be set to 1 (alternatively enabled via the ‘compatibility’ game config).
 * Quake Injector 

Basically enables ezQuake hud configs to be used on FTE. under construction What the name says, new menus.
 * EzQuake HUD
 * Ingame Map Editor
 * Replacement Menus

= Android port = See FTEDroid

= Server features =
 * Anti-wallhack
 * requiredownloads - can enter the server while downloading files
 * Runs KTPro and KTX
 * binaries for windows, linux and raspberry pi

= Modders, Developers features =

Manifests
This is a modder feature – manifest files are how you can reconfigure FTE to forget that it was ever a quake engine, and have it run your mod instead, just grab default.fmf from Afterquake or whatever and modify it for your own mod. You can also directly embed the manifest into the exe along with an icon to fully rebrand it as far as the user is likely to see (‘-makeinstaller foo’ on the commandline will write out a new foo.exe based on foo.fmf).

Manifest documentation is here: https://sourceforge.net/p/fteqw/code/HEAD/tree/trunk/specs/fte_manifests.txt

QC Debugging
Open up your progs.src with fteqccgui (set up a file association or something). Hit f5, tell it the basedir of your quake install (guessed as two levels up from your .src file), tell it the engine to use (ie: fteqw.exe). And then debug away! Hit f9 to set breakpoints, f11 to single-step. Any qc errors that your code triggers will be displayed simply within the debugger.

= FAQ = How to get FTE???

The easiest way is to use AfterQuake. Read that page for related info.

What now?

AfterQuake can download a bunch of things from the menu, for example, engine config files, huds, particle configurations, crosshairs, etc. You can load these from the ingame menu, or you can use the built-in console variables /list* to view them ingame. If you’re curious, you should use pakscape (included) to browse the .pk3 files included (located under dlcache folder).

The config loaded by default is the engine default. It might not be suited for you, so you may want to load another with /cfg_load. To list the available configs, type /listconfigs in the console, and load one. Just in case, type /vid_restart every time you load one new. Save your config with /cfg_save  (remember to cfg_load next time you run the game) or just /cfgsave to overwrite the default one. More info below.

First run


 * The menus are supposed to be browsed with the mouse. Using the keyboard is so oldschool!
 * Press ESC to access the console. There’s a console command that searches all the commands, cvars that the engine has. It is called /apropos. Use it! It’s a big help to customize settings and explore!
 * Is the console text too small? use /con_textsize to change. type /ttffonts for more info about fonts
 * To start, I suggest you to start a new game or connect to an online server. Go to “Join Server” – the server browser starts querying online servers. Filter the list by either 1) start typing the name of the server you’re looking for (backspace to delete characters) or 2) using the filters on the bottom of the screen. You can sort the columns too (hint: always use the mouse and read the contextual help!)
 * Once a map is loaded, you can visually see the changes when loading huds or particle configs from the menu. And everything else too. Browse the menus for gems!
 * If you're using the new menu, you can bring the old menu back by pressing CTRL-C while on the menu. This preference won’t be saved.

Handy console commands:

/apropos /con_textsize /flocate /dir *.* /fs_restart /hud_editor and /hud_export (QuakeWorld only, when using the ezQuake hud plugin) /cfg_load and /cfg_save /gamma /vid_restart Cool console commands: /r_projection 0-5 /r_dynamic -1 (much more frames per second on big, open maps with few textures) /r_bloom 0-1 (to tune bloom)

Paths

Paths can be annoying. Assuming that you don’t want to use “My Documents” folder to keep your game data, confirm that FTE is using the current folder by typing /path in the console.
 * If it prints “My documents”, start FTE with the parameter -nohome, and create a shortcut to it.
 * If you want to see which package a file is inside, you can use “/flocate maps/foo.bsp” for instance. Alternatively, you can use “/dir maps/foo.bsp” and it’ll list each occurrence of that file including the package/gamedir that contains it.

Config management

Config management is similar to ezQuake. Some quick facts to summarize. /cfg_save ⇒ Saves fte.cfg into fte/ folder /cfg_save foo ⇒ Saves foo.cfg into fte/configs/ folder /exec foo.cfg ⇒ executes foo.cfg from default locations, fte/ or qw/ or id1/
 * The config file located at fte/fte.cfg is the config that is loaded when you run fte client;
 * Other configs get saved into fte/configs/*

Type /listconfigs to list every config on fte/ folder. There are more /list options, for example /listcrosshairs which is awesome!

Server browser

If you're into multiplayer (netQuake or QuakeWorld) there's a server browser.
 * You can use the mouse.
 * use directional keys to navigate. there are 2 areas to navigate: the server list and the option list below.
 * You can filter the servers just by typing.
 * Once you select a server to join, you can use new keys to connect in different ways. press the left directional key to see the keys and what they do (o to observe…)