Difference between revisions of "FTE QW"

From QWiki
Line 14: Line 14:
  
 
== Client features ==
 
== Client features ==
* Quake Singleplayer, NetQuake and QuakeWorld support (all in one)
+
* 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!
+
* '''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)
+
* 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'''.  
+
* '''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
+
* On-the-fly video mode switching - switch resolutions and even renderers (GL/SW/D3D/'''Vulkan''') without restarting QW
 
* 32-bit support, even in SW
 
* 32-bit support, even in SW
 +
* Optional software-style rendering
 
* rendering at a different resolution (want more speed? or more quality?)
 
* rendering at a different resolution (want more speed? or more quality?)
* Optional software-style rendering
+
* '''Realtime lighting'''
* Realtime lighting
 
 
* MD3 and MD2 model support
 
* MD3 and MD2 model support
* Android port for your phone and tablet
+
* '''Android port''' for your phone and tablet
 
* netcode decoupled from the frame rate (cl_netfps 0 to disable, but why would you)
 
* netcode decoupled from the frame rate (cl_netfps 0 to disable, but why would you)
* Key binding modifiers, like SHIFT-5 or CTRL-F
+
* '''Key binding modifiers''', like SHIFT-5 or CTRL-F
* Copy to clipboard (click and drag text on the console with mouse 2 pressed)
+
* '''Copy to clipboard ('''click and drag text on the console with mouse 2 pressed)
 
* Massive versitility
 
* Massive versitility
 
* QuakeC debugger
 
* QuakeC debugger
Line 34: Line 34:
  
 
* Eye candy stuff:
 
* Eye candy stuff:
** HDR (retina) implementation
+
** '''HDR (retina)''' implementation
** bump mapping
+
** '''bump mapping'''
** Customizable particles - create your own effects, even in SW
+
** Customizable '''particles''' - create your own effects, even in SW
** Support for TrueType Fonts
+
** Support for '''TrueType Fonts'''
** Stereostopic projection (playable fov 180), this also means 360<sup>o</sup> screenshots, videos
+
** Several ''projection types''! Stereostopic projection (playable fov 180), Equirectangular (VR-like, 360<sup>o</sup> screenshots, videos)...
 
and of course, the most common features, like:
 
and of course, the most common features, like:
 
* Independent physics
 
* Independent physics

Revision as of 11:47, 16 November 2018

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

Client fteqw.jpg
Latest version [here], but consider using AfterQuake

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

Information


Client features

  • 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

E1m1.gif

  • 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)...

and of course, the most common features, like:

  • 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!

  • ^1 – ^7 quake3 colours
  • ^b blinking text
  • ^&FB Ansi colour codes. The two letters should be hex codes for the foreground and background colours. The background is opaque, but can be transparent if – is used instead of a hex char.
  • ^xRGB Specifies a specific 12-bit colour 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 yor 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-dependant. 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).
  • 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 recognises, 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 completes 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 take a filename argument followed by width then height. The width and height are still limited by your GPU, but have absolutely no dependancy 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.

Quake Injector

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 dependancies. 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).

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. Cake Dispensers, oh wait, sorry, that one is a lie. A javascript port, an embedded web browser, 360 degree vision, walking on the ceiling, portals, 6dof, custom huds, skyboxes, fog, etc etc.


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.

What now?

If you browse the files that you just installed, you see that some engine config files, huds, particle configurations, crosshairs, etc. are included. 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.

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.

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!
  • You can bring the old menu back by pressing CTRL-C while on the menu. This won’t be saved, its safe.


Handy console commands:

   /apropos <keyword>
   /con_textsize
   /flocate
   /dir *.*
   /fs_restart
   /hud_editor and /hud_export (QuakeWorld only)
   /cfg_load and /cfg_save
   /gamma
   /vid_restart


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 occurence of that file including the package/gamedir that contains it.


Config management Config management is similar to ezQuake. Some quick facts to summarize.

  • 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/*
   /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/

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


Server browser

  • You can use the mouse.
  • use directional keys to navigate. there are 2 areas the 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…)


External links