mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-25 21:31:37 +00:00
c6c3d3f4e0
Quick hack preliminary d3d11 renderer. I'm not likely to touch this again for quite some time. Sys_Error works properly on android, with an error message shown. Should be less of a stab in the dark if you get errors. Seg faults are still instantly fatal. Not much I can reliably do about those - most of the juicy ones will likely occur within the gl drivers (even if its my fault) and java will still call in to it. Stereoscopic (quad-buffered) rendering is in the gl renderer. You'll likely need a quatro to use it despite it being a gl 1.0 feature. No idea about ati. See r_stereo_method for non-quad-buffered alternatives. Tweaked networking to not overflow so much. Needs testing against other qw clients. Fixed an issue with surface numbers > 32k on limit-breaking maps. Fixed a preparse issue resulting in QW clients dying with the ne_ruins map's progs. Support for the DP-variant of BSP2. The depricated RMQ variant is still supported. QTV proxy now uses ipv6 hybrid sockets where possible. Preliminary pext support. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4105 fc73d0e0-1445-4013-8a0c-d673dee63da5
48 lines
No EOL
3.7 KiB
Text
48 lines
No EOL
3.7 KiB
Text
Making mods in FTE can be done the same way you make mods for any other engine.
|
|
However, there are some nice tricks you can use to make it easier/faster/simpler.
|
|
|
|
Built in compiler:
|
|
FTEQW generally contains a built in version of FTEQCC. You can access it with the 'compile' console command.
|
|
Generally, you would make a mod 'egmod' as such:
|
|
Quake/
|
|
Quake/fteglqw.exe
|
|
Quake/egmod/
|
|
Quake/egmod/src/progs.src
|
|
Quake/egmod/src/everythingelse.qc
|
|
Quake/egmod/progs.dat (or qwprogs.dat)
|
|
If your progs.src contains an output of '../progs.dat' (at least a matching path) then the output will be directly runnable.
|
|
The 'compile' command will thus compile progs.src into progs.dat.
|
|
You can also 'compile csprogs.src' if you want to compile, eg, a csqc mod.
|
|
Additionally, the 'applycompile' basically does a quick savegame, effectively applying a newly compiled mod without restarting a map. This is useful if you just want to test a single repeatable function without booting players or anything - this won't automagically change any fields!
|
|
|
|
Multiplayer testing:
|
|
Unlike other QuakeWorld engines, FTE permits multiple instances of itself.
|
|
(Note that other quakeworld engines will refuse to start up if FTE is already running, but FTE will start up if they are running, so if you want to test ezquake+FTE compatibility, start ezquake first).
|
|
Also...
|
|
FTE supports splitscreen! This can simplify testing multiplayer when you can't be bothered switching between two clients.
|
|
Mostly this should be documented elsewhere, but here's the basics.
|
|
cl_splitscreen can be set to 0, 1, 2, 3. This cvar says how many additional clients should be used. If you're running a listen server, this is the only cvar you 'need' to set.
|
|
There are a few other cvars, but for testing you can set up one half of your keyboard for the second player. Or you can make some bind to change the value of the 'cl_forcesplitclient' cvar, to force input to a different splitclient.
|
|
|
|
Debugging:
|
|
FTE has a 'breakpoint' command.
|
|
This command accepts either a function name, in which case it uses the first statement of that function, or a file+lineno pair.
|
|
When the breakpoint is hit, you'll get either just a print saying it was hit (once) or it'll bring up the editor...
|
|
Editor? Yes, editor.
|
|
In order to debug, set developer 1, and make sure you have an .lno file matching your progs (this file is generated by any form of fteqcc).
|
|
Note: A few builtins in FTE detect error conditions and force tracing on, hopefully along with a message saying why.
|
|
You can use the traceon builtin to force tracing on as a qc-coded breakpoint.
|
|
f11 will single-step (step-into).
|
|
f9 will toggle a breakpoint
|
|
f5 will resume execution.
|
|
f3 will bring up an inspection line. Type QC values to inspect stuff (or 'foo = 5' to assign to foo - doesn't support calls).
|
|
escape will close the editor and resume execution until the next breakpoint.
|
|
There is limited console access. Please be very careful about the commands you exec in this state.
|
|
Do note that while debugging, there is no network activity. People will time out if you debug for too long in a single frame.
|
|
Dedicated servers do not support a built in editor. If you set developer and hit a breakpoint, a dedicated server will simply print out the source code of each line which is executed, in a cheesy trace fashion.
|
|
To recap: developer 1+.lno file = step-by-step debugging/code tracing.
|
|
|
|
Coredumps:
|
|
If there's a crash which FTE believes to be caused by QC code, FTE will generate a coredump in the current gamedir (generally this is in your home directory somewhere - note the path command to find out where).
|
|
These coredumps will contain information on locals within the functions that are still on the QC stack.
|
|
You can also force a core dump with the coredump_ssqc command. |