Source Feature Requests

From Valve Developer Community
Jump to navigation Jump to search
Obsolete-notext.pngDeprecated:This page is no longer used, Visit the GitHub repository for Source games where bugs and features requests can be submitted. Please submit new feature requests there instead.

This page is about things happening in-game.

For bugs (only) concerning things occurring while using the SDK, see Source SDK Bugs.

For things happening while using the Hammer editor, see Hammer bugs and Hammer Feature Requests.

Animation/Physics

Dynamic Reactions

NPCs should be able to be hit by an object and that object will move the ragdoll, but the NPC will react and reposition itself.

For example, if you were to throw an object at an NPC's head, currently the object just bounces off and the NPC doesn't react. What should happen is that the NPC's head moves and the NPC reacts to return their head to its original or ideal position.

This would also help add realism to combat. For example, if you were to shoot a combine soldier in the knee, it should make the knee move, maybe even knocking the soldier over. The solder will try to get back up, and if it succeeds, it should be limping if the knee is damaged enough.

Valve is planning to add more physics-based animation to their engine, and this would be an excellent addition.

If I'm not mistaken, Valve has implemented physics-based animations starting from Left 4 Dead's Source engine. --Prof. Orribilus 05:16, 25 September 2012 (PDT)

Dynamic Player

In this the player entity would be more interactive with it's environment. Example: When an explosion in near the player the player is ragdolled(somewhat) and pushed away.This including first-person views.

General

sv_autosave

sv_autosave should disable map-specific autosaves too.

Progress bar

Better progress bar for bzip2ed fast map downloads.

Addition Add a percentage complete display? Also do not make the progress bar wrap many times (make 100% the end).

Graphics

Dynamic shadows handling

Better handling of dynamic shadows to prevent shadows in indoor spaces being cast in inappropriate directions for lighting conditions. Either enable dynamic shadows to be cast by light sources other than light_environment, or institute 'fallback' diffuse shadow directly under object if not directly lit from sky light. This would require a trace along the vector of the light_environment angle to see if it hits a skybox texture, but would at least prevent the situations we get where indoor shadows are falling in completely the wrong direction.

Other possible 'cheap' solution would be to enable multiple shadow_control entities in a map, one per area separated by area portals. In this way, a map with strong directional daylight in outdoor areas could use straight down shadow controllers in indoor areas to reduce the jarring appearance of indoor shadows.

Already in progress! --TomEdwards 12:31, 7 Jun 2006 (PDT)
Lovely—ts2do 12:37, 7 Jun 2006 (PDT)
Ah finally thats gonna add a little amount though to the overall performance.--Gear 04:57, 31 Oct 2006 (PST)

Addition Allow your own player shadow to be visible to you. At the moment you cannot see where the shadow is cast, however your enemy can in multiplayer games- big advantage in some cases.

  • A console command for the dynamic shadow draw distance.

Parallax

Adding parallax mapping or relief mapping to the source engine would be nice. Or an explanation why it hasn't been implemented.

Mirrors

The ability to make materials that reflect the world, instead of using cubemap reflection. Exactly like water.

It's been added to Source 2007 Engine. Check glass/ folder in Source Shared 2007. --JakeB 15:30, 18 Jun 2008 (PDT)
Very limited uses though. This needs to be improved on, along with water tech --Welsh Mullet 13:47, 16 June 2010 (UTC)

More Skybox control

The ability to change the settings of a 3D Skybox (namely its texture) would be beneficial. I'm unsure of the best way to achieve this. Changing the sv_skyname in the console does not actually change the sky texture even after trying mat_reloadtextures or mat_reloadmaterial. It does however change the sky texture after reconnecting, if you are playing on an online server.

An alternative to changing the sv_skyname would be to edit the skyname keyvalue of the worldspawn entity.

OpenGL renderer

Adding an OpenGL renderer would be a good idea, like Half-Life had.

Addition: As a comment to both this and the Linux porting suggestion, adding OpenGL support would greatly benefit Linux WINE users even if there is not official port of Source for Linux. OpenGL translates far easier then DirectX under WINE.

Done in Mac engine update? --Welsh Mullet 13:49, 16 June 2010 (UTC)
Currently, OpenGL is in the Mac version only. Windows version is still limited to DirectX. --Barracuda 19:03, 16 June 2010 (UTC)
Thought it was the same engine... Can you download the mac version on linux? --Welsh Mullet 20:54, 16 June 2010 (UTC)

Dynamic cubemaps

Dynamic cubemaps should be added to the engine, with at least 1 cubemap always "following" the player, so that the reflections on view models and stuff around the player would have more realistic reflections. To get an idea of what I mean, try watching this video, it explains a problem with static cubemaps (note: the video is NOT mine) [1]

Hammer

Camera Views

  • A possible newer camera view to show how far a light entity will cast it's light as well as the shadows it will create. Also the camera view can be special, it can be toggled like others and even show other events within the map and maybe incorrectly placed entities and possible errors.
  • Dragging in the 2d views while in camera mode always sets camera pos. Currently it only works the first time, after that you hav to find the gizmo.
  • Brush dimensions always stay in 2d view

Cinematic Editor

  • A built in cinematic editor that allows for users to build a scene in Hammer and preview the animation in real-time.

Material Editor

  • An in-editor material editor complete with texture importing and material customization tools.
  • The ability to copy texture paths in the browser
  • A more advanced Material Viewer.. Categories, Tags, Searching

Real-Time Editing Solutions

  • The ability to edit game environments in real time through Hammer is one so chooses.
  • Autoloading pointfiles option

Add-on Tools

  • Tools to create add-ons from with in hammer.(e.g. An add-on for randomly distributing trees to large environments)

Preserving groups of brushes tied to entity

Even now, tieing to entity a group of brushes causes the lost of the group. Preventing this from happening would be useful.

Fade distance options

Stuff like selecting props without a fade distance, opaque helpers, toggle draw on/off in hammer like ingame, more accurate "camera" distance

Displacement tool in z mode

Holding m1 would move vertexes in zmode like when not in zmode + update marker when moving

Misc

  • Cutting brushes could always use nodraw on new faces.
  • Right click to reset entity key
  • Random texture rotation
  • Enable/disable full stop when leaving a trigger_push
  • AddOutput BaseVelocity to have absolute control rather than add onto current velocity

Audio

Better music support

Better support for music, including:

  • Ability to mark a sound as music regardless of the format.
  • OnFinishedPlaying output to cleanly loop a sound.
  • Fade in and fade out effects (in a map entity).
  • Music not to suddenly cut out between maps

Soundscape creation tool

Soundscape creation tool with real-time preview.

Sound sample previews

First of all, it would be good if you could preview button sounds instead of choosing them from a list and testing them each in-game.

Second of all, I'd like to be able to play looping sounds using the loop, so that I know which ones are looped and which are not, and how they sound looped. You could add a Stop button to prevent a loop going on forever.

More sound formats, particularly Ogg Vorbis (not difficult to implement) or FLAC.

OpenAL support

OpenAL provides more realistic 3d dimensional sound. While current sound engine is good, you can still clearly hear sounds when you are close to source but between you and source are some huge rocks or thick wall.

There is inital OpenAL support in MacOS X version --Nshopik 22:46, 3 September 2010 (UTC)

Tracked audio support

You can do lots of cool things with tracked audio formats such as fading in channels and what not. And they can be smaller file-size wise too, not like it matters these days.

Minor changes

ambient_generic Playtime in seconds

Code/Scripting

Improved chapter system

Improved chapter system, ideally with only one file (plus any images) to worry about!

GCF priority for HL2:SP

I'd like to have custom content have priority over the Half-Life 2 GCF files. For example I'd like to be able to add custom sentences to a custom hl2/scripts/sentences.txt file without having to create my own mod for that. The GCF overriding custom material is apparently unique to HL2:SP. Even Lost Coast lets custom content have priority over the GCF. --Andreasen 05:40, 3 Apr 2006 (PDT)

Annoying as that is, it's pretty easy to create your own mod for HL2:SP - have a look at MINERVA as an example, and feel more than welcome to rip it apart and convert into something new with a search-and-replace on the word 'MINERVA'. It makes the final mod much easier to distribute, install and remove as well, as it's a single folder in SourceMods rather than many files scattered through HL2's directories... —Cargo Cult (info, talk) 07:14, 3 Apr 2006 (PDT)

Better Documentation

I would really love to have a complete source engine documentation designed for mod developers, because right now I have to spend hours of code reading to find out how to do a minor change.--Psycommando 20:12, 14 Jan 2009 (PST)

_rt_Camera material

Implement in other Source games then Half-Life 2 / Half-Life 2 DeathMatch the camera material, mechanism described in info_camera_link page. It would be cute to have. --Prof. Orribilus 07:58, 30 September 2012 (PDT)

Entity and brush behavior

An Entity/Command for reading variables

We have a method of modifying server variables (incrementVar), but no way of reading back what we set. Can we have either a client/server command for reading variables, or an entity that can do it?

The super gravity gun

I don't know what exactly is causing this, but while working on the npc_citizen_fleeing prefab, I noticed that shooting/punting/pulling the citizen with the Super gravity gun won't kill him, but just rip away ragdoll duplicates from his body. He won't die. I'm posting this under feature requests because I'm thinking that the scripting isn't written for citizens (or perhaps other NPCs too) interacting with the super gravity gun.

Also, if the super gravity gun global state is turned on, the bodies of zombies killed with another weapon simply vanishes, instead of turning into ragdolls. (The headcrab can detach as a ragdoll if the zombie is blown up though.)

Teleport

The current trigger_teleport isn't teleporting thrown grenades or weapons, it is even (to my understanding) impossible to set a filter to allow hegrenade_projectile, weapon_hegrenade, or weapon_glock entities, The filter or trigger_teleport ignores these entities.

Multiple Fog Controllers

It would be helpful to have more than one env_fog_controller allowed in a map. The current work around is the use of triggers in conjunction with a point_clientcommand that changes the values of many settings; fog_color, fog_colorskybox, fog_enableskybox, fog_end, fog_endskybox, fog_override, fog_start, fog_startskybox. I propose an enable/disable function (plus 'start disabled' flag) added to env_fog_controller to allow triggering between each.

Physics

There does not seem to be a simple way to adjust internal unit scale and physics in the source code in a similar way to HL1 (hull.txt). Changing the values in vphysics_interface.h do not seem to have a visible effect in game. Without this models adjusted for 0.16 scale will not have accurate physics.

Having separate gravity controls for each player, independent of map gravity orientation and intensity(walk on walls).

Poison Damage

Getting bitten by a black headcrab isn't dangerous even if you're not wearing a HEV suit. The damage is mysteriously healed anyway. I would like it if poison damage is only healed/non-lethal if the player is wearing a HEV suit.

Improved chapter unlock entity

Entity to trigger chapter unlock without re-locking later ones.

This can be done using the incrementvar command, as demonstrated here.- RodeoClown 05:01, 26 Apr 2006 (PDT)

Every entity should have an OnSpawn output

We could do away with many logic_auto's if all other objects had OnSpawn outputs. We could also remove Names from many objects because they could call functions on !self without having to refer to a name.

Addition: OnKill would also be very useful. I think Left 4 Dead has it, although I'm not completely sure. —InvisGhost 15:19, 14 Oct 2009

Scaling props

It is strange that there is no option to scale props, it is very easy to implement and would get rid of all the duplicate models that are just in a different scale (like for the 3d skybox). It would also allow props to be mirrored along an axis, something even more important than scaling in general.

An 'ammo' property for game_player_equip entity

Even now, game_player_equip entity gives to the player a weapon with only one ammo. A property to specify the amount would be useful.

P.S. I have found this issue while mapping for Day of Defeat: Source. I don't know, for the time being, if it occurs in other Source games too.

A slight different behavior for game_player_equip entity

Even now, game_player_equip entity get the player to drop the equipping weapon to the ground if he has yet a primary one or the same one. This causes an issue if a granade is dropped along the path of a moving brush: the brush stops itself. Due both to this and to the fact that dropping the weapon to the ground is useless, i think that, in this situation (player having yet a primary weapon or the equipping one), this entity should do one of two things:

  1. In case of non-primary weapon equipping, anything; in case of primary weapon equipping, gets the player to drop his one before equips him with the new one
  2. Anything in both cases

P.S. I have found this issue while mapping for Day of Defeat: Source. I don't know, for the time being, if anything like occurs in other Source games too.

A 'parent' property for weapon entities

It could be useful to make weapon entities parentable.

Merging some "map property" entities in the worldspawn one

Could some "map property" entities, like light_environment, shadow_control, env_sun, game_ragdoll_manager, game_weapon_manager, game_gib_manager and water_lod_control, be all merged in the worldspawn one?

Moving sound

Add the possibilty to make an associated at a moving parented ambient_generic sound to follow the entity's position while being played, because now the sound is played at the correct position but doesn't move itself.

Subtitles/Closed captions in multiplayer games

In Day of Defeat: Source are implemented the mechanisms for defining, and associating to a sound, subtitles/closed captions; but it seems that is not implemented the mechanism that "triggers" a subtitle/closed caption in conjunction with the playing of the sound. It would be cute having it.

P.S. I have only tested Day of Defeat: Source

Nav editing

  • Having a JUMP connection seems better than a mesh with the JUMP attribute. Connection types for dynamic events and mesh types for static events?
  • Nav_mark_unnamed as a function in toggled paint mode.
  • Nav_check_connectivity to mark said areas.
  • Mark area number command.

More branch paths for path_track entities

or at the very least, some inputs to change the Next Stop Target and Branch Path keyvalues like how path_corner has SetNextPathCorner

Volumetric light brush entity

Color, alpha, pattern, fade distance, cast direction for shading, uniform / directional cast direction

tools/blocklight fade defined by brush dimensions

A flat brush would block light instantly, and a wider brush would fade the light farther.

A step entity

Using keys like step interval, random steps, and puts like OnStepUp/Down, GoToStep, OnStep*, DisableStep*,

Minor suggestions

  • point_proximity_sensor sensitivity setting
  • func_precipitation render distance option
  • game_ui deactivate on death or OnDeath put
  • OnBlocked func_rotating would allow AddOutput BaseVelocity vertical bump (elevators)
  • A brush entity to control sound, so all sounds within a trigger_brush are only heard within linked brushes

Mapping

See Hammer Feature Requests for tool enhancements.

Give us Steam VGUI

It'd be a great advancement in modding if the Steam vgui2 interface was made public as well as overriding the vgui2 dll.

Displacements

Add the ability to use displacements on triangular faces.

CSGO Request

  • Bomb radius should have volume and density, for greater control. Optimally, it should be generated based on a "light sample" rendered from the brush origin, so walls block damage.
  • Skin control for weapon_entities
  • prop_dynamic_glow - DisableDraw would leave the glow, while Disable would also disable the glow effect.
  • Allow your own player shadow to be visible to you. At the moment you cannot see where the shadow is cast, however your enemy can in multiplayer games- big advantage in some cases.