Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ideas \ Suggestions #688

Open
skies912 opened this issue Jan 25, 2025 · 1 comment
Open

Ideas \ Suggestions #688

skies912 opened this issue Jan 25, 2025 · 1 comment

Comments

@skies912
Copy link

skies912 commented Jan 25, 2025

Running list of ideas etc

Lights:

  • There's currently three basic light ents: light, misc_light, and target_light . My suggestion is to merge the latter two into light. Can use the wait key from target_light to add an interval between style cycles when used. team would be used for switching lights when all on the team are lights- otherwise it's used to link to the proposed misc_lightshaft listed below. The idea is to expand the basic light entity. Combine both to make a styled switching light.

Materials:

  • Use function/object format for light definitions, flares, and use "layer" to define the rest. This is more for ease-of-reading than anything else.
light{
  radius 100
  intensity 1.0
  color 1 1 1 1
  cone 45
}
flare{
  path flare_0
  scale.s 1.0
  scale.t 1.0
  color 1 1 1 1
}
layer{
  texture common/blah
  color 1 1 1 1
  scroll.s
  scroll.t
  pulse 1.0
  stretch 1 1
  warp 1 1
  //anything else i'm missing
}
  • Add a sub-switch to the -mat for quemap: --format for the cases where you only want it to format the existing materials instead of generating everything. Formatting includes rounding all floats to two decimals. I don't really see the need for more precision. I can see having the option to only making mat defs for things you need a thing.

cl_editor Mode:

  • Change activation of the window to SHIFT+ESC instead of ESCAPE. I often forget that it's enabled while flying around
  • Automatically enable noclip during editing with a temp bind of something like N to toggle noclip. Could do the same for other useful toggles.
  • Allow editing of string fields (currently textures) with an apply button. Would this require a restart of the map? Use common/notex for invalid paths
  • Section off different settings for polish. Place the Apply button in the texture group
  • [Issue] "grabbing" bar of the sliders are too thin so it makes it hard to adjust the slider.

Wireframe render mode:

  • Add a state (r_draw_wireframe 0|1|2) to use fullbright white lines instead of lit colored ones so it's easier to see.

Menus/UI:

  • Build + Version somewhere on the main menu
  • Make the Home window same size as the rest of the window tabs
  • The "There's an Update!!" indicator is mentioned twice. Should be built into the contents of the home window as a child, not a popup.
    • Something like a panel that has text "There are no new updates" and "There is an update available" + button with text "Download Now"
  • Eventually for 1.0: Scrollable pane in the Home window for announcements

Additions:

  • Teleporter cameras like in Quake III Arena. trigger_teleporter would target an info_notnull via target2 to enable this feature. The brush itself would have one face with a "portal" texture while rest would be "no_draw". Camera would center on this face looking at vector created by the info_notnull. Could even allow projectiles to "teleport" as well.
  • Super Nailgun as a weapon. Issue is the model.. I can't model for ****.
  • A trigger_void entity that combines a trigger_hurt but insta-kills (no gibs) no matter what (except spectators and those in no_clip), and misc_fog. Add key for color to match theme and a spawnflag of delay death. Delay Death kills the player only when hitting the bottom of the brush - used for void pits vs no delay in void maps such as Longest Yard/Longyard.
  • misc_lightshaft : Similar to misc_fog but a more basic form to simulate "god rays" from sunlight, light beams from lights, etc. Would include keys for color, density, and team (to match a light entity). When Team is used, density and color are calculated from the light entity. Imagine a hallway with slits in the ceiling exposed to sky. The sunlight shines down onto the floor but... now there's a shaft of light to complete the look.
  • Add keys wait and random to path_corner for randomizing train retrigger
  • Add key random to trigger_always for randomizing the next trigger time. Delay = rand( delay - value, delay + value)
    • OR, for the above two points, the keys wait and delay could accept two values as a range to derive the random value from. Eg: wait 1 3. Either way, should probably round resulting random float to one decimal.
@jdolan
Copy link
Owner

jdolan commented Jan 25, 2025

Lights:

  • There's currently three basic light ents: light, misc_light, and target_light . My suggestion is to merge the latter two into light. Can use the wait key from target_light to add an interval between style cycles when used. team would be used for switching lights when all on the team are lights- otherwise it's used to link to the proposed misc_lightshaft listed below. The idea is to expand the basic light entity. Combine both to make a styled switching light.

target_light requires collision and interaction with other entities, and so it must actually be loaded (and controlled) by the server. misc_lights are dynamic (but client-side only) and will never be part of the static lighting compile phase. For these reasons, they are separate. If you look through the code, you'll see they have wildly different implementations. I don't think merging them is practical, sorry 😕

  • Use function/object format for light definitions, flares, and use "layer" to define the rest. This is more for ease-of-reading than anything else.

Some good ideas in here. I'll consider changing the syntax. The nesting you proposed does make the parsing slightly more complicated (deeper stack) but it's not a big deal.

  • Add a sub-switch to the -mat for quemap: --format for the cases where you only want it to format the existing materials instead of generating everything. Formatting includes rounding all floats to two decimals. I don't really see the need for more precision. I can see having the option to only making mat defs for things you need a thing.

I can just improve Cm_WriteMaterials to write decimals differently. Then simply saving the .mat file in the editor will reformat it for you. 👍

  • Change activation of the window to SHIFT+ESC instead of ESCAPE. I often forget that it's enabled while flying around
  • Automatically enable noclip during editing with a temp bind of something like N to toggle noclip. Could do the same for other useful toggles.
  • Allow editing of string fields (currently textures) with an apply button. Would this require a restart of the map? Use common/notex for invalid paths
  • Section off different settings for polish. Place the Apply button in the texture group
  • [Issue] "grabbing" bar of the sliders are too thin so it makes it hard to adjust the slider.

I can provide an alias that toggles cl_editor, g_cheats, no_clip 👍
The editor should probably be broken into tabs if we add much more functionality to it.

  • Add a state (r_draw_wireframe 0|1|2) to use fullbright white lines instead of lit colored ones so it's easier to see.

👍

  • Build + Version somewhere on the main menu
  • Make the Home window same size as the rest of the window tabs
  • The "There's an Update!!" indicator is mentioned twice. Should be built into the contents of the home window as a child, not a popup.
    • Something like a panel that has text "There are no new updates" and "There is an update available" + button with text "Download Now"
  • Eventually for 1.0: Scrollable pane in the Home window for announcements

👍

  • Teleporter cameras like in Quake III Arena. trigger_teleporter would target an info_notnull via target2 to enable this feature. The brush itself would have one face with a "portal" texture while rest would be "no_draw". Camera would center on this face looking at vector created by the info_notnull. Could even allow projectiles to "teleport" as well.

Love this, but probably not a 1.0 thing.

  • Super Nailgun as a weapon. Issue is the model.. I can't model for ****.

Paging BuzzardBait..

  • A trigger_void entity that combines a trigger_hurt but insta-kills (no gibs) no matter what (except spectators and those in no_clip), and misc_fog. Add key for color to match theme and a spawnflag of delay death. Delay Death kills the player only when hitting the bottom of the brush - used for void pits vs no delay in void maps such as Longest Yard/Longyard.

👍 Makes perfect sense.

  • misc_lightshaft : Similar to misc_fog but a more basic form to simulate "god rays" from sunlight, light beams from lights, etc. Would include keys for color, density, and team (to match a light entity). When Team is used, density and color are calculated from the light entity. Imagine a hallway with slits in the ceiling exposed to sky. The sunlight shines down onto the floor but... now there's a shaft of light to complete the look.

misc_fog is supposed to provide this. You can see these on Edge in the megahealth room. Lmk if you think they could be better.

  • Add keys wait and random to path_corner for randomizing train retrigger
  • Add key random to trigger_always for randomizing the next trigger time. Delay = rand( delay - value, delay + value)

👍 On the client-side emitters, and on materials, this field is known as "drift" We could add it to these ents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants