Documentation: add DedicatedServer.md, EntityGuide.md, merge EAX/EFX within doxygen generated docs.
This commit is contained in:
parent
05af28180e
commit
d66ebc4fd9
5 changed files with 400 additions and 18 deletions
34
Documentation/DedicatedServer.md
Normal file
34
Documentation/DedicatedServer.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Dedicated Server
|
||||
|
||||
# Usage
|
||||
|
||||
To initialize a dedicated server, you can run `./nuclide-ds -game yourGame`. It is generally advised to write and execute a server config file you have prepared ahead of time.
|
||||
|
||||
Here is an example:
|
||||
|
||||
```
|
||||
hostname "Nuclide Test Server"
|
||||
set sv_public 2 // 0 - not public, 1 = advertised on master server, 2 = ICE
|
||||
set deathmatch 1 // request multiplayer modus
|
||||
set coop 0 // deny coop modus
|
||||
set maxplayers 16 // 16 players max
|
||||
set timelimit 10 // 10 minutes per map
|
||||
set fraglimit 30 // 30 frags per map
|
||||
set pausable 0 // don't allow players to 'pause'
|
||||
set rcon_password "" // no rcon
|
||||
map dm_beck16 // start
|
||||
```
|
||||
|
||||
You can then run the dedicated server like this:
|
||||
|
||||
`./nuclide-ds -game yourGame +exec server.cfg`
|
||||
|
||||
In production, the exact same style of commands applies to release builds. So if you have a standard engine binary (**fteqwgl64.exe** or a branded executable) things will be identical.
|
||||
|
||||
Keep in mind to set any game specific console variables.
|
||||
|
||||
# Remote Console (RCon)
|
||||
|
||||
In the above config, if you've set rcon_password to anything other than `""` you have access to remotely control the game server.
|
||||
|
||||
For example, you can (as a client, once connected) use the command `rcon yourPassword changelevel dm_beck16` to forcefully change the level on the server. Anything that's possible in a conventional dedicated server console is now accessible.
|
348
Documentation/EntityGuide.md
Normal file
348
Documentation/EntityGuide.md
Normal file
|
@ -0,0 +1,348 @@
|
|||
# Entity Guide
|
||||
|
||||
# Overview
|
||||
|
||||
[ambient_generic](@ref ambient_generic)
|
||||
|
||||
[button_target](@ref button_target)
|
||||
|
||||
[cycler](@ref cycler)
|
||||
|
||||
[cycler_sprite](@ref cycler_sprite)
|
||||
|
||||
[cycler_weapon](@ref cycler_weapon)
|
||||
|
||||
[cycler_wreckage](@ref cycler_wreckage)
|
||||
|
||||
[env_beam](@ref env_beam)
|
||||
|
||||
[env_beverage](@ref env_beverage)
|
||||
|
||||
[env_bubbles](@ref env_bubbles)
|
||||
|
||||
[env_cascade_light](@ref env_cascade_light)
|
||||
|
||||
[env_cubemap](@ref env_cubemap)
|
||||
|
||||
[env_explosion](@ref env_explosion)
|
||||
|
||||
[env_fade](@ref env_fade)
|
||||
|
||||
[env_fire](@ref env_fire)
|
||||
|
||||
[env_fog](@ref env_fog)
|
||||
|
||||
[env_fog_controller](@ref env_fog_controller)
|
||||
|
||||
[env_funnel](@ref env_funnel)
|
||||
|
||||
[env_global](@ref env_global)
|
||||
|
||||
[env_glow](@ref env_glow)
|
||||
|
||||
[env_hudhint](@ref env_hudhint)
|
||||
|
||||
[env_instructor_hint](@ref env_instructor_hint)
|
||||
|
||||
[env_laser](@ref env_laser)
|
||||
|
||||
[env_message](@ref env_message)
|
||||
|
||||
[env_model](@ref env_model)
|
||||
|
||||
[env_muzzleflash](@ref env_muzzleflash)
|
||||
|
||||
[env_particle](@ref env_particle)
|
||||
|
||||
[env_physexplosion](@ref env_physexplosion)
|
||||
|
||||
[env_projectedtexture](@ref env_projectedtexture)
|
||||
|
||||
[env_render](@ref env_render)
|
||||
|
||||
[env_shake](@ref env_shake)
|
||||
|
||||
[env_shockwave](@ref env_shockwave)
|
||||
|
||||
[env_shooter](@ref env_shooter)
|
||||
|
||||
[env_smoker](@ref env_smoker)
|
||||
|
||||
[env_sound](@ref env_sound)
|
||||
|
||||
[env_soundscape](@ref env_soundscape)
|
||||
|
||||
[env_spark](@ref env_spark)
|
||||
|
||||
[env_sprite](@ref env_sprite)
|
||||
|
||||
[env_steam](@ref env_steam)
|
||||
|
||||
[env_sun](@ref env_sun)
|
||||
|
||||
[func_areaportal](@ref func_areaportal)
|
||||
|
||||
[func_areaportalwindow](@ref func_areaportalwindow)
|
||||
|
||||
[func_breakable](@ref func_breakable)
|
||||
|
||||
[func_brush](@ref func_brush)
|
||||
|
||||
[func_button](@ref func_button)
|
||||
|
||||
[func_conveyor](@ref func_conveyor)
|
||||
|
||||
[func_detail](@ref func_detail)
|
||||
|
||||
[func_detail_illusionary](@ref func_detail_illusionary)
|
||||
|
||||
[func_door](@ref func_door)
|
||||
|
||||
[func_door_rotating](@ref func_door_rotating)
|
||||
|
||||
[func_dustcloud](@ref func_dustcloud)
|
||||
|
||||
[func_dustmotes](@ref func_dustmotes)
|
||||
|
||||
[func_friction](@ref func_friction)
|
||||
|
||||
[func_group](@ref func_group)
|
||||
|
||||
[func_guntarget](@ref func_guntarget)
|
||||
|
||||
[func_healthcharger](@ref func_healthcharger)
|
||||
|
||||
[func_illusionary](@ref func_illusionary)
|
||||
|
||||
[func_ladder](@ref func_ladder)
|
||||
|
||||
[func_lod](@ref func_lod)
|
||||
|
||||
[func_monitor](@ref func_monitor)
|
||||
|
||||
[func_monsterclip](@ref func_monsterclip)
|
||||
|
||||
[func_mortar_field](@ref func_mortar_field)
|
||||
|
||||
[func_pendulum](@ref func_pendulum)
|
||||
|
||||
[func_physbox](@ref func_physbox)
|
||||
|
||||
[func_plat](@ref func_plat)
|
||||
|
||||
[func_platrot](@ref func_platrot)
|
||||
|
||||
[func_pushable](@ref func_pushable)
|
||||
|
||||
[func_recharge](@ref func_recharge)
|
||||
|
||||
[func_rot_button](@ref func_rot_button)
|
||||
|
||||
[func_rotating](@ref func_rotating)
|
||||
|
||||
[func_smokevolume](@ref func_smokevolume)
|
||||
|
||||
[func_tank](@ref func_tank)
|
||||
|
||||
[func_tankcontrols](@ref func_tankcontrols)
|
||||
|
||||
[func_tankmortar](@ref func_tankmortar)
|
||||
|
||||
[func_tracktrain](@ref func_tracktrain)
|
||||
|
||||
[func_train](@ref func_train)
|
||||
|
||||
[func_traincontrols](@ref func_traincontrols)
|
||||
|
||||
[func_vehicle](@ref func_vehicle)
|
||||
|
||||
[func_vehiclecontrols](@ref func_vehiclecontrols)
|
||||
|
||||
[func_wall](@ref func_wall)
|
||||
|
||||
[func_wall_toggle](@ref func_wall_toggle)
|
||||
|
||||
[game_counter](@ref game_counter)
|
||||
|
||||
[game_counter_set](@ref game_counter_set)
|
||||
|
||||
[game_end](@ref game_end)
|
||||
|
||||
[game_player_equip](@ref game_player_equip)
|
||||
|
||||
[game_player_hurt](@ref game_player_hurt)
|
||||
|
||||
[game_player_team](@ref game_player_team)
|
||||
|
||||
[game_score](@ref game_score)
|
||||
|
||||
[game_team_master](@ref game_team_master)
|
||||
|
||||
[game_team_set](@ref game_team_set)
|
||||
|
||||
[game_text](@ref game_text)
|
||||
|
||||
[game_zone_player](@ref game_zone_player)
|
||||
|
||||
[gibshooter](@ref gibshooter)
|
||||
|
||||
[info_hint](@ref info_hint)
|
||||
|
||||
[info_intermission](@ref info_intermission)
|
||||
|
||||
[info_node](@ref info_node)
|
||||
|
||||
[info_node_air](@ref info_node_air)
|
||||
|
||||
[info_notnull](@ref info_notnull)
|
||||
|
||||
[info_null](@ref info_null)
|
||||
|
||||
[info_particle_system](@ref info_particle_system)
|
||||
|
||||
[info_player_coop](@ref info_player_coop)
|
||||
|
||||
[info_player_deathmatch](@ref info_player_deathmatch)
|
||||
|
||||
[info_player_start](@ref info_player_start)
|
||||
|
||||
[info_teleport_destination](@ref info_teleport_destination)
|
||||
|
||||
[info_waypoint](@ref info_waypoint)
|
||||
|
||||
[infodecal](@ref infodecal)
|
||||
|
||||
[item_food](@ref item_food)
|
||||
|
||||
[light](@ref light)
|
||||
|
||||
[light_dynamic](@ref light_dynamic)
|
||||
|
||||
[light_environment](@ref light_environment)
|
||||
|
||||
[light_surface](@ref light_surface)
|
||||
|
||||
[logic_achievement](@ref logic_achievement)
|
||||
|
||||
[logic_auto](@ref logic_auto)
|
||||
|
||||
[logic_case](@ref logic_case)
|
||||
|
||||
[logic_relay](@ref logic_relay)
|
||||
|
||||
[logic_timer](@ref logic_timer)
|
||||
|
||||
[momentary_door](@ref momentary_door)
|
||||
|
||||
[momentary_rot_button](@ref momentary_rot_button)
|
||||
|
||||
[monster_furniture](@ref monster_furniture)
|
||||
|
||||
[monster_generic](@ref monster_generic)
|
||||
|
||||
[monstermaker](@ref monstermaker)
|
||||
|
||||
[multi_manager](@ref multi_manager)
|
||||
|
||||
[multisource](@ref multisource)
|
||||
|
||||
[path_corner](@ref path_corner)
|
||||
|
||||
[path_track](@ref path_track)
|
||||
|
||||
[phys_ballsocket](@ref phys_ballsocket)
|
||||
|
||||
[phys_constraint](@ref phys_constraint)
|
||||
|
||||
[phys_constraintsystem](@ref phys_constraintsystem)
|
||||
|
||||
[phys_convert](@ref phys_convert)
|
||||
|
||||
[phys_hinge](@ref phys_hinge)
|
||||
|
||||
[phys_keepupright](@ref phys_keepupright)
|
||||
|
||||
[phys_rope](@ref phys_rope)
|
||||
|
||||
[phys_slideconstraint](@ref phys_slideconstraint)
|
||||
|
||||
[player_loadsaved](@ref player_loadsaved)
|
||||
|
||||
[player_weaponstrip](@ref player_weaponstrip)
|
||||
|
||||
[point_camera](@ref point_camera)
|
||||
|
||||
[point_message](@ref point_message)
|
||||
|
||||
[point_servercommand](@ref point_servercommand)
|
||||
|
||||
[point_spotlight](@ref point_spotlight)
|
||||
|
||||
[point_trigger](@ref point_trigger)
|
||||
|
||||
[prop_dynamic](@ref prop_dynamic)
|
||||
|
||||
[prop_physics](@ref prop_physics)
|
||||
|
||||
[prop_rope](@ref prop_rope)
|
||||
|
||||
[prop_static](@ref prop_static)
|
||||
|
||||
[prop_vehicle_driveable](@ref prop_vehicle_driveable)
|
||||
|
||||
[random_speaker](@ref random_speaker)
|
||||
|
||||
[random_trigger](@ref random_trigger)
|
||||
|
||||
[scripted_sentence](@ref scripted_sentence)
|
||||
|
||||
[scripted_sequence](@ref scripted_sequence)
|
||||
|
||||
[sky_camera](@ref sky_camera)
|
||||
|
||||
[speaker](@ref speaker)
|
||||
|
||||
[targ_speaker](@ref targ_speaker)
|
||||
|
||||
[target_cdaudio](@ref target_cdaudio)
|
||||
|
||||
[trigger_auto](@ref trigger_auto)
|
||||
|
||||
[trigger_autosave](@ref trigger_autosave)
|
||||
|
||||
[trigger_camera](@ref trigger_camera)
|
||||
|
||||
[trigger_cdaudio](@ref trigger_cdaudio)
|
||||
|
||||
[trigger_changelevel](@ref trigger_changelevel)
|
||||
|
||||
[trigger_changetarget](@ref trigger_changetarget)
|
||||
|
||||
[trigger_counter](@ref trigger_counter)
|
||||
|
||||
[trigger_endsection](@ref trigger_endsection)
|
||||
|
||||
[trigger_gravity](@ref trigger_gravity)
|
||||
|
||||
[trigger_hurt](@ref trigger_hurt)
|
||||
|
||||
[trigger_look](@ref trigger_look)
|
||||
|
||||
[trigger_monsterjump](@ref trigger_monsterjump)
|
||||
|
||||
[trigger_multiple](@ref trigger_multiple)
|
||||
|
||||
[trigger_once](@ref trigger_once)
|
||||
|
||||
[trigger_playerfreeze](@ref trigger_playerfreeze)
|
||||
|
||||
[trigger_push](@ref trigger_push)
|
||||
|
||||
[trigger_relay](@ref trigger_relay)
|
||||
|
||||
[trigger_teleport](@ref trigger_teleport)
|
||||
|
||||
[trigger_transition](@ref trigger_transition)
|
||||
|
||||
[worldspawn](@ref worldspawn)
|
||||
|
|
@ -1,12 +1,7 @@
|
|||
# Sound: EAX
|
||||
# Sound: EFX {#EFX}
|
||||
|
||||
## EAX
|
||||
Creative Technology's **Environmental Audio Extensions**, also known as **EAX**, attempted to create more ambiance within video games by more accurately simulating a real-world audio environment.
|
||||
|
||||
|
||||
Due to the release of Windows Vista which deprecated the DirectSound3D API EAX was based on in 2007, Creative discouraged EAX implementation in favor of its [OpenAL](OpenAL.md)-based EFX equivalent.
|
||||
|
||||
|
||||
EFX is fully supported in **FTEQW** and exposed via user-friendly entities and scripting language in **Nuclide**.
|
||||
|
||||
## See also
|
||||
* [EFX](EFX.md)
|
||||
* [OpenAL](OpenAL.md)
|
||||
The release of Windows Vista deprecated the DirectSound3D API on which EAX relied on in 2007, so Creative Technology encouraged the move to OpenAL's EFX.
|
|
@ -1,16 +1,18 @@
|
|||
# Sound: EFX
|
||||
# Sound: EFX {#EFX}
|
||||
|
||||
## EFX
|
||||
|
||||
EFX is a system in [OpenAL](OpenAL.md) that delivers high quality sound reverberation. It is the successor to Creative's [Environmental Audio Extensions](EAX.md).
|
||||
|
||||
**Nuclide** offers abstraction for new and old entities relying on **digital signal processing**.
|
||||
|
||||
## Entities
|
||||
## Entities interacting with EFX
|
||||
|
||||
**env_sound** is most commonly used to change the environmental sound processing of a room/area.
|
||||
|
||||
In GoldSrc, it'll specify which enumeration of DSP preset to use for audio playback, in Nuclide however we just map it to a file in the filesystem.
|
||||
In GoldSrc, it'll specify which enumeration of DSP preset to use for audio playback, in Nuclide however we just map it to a definitions file in the filesystem. See **EFX files** below.
|
||||
|
||||
## EFX files
|
||||
## EFX defintion files
|
||||
|
||||
Entities that specify a EFX type, usually want to load one from a file.
|
||||
|
||||
|
@ -44,15 +46,17 @@ Here's an example one, `efx/city.efx`:
|
|||
|
||||
Most of the parameters are self explanatory.
|
||||
|
||||
## Debug cvars
|
||||
## Console Variables
|
||||
|
||||
With the cvar `>s_al_debug` you'll get an overlay of information about which EFX file is currently being used, as well as what every single parameter is set to.
|
||||
|
||||
You can refresh EFX definitions with a simple map restart.
|
||||
With the cvar `s_al_debug` set to 1 you'll get an overlay of information about which EFX file is currently being used, as well as what every single parameter is set to.
|
||||
|
||||
You can refresh EFX definitions with a map restart.
|
||||
|
||||
## Legacy translation table
|
||||
Here you can see which **.efx file** is responsible for handling a legacy **env_sound** room-type.
|
||||
|
||||
*This section describes behaviour specific to converting entities from Half-Life based levels into the Nuclide environment.*
|
||||
|
||||
Here you can see which **efx file** is responsible for handling a legacy **env_sound** room-type.
|
||||
|
||||
**roomtype ID**|**EFX file**
|
||||
:-----:|:-----:
|
||||
|
|
1
Doxyfile
1
Doxyfile
|
@ -878,6 +878,7 @@ INPUT = src/ \
|
|||
Documentation/Main.md \
|
||||
Documentation/Building.md \
|
||||
Documentation/Launching.md \
|
||||
Documentation/DedicatedServer.md \
|
||||
Documentation/Filesystem.md \
|
||||
Documentation/Networking.md \
|
||||
Documentation/EntityGuide.md \
|
||||
|
|
Loading…
Reference in a new issue