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

Chamber Exteriors (Bottomless Pits / 3d Skyboxes) #3891

Open
17 tasks
Konclan opened this issue Aug 15, 2021 · 16 comments
Open
17 tasks

Chamber Exteriors (Bottomless Pits / 3d Skyboxes) #3891

Konclan opened this issue Aug 15, 2021 · 16 comments
Labels
Enhancement Improvement or tweak to the mod Long-Term This will be slowly implemented across multiple updates

Comments

@Konclan
Copy link
Collaborator

Konclan commented Aug 15, 2021

The chamber exterior system is going to replace the old 3D skyboxes and bottomless pits. The aim is to build a map around the PeTI chamber for BTS or Old Aperture enrichment spheres. This is a long list of features that this system needs to have.

Chamber exteriors are not currently being worked on, but are planned for the future.

List is a WIP and subject to change

  • Generate realistic supports
    • Add a SupportChance value, specifying how common supports will be
    • When placing wall edges, check supportChance and add the origin to a set
    • Corners and pillar sections always have supports
    • Triple pieces have the support on the adjacient tile.
    • Generate 1 support per block, facing random direction
  • Background elements
    • Partition the map area into a 512 grid. Extend down an additional 6 spaces, sideways and up 2 (based on how large the map is.)
    • Invalidate each grid section which is occupied by a brush.
    • Also invalidate any pos occupied by an instance - ambient lights are placed every 512 units, so interior blocks aren't occupied
    • Now start placing instances (in skybox) to fill grid sections - BackgroundChance /100 if a space is filled
    • Instances might also occupy a region below - loop from top to bottom when placing, so they don't overlap - need to define for each file their height.
  • Wiring
    • Choose a random pit side (WireChance /100 per each side )
    • Move in the direction of the normal (up to 2048 or so units) looking for the opposite pit brush
    • Choose z-heights for both brushes (some distance below )
    • For both brushes, check if they have a support
      • If so rope position is the center, ±32
    • Otherwise look back 1 512 grid space, to find grid instance
      • If found rope position is ±200 units from center of support, otherwise abort adding rope at these pos.
    • Place move_rope and keyframe_rope, add keyvalues to position. Width range configurable. Slack = dist between + random slack value (configurable max/min)
  • Vactube generation
  • Catwalk generation
  • Support system generation
  • Entrance and Exit elevator placement systems
  • Exterior paneling system to make the outsides of chambers look nicer
  • Dynamic nodraw system to cull faces that can't be seen by the player
  • Dynamic item extensions (vactubes that lead to droppers, etc)
  • Extended random tiles below chamber (like in mel)

Clean

  • A chamber warehouse filled with other test chambers, vactubes, and catwalks

Overgrown

  • Everything outside the chamber isn't powered. Only lights should be sunlight from above the chamber.

Wheatley

  • As seen during the funnel ride to whealtey boss fight

Portal 1

  • A mostly open pit with an orange glow of heat emanating from below with occasional vactubes and pipes around the place.

Old Aperture

  • An enrichment sphere filled with scaffolds, stadium lights, pipes, and themed bts elements depending on the style.
  • An open enrichment sphere showing bts outside like a large fan or more enrichment spheres
@Konclan Konclan added Enhancement Improvement or tweak to the mod Long-Term This will be slowly implemented across multiple updates labels Aug 15, 2021
@vrad-exe
Copy link
Member

Might want to move this to BEE2.4 since it's a compiler feature.

@Konclan
Copy link
Collaborator Author

Konclan commented Aug 15, 2021

I can never tell, I thought it would be best here since its both compiler and style packages.
Also this is where people are gonna look for skybox stuff

@vrad-exe
Copy link
Member

In BEEmod/BEE2.4#92 TeamSpen detailed how 3D skybox generation would probably work, seems like this could mostly apply to chamber exteriors as well:

  • Generate realistic supports
    • Add a SupportChance value, specifying how common supports will be
    • When placing wall edges, check supportChance and add the origin to a set
    • Corners and pillar sections always have supports
    • Triple pieces have the support on the adjacient tile.
    • Generate 1 support per block, facing random direction
  • Background elements
    • Partition the map area into a 512 grid. Extend down an additional 6 spaces, sideways and up 2 (based on how large the map is.)
    • Invalidate each grid section which is occupied by a brush.
    • Also invalidate any pos occupied by an instance - ambient lights are placed every 512 units, so interior blocks aren't occupied
    • Now start placing instances (in skybox) to fill grid sections - BackgroundChance /100 if a space is filled
    • Instances might also occupy a region below - loop from top to bottom when placing, so they don't overlap - need to define for each file their height.
  • Wiring
    • Choose a random pit side (WireChance /100 per each side )
    • Move in the direction of the normal (up to 2048 or so units) looking for the opposite pit brush
    • Choose z-heights for both brushes (some distance below )
    • For both brushes, check if they have a support
      • If so rope position is the center, ±32
    • Otherwise look back 1 512 grid space, to find grid instance
      • If found rope position is ±200 units from center of support, otherwise abort adding rope at these pos.
    • Place move_rope and keyframe_rope, add keyvalues to position. Width range configurable. Slack = dist between + random slack value (configurable max/min)

@vrad-exe
Copy link
Member

Since this is a fairly major feature (which a lot of people have indirectly been asking about), I'm going to pin it. We can unpin it if a major bug comes up which needs to be pinned instead.

@Critfish
Copy link
Contributor

Seeing as skyboxes/bottomless pits are being affected by this, should they be split off into separate settings/itemvars? Chamber exteriors really feel like they should be style-locked(eg. no Portal 1 chambers inside enrichment spheres), but lumping the fog colors and bottomless pits into it wouldn't be a good idea.

I think bottomless pits should become an itemvar of goo, and fog colors should become their own separate menu, that can be picked regardless of style.

@KaziPlays
Copy link

This would be cool if a "Surface" style existed

@Konclan
Copy link
Collaborator Author

Konclan commented Aug 17, 2021

Seeing as skyboxes/bottomless pits are being affected by this, should they be split off into separate settings/itemvars? Chamber exteriors really feel like they should be style-locked(eg. no Portal 1 chambers inside enrichment spheres), but lumping the fog colors and bottomless pits into it wouldn't be a good idea.

I think bottomless pits should become an itemvar of goo, and fog colors should become their own separate menu, that can be picked regardless of style.

This will be replacing bottomless pits and will be style locked like how items, hallways, etc are locked specially to their style. You can't really have a new aperture elevator in an old aperture environment. We could have the elevator style tied to the environment chosen, but that opens up many other complications not worth dealing with.

How goo opens up will most likely be a setting an based on if space is available (IE is there room for the player to fall). Also the dynamic chamber interior decor system will tie to this system and create holes in walls the reveal the exterior if the player so desires, as well as items may do it as well if they support it.

@Konclan
Copy link
Collaborator Author

Konclan commented Aug 17, 2021

This would be cool if a "Surface" style existed

We're not implementing new "quirky" styles. We still plan on adding styles but they are all already planned and we're not doing more. Feel free to make it yourself however in a UCP

@slambo312

This comment has been minimized.

@FrozenDragon0

This comment has been minimized.

@thefurrywolf
Copy link

this seems cool is it going to come someday? (or is it already added? idk)

@vrad-exe
Copy link
Member

vrad-exe commented Oct 6, 2021

They're not being worked on yet, I guess the issue should specify that.

@vrad-exe vrad-exe unpinned this issue Nov 3, 2021
@vrad-exe

This comment has been minimized.

@MarcusKubis9

This comment has been minimized.

@vrad-exe

This comment has been minimized.

@vrad-exe
Copy link
Member

I'm just going to lock this for now, I don't think there's much more useful things to be said until this is actually being worked on.

@BEEmod BEEmod locked and limited conversation to collaborators Nov 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Enhancement Improvement or tweak to the mod Long-Term This will be slowly implemented across multiple updates
Projects
None yet
Development

No branches or pull requests

8 participants